Aller au contenu

Le démon

Le démon est tcc tournant en arrière-plan : un point d’accès HTTP sur cette machine et un serveur MCP pour les assistants IA. Avec un compte propre, il fait aussi tourner une boucle de synchronisation qui maintient le cache local à jour.

Il existe pour les machines sans session de bureau — un serveur Linux, un agent de build, un conteneur. Sur macOS et Windows, l’application de bureau fait déjà tourner la même chose tant que sa fenêtre est ouverte, tu n’as donc normalement pas besoin d’y démarrer le démon à la main.

tcc daemon start
tcc daemon status
tcc daemon stop

start tourne au premier plan et bloque jusqu’à ce que le processus soit arrêté. Il écrit un fichier PID, donc un second start est refusé plutôt que de se disputer le port avec le premier, et un fichier PID périmé laissé par un plantage est nettoyé au démarrage suivant.

stop demande au démon en cours de s’arrêter. status affiche s’il tourne, son identifiant de processus et son port — et le dit clairement quand il trouve un fichier PID pour un processus qui n’est plus vivant.

tcc daemon start tourne machine à machine par défaut. Il n’a pas de compte propre : il répond au nom de quiconque présente un jeton d’API de plateforme, il ne conserve aucun cache local, et il ne fait tourner aucune boucle de synchronisation. Les jetons de point de terminaison local sont refusés dans ce mode, avec un message qui le dit.

Pour donner au démon une identité propre à la place, connecte-toi d’abord avec tcc setup et démarre-le avec TCC_MODE=hybrid défini. Il conserve alors un cache local, se synchronise en arrière-plan, et accepte les jetons de point de terminaison local décrits plus bas. C’est le mode dans lequel l’application de bureau tourne toujours, et le mode à choisir si tu veux que le démon se comporte comme le client connecté propre à la machine.

Un démon hybride sur un compte qui n’a jamais lancé tcc setup démarre quand même et sert quand même. Il ne fait aucune synchronisation, parce qu’il n’y a rien à synchroniser.

La session propre d’un démon dure au plus 12 heures à partir de la connexion ; reconnecte-toi ensuite avec tcc auth login --code (voir Se connecter). Les jetons d’API de la plateforme ne sont pas des sessions et ne se terminent jamais ainsi : utilise-en un pour tout ce qui tourne sans surveillance.

Par défaut, le démon se lie à 127.0.0.1 — l’adresse de boucle locale — sur le port 19821. Rien en dehors de cette machine ne peut l’atteindre. C’est ce qui rend le point de terminaison local sûr à utiliser sans mot de passe pour des outils tournant à côté de lui.

Deux variables d’environnement changent cela :

  • TCC_HTTP_PORT — un port différent, quand 19821 est pris.
  • TCC_HTTP_BIND — une adresse de liaison différente.

Changer l’adresse de liaison est le seul réglage ici avec de vraies conséquences. Dès que le démon écoute sur autre chose que la boucle locale, il devient accessible depuis ton réseau, et l’hypothèse sur laquelle repose le point de terminaison local ne tient plus. Si tu le fais, mets-le derrière quelque chose qui authentifie.

Sur Linux :

tcc daemon install-service

Ceci écrit une unité systemd utilisateur, l’active et la démarre, pour que le démon revienne après un redémarrage. Il redémarre en cas d’échec. Vérifie-le de la façon habituelle :

systemctl --user status trusted-codes

La commande est réservée à Linux. Sur macOS et Windows, utilise le démarrage automatique propre à l’application de bureau à la place.

Quand un démon ou l’application de bureau tourne déjà, une commande tcc ordinaire ne duplique pas le travail — elle transmet la requête à l’instance en cours et affiche la réponse. Tu verras une ligne indiquant qu’elle s’est connectée. Quand rien ne tourne, la même commande fait le travail elle-même.

Tu n’as rien à configurer pour cela, et le résultat est le même dans les deux cas.

Un tcc sur ton portable peut parler à un démon tournant ailleurs — une machine partagée, un exécuteur CI — plutôt que d’agir comme son propre client.

Pour une seule commande :

tcc --server https://tcc.example.com --token <platform-api-token> code list

Pour en faire la valeur par défaut :

tcc config set-remote https://tcc.example.com --token <platform-api-token>
tcc config show-remote # l'URL, avec le jeton masqué
tcc config clear-remote # retour au démon local

Le réglage est stocké sous ton répertoire personnel et lu à chaque invocation. Les drapeaux --server et --token, et les variables d’environnement TCC_REMOTE_URL et TCC_API_TOKEN, le remplacent pour une seule exécution.

Un jeton est requis dès qu’un serveur distant est configuré. Utilise-en un issu de tcc api-token generate, pas de tcc config create-api-token. Quand un serveur distant est configuré, les commandes y vont et nulle part ailleurs — si le serveur distant ne peut pas être atteint, la commande échoue plutôt que de tourner silencieusement contre ton propre compte à la place.

Les outils de cette machine qui parlent à l’application de bureau, ou à un démon démarré en mode hybride, utilisent un jeton que tu émets :

tcc config create-api-token --label claude --scope read
tcc config list-api-tokens
tcc config show-api-token claude
tcc config revoke-api-token claude

--scope vaut read, write ou full, et full par défaut. --ttl-hours donne une expiration au jeton ; l’omettre signifie aucune expiration, ce qui n’est raisonnable que pour un jeton qui ne quitte jamais cette machine. list-api-tokens masque les valeurs — show-api-token est celle qui affiche un jeton entier, garde-la donc hors des terminaux et journaux partagés.

Ceux-ci sont séparés de tcc api-token, qui émet des jetons pour la plateforme Trusted Codes elle-même. Un démon machine à machine — la valeur par défaut de tcc daemon start — refuse les jetons locaux et prend un jeton de plateforme à la place, tout comme un démon distant atteint avec --server.

tcc parle aussi MCP, ce qui permet à un assistant IA sur ta machine de chercher un code ou de vérifier des mots pour toi. Cela ne passe pas par le démon : configure écrit une entrée disant à l’assistant de lancer tcc mcp lui-même, et ce processus parle directement à ton compte. Tu n’as pas besoin d’un démon en cours pour cela.

tcc mcp status # quelles applications IA sont configurées
tcc mcp configure cursor
tcc mcp remove cursor

Pour Claude Code, utilise claude mcp add comme indiqué dans Connecter un assistant. L’actuel configure claude-code écrit un fichier que Claude Code ne lit pas.

configure prend en charge claude-desktop, claude-code et cursor. Le serveur MCP fait partie de ta formule séparément de l’application de bureau elle-même.