Ga naar inhoud

De daemon

De daemon is tcc die op de achtergrond draait: een HTTP-eindpunt op deze machine en een MCP-server voor AI-assistenten. Heeft hij een eigen account, dan draait hij ook een synchronisatielus die de lokale cache actueel houdt.

Hij bestaat voor machines zonder desktopsessie — een Linux-server, een build-agent, een container. Op macOS en Windows draait de desktoptoepassing al hetzelfde terwijl haar venster open staat, dus daar start je de daemon normaal gesproken niet zelf.

tcc daemon start
tcc daemon status
tcc daemon stop

start draait op de voorgrond en blokkeert tot het proces wordt gestopt. Het schrijft een PID-bestand, dus een tweede start weigert in plaats van met de eerste te vechten om de poort, en een verouderd PID-bestand dat een crash achterliet, wordt bij de volgende start opgeruimd.

stop vraagt de draaiende daemon om af te sluiten. status toont of hij draait, zijn proces-id en zijn poort — en zegt het gewoon als het een PID-bestand vindt voor een proces dat niet meer leeft.

tcc daemon start draait standaard machine-tot-machine. Hij heeft geen eigen account: hij antwoordt namens wie een platform-API-token voorlegt, houdt geen lokale cache bij, en draait geen synchronisatielus. Lokale eindpunttokens worden in deze modus geweigerd, met een melding die dat zegt.

Om de daemon in plaats daarvan een eigen identiteit te geven, meld je je eerst aan met tcc setup en start je hem met TCC_MODE=hybrid ingesteld. Hij houdt dan een lokale cache bij, synchroniseert op de achtergrond, en accepteert de hieronder beschreven lokale eindpunttokens. Dat is de modus waarin de desktoptoepassing altijd draait, en de modus om te kiezen als je wilt dat de daemon zich gedraagt als de eigen aangemelde client van de machine.

Een hybride daemon op een account dat nog nooit tcc setup heeft uitgevoerd, start en bedient nog steeds. Hij synchroniseert niets, omdat er niets te synchroniseren is.

De eigen sessie van een daemon duurt hoogstens 12 uur vanaf het aanmelden; meld je daarna opnieuw aan met tcc auth login --code (zie Aanmelden). API-tokens van het platform zijn geen sessies en eindigen nooit op deze manier, dus gebruik er een voor alles wat zonder toezicht draait.

Standaard bindt de daemon aan 127.0.0.1 — het loopback-adres — op poort 19821. Niets buiten deze machine kan hem bereiken. Dat is wat het lokale eindpunt veilig maakt om te gebruiken zonder wachtwoord, voor tools die ernaast draaien.

Twee omgevingsvariabelen veranderen dat:

  • TCC_HTTP_PORT — een andere poort, wanneer 19821 bezet is.
  • TCC_HTTP_BIND — een ander bindadres.

Het bindadres wijzigen is de enige instelling hier met echte gevolgen. Zodra de daemon ergens anders dan loopback luistert, is hij bereikbaar vanaf je netwerk, en houdt de aanname waarop het lokale eindpunt rust niet meer stand. Doe je dat toch, zet er dan iets voor dat authenticeert.

Op Linux:

tcc daemon install-service

Dit schrijft een systemd-gebruikersunit, schakelt hem in en start hem, zodat de daemon na een herstart terugkomt. Hij herstart bij een fout. Controleer hem op de gebruikelijke manier:

systemctl --user status trusted-codes

Het commando is alleen voor Linux. Gebruik op macOS en Windows in plaats daarvan de eigen start-bij-aanmelden van de desktoptoepassing.

Draait er al een daemon of de desktoptoepassing, dan doet een gewoon tcc-commando het werk niet dubbel — het geeft het verzoek door aan het draaiende exemplaar en toont het antwoord. Je ziet een regel die zegt dat er verbinding is gemaakt. Draait er niets, dan doet hetzelfde commando het werk zelf.

Je hoeft dit niet in te stellen, en het resultaat is in beide gevallen hetzelfde.

Een tcc op je laptop kan praten met een daemon die elders draait — een gedeelde machine, een CI-runner — in plaats van als zijn eigen client op te treden.

Voor één commando:

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

Om het de standaard te maken:

tcc config set-remote https://tcc.example.com --token <platform-api-token>
tcc config show-remote # de URL, met het token gemaskeerd
tcc config clear-remote # terug naar de lokale daemon

De instelling wordt bewaard onder je home-map en bij elke aanroep gelezen. De vlaggen --server en --token, en de omgevingsvariabelen TCC_REMOTE_URL en TCC_API_TOKEN, overschrijven haar voor één run.

Er is altijd een token nodig zodra een server op afstand is ingesteld. Gebruik er een van tcc api-token generate, niet een van tcc config create-api-token. Is er een server op afstand ingesteld, dan gaan commando’s daarheen en nergens anders — is de server op afstand niet bereikbaar, dan faalt het commando in plaats van stilletjes tegen je eigen account te draaien.

Tools op deze machine die met de desktoptoepassing praten, of met een daemon die in hybride modus is gestart, gebruiken een token dat jij uitgeeft:

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 is read, write of full, en staat standaard op full. --ttl-hours geeft het token een vervaldatum; hem weglaten betekent geen vervaldatum, wat alleen zinnig is voor een token dat deze machine nooit verlaat. list-api-tokens maskeert de waarden — show-api-token is degene die een heel token afdrukt, dus houd die uit gedeelde terminals en logboeken.

Dit staat los van tcc api-token, dat tokens uitgeeft voor het Trusted Codes-platform zelf. Een machine-tot-machine-daemon — de standaard voor tcc daemon start — weigert lokale tokens en neemt in plaats daarvan een platformtoken, en dat geldt ook voor een daemon op afstand die met --server wordt benaderd.

tcc spreekt ook MCP, waarmee een AI-assistent op je machine voor je een code kan opzoeken of woorden kan verifiëren. Dit loopt niet via de daemon: configure schrijft een item dat de assistent vertelt om zelf tcc mcp te starten, en dat proces praat rechtstreeks met je account. Je hebt hiervoor geen draaiende daemon nodig.

tcc mcp status # welke AI-apps zijn ingesteld
tcc mcp configure cursor
tcc mcp remove cursor

Gebruik voor Claude Code claude mcp add, zoals getoond in Een assistent verbinden. De huidige configure claude-code schrijft een bestand dat Claude Code niet leest.

configure ondersteunt claude-desktop, claude-code en cursor. De MCP-server is een apart onderdeel van je plan, los van de desktoptoepassing zelf.