Zum Inhalt springen

Der Dienst

Der Dienst ist tcc, im Hintergrund laufend: ein HTTP-Endpunkt auf diesem Rechner und ein MCP-Server für KI-Assistenten. Mit einem eigenen Konto führt er zusätzlich eine Abgleichschleife aus, die den lokalen Zwischenspeicher aktuell hält.

Er existiert für Rechner ohne eigene Desktop-Sitzung — einen Linux-Server, einen Build-Agenten, einen Container. Auf macOS und Windows führt die Desktop-App bereits dasselbe aus, solange ihr Fenster geöffnet ist, deshalb startest du den Dienst dort normalerweise nicht von Hand.

tcc daemon start
tcc daemon status
tcc daemon stop

start läuft im Vordergrund und blockiert, bis der Prozess gestoppt wird. Es schreibt eine PID-Datei, sodass ein zweites start sich weigert, statt mit dem ersten um den Port zu kämpfen, und eine verwaiste PID-Datei nach einem Absturz wird beim nächsten Start aufgeräumt.

stop bittet den laufenden Dienst, sich zu beenden. status gibt aus, ob er läuft, seine Prozess-ID und seinen Port — und sagt unumwunden, wenn es eine PID-Datei für einen Prozess findet, der nicht mehr lebt.

tcc daemon start läuft in der Vorgabe Maschine-zu-Maschine. Er hat kein eigenes Konto: Er antwortet im Namen dessen, der ein Plattform-API-Token vorweist, er hält keinen lokalen Zwischenspeicher, und er führt keine Abgleichschleife aus. Lokale Endpunkt-Token werden in diesem Modus abgewiesen, mit einer entsprechenden Meldung.

Um dem Dienst stattdessen eine eigene Identität zu geben, meldest du dich zuerst mit tcc setup an und startest ihn mit gesetztem TCC_MODE=hybrid. Dann hält er einen lokalen Zwischenspeicher, gleicht im Hintergrund ab und nimmt die unten beschriebenen lokalen Endpunkt-Token an. In diesem Modus läuft die Desktop-App immer, und das ist der Modus, den du wählst, wenn der Dienst sich wie der eigene angemeldete Client des Rechners verhalten soll.

Ein Hybrid-Dienst auf einem Konto, das noch nie tcc setup ausgeführt hat, startet und arbeitet trotzdem. Er gleicht nicht ab, weil es nichts abzugleichen gibt.

Die eigene Sitzung eines Dienstes hält höchstens 12 Stunden ab der Anmeldung; dann meldest du dich mit tcc auth login --code neu an (siehe Anmelden). Plattform-API-Token sind keine Sitzungen und enden nie auf diese Weise – nimm also eines für alles, was unbeaufsichtigt läuft.

In der Vorgabe bindet der Dienst an 127.0.0.1 — die Loopback-Adresse — auf Port 19821. Nichts außerhalb dieses Rechners kann ihn erreichen. Das ist es, was den lokalen Endpunkt sicher genug macht, um ihn ohne Passwort von Werkzeugen zu nutzen, die daneben laufen.

Zwei Umgebungsvariablen ändern das:

  • TCC_HTTP_PORT — ein anderer Port, wenn 19821 belegt ist.
  • TCC_HTTP_BIND — eine andere Bindungsadresse.

Die Bindungsadresse zu ändern ist die einzige Einstellung hier mit echten Folgen. Sobald der Dienst auf etwas anderem als Loopback lauscht, ist er aus deinem Netzwerk erreichbar, und die Annahme, auf der der lokale Endpunkt beruht, gilt nicht mehr. Machst du das, stell etwas davor, das authentifiziert.

Unter Linux:

tcc daemon install-service

Das schreibt eine systemd-Benutzer-Unit, aktiviert sie und startet sie, sodass der Dienst einen Neustart übersteht. Er startet bei einem Fehler neu. Prüfe ihn auf die gewohnte Weise:

systemctl --user status trusted-codes

Der Befehl ist Linux-only. Unter macOS und Windows verwendest du stattdessen den eigenen Autostart der Desktop-App.

Läuft bereits ein Dienst oder die Desktop-App, verdoppelt ein gewöhnlicher tcc-Befehl die Arbeit nicht — er reicht die Anfrage an die laufende Instanz weiter und gibt die Antwort aus. Du siehst eine Zeile, die sagt, dass er sich verbunden hat. Läuft nichts, erledigt derselbe Befehl die Arbeit selbst.

Das musst du nicht einrichten, und das Ergebnis ist so oder so dasselbe.

Ein tcc auf deinem Laptop kann mit einem Dienst sprechen, der anderswo läuft — einem gemeinsam genutzten Rechner, einem CI-Runner —, statt selbst als Client zu handeln.

Für einen einzelnen Befehl:

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

Um es zur Vorgabe zu machen:

tcc config set-remote https://tcc.example.com --token <platform-api-token>
tcc config show-remote # die URL, mit maskiertem Token
tcc config clear-remote # zurück zum lokalen Dienst

Die Einstellung wird unter deinem Home-Verzeichnis gespeichert und bei jedem Aufruf gelesen. Die Schalter --server und --token sowie die Umgebungsvariablen TCC_REMOTE_URL und TCC_API_TOKEN übersteuern sie für einen einzelnen Lauf.

Ein Token ist erforderlich, sobald ein entfernter Server gesetzt ist. Nutze eines aus tcc api-token generate, nicht eines aus tcc config create-api-token. Ist ein entfernter Dienst konfiguriert, gehen Befehle dorthin und sonst nirgendwohin — ist der entfernte Dienst nicht erreichbar, schlägt der Befehl fehl, statt still gegen dein eigenes Konto zu laufen.

Werkzeuge auf diesem Rechner, die mit der Desktop-App oder einem im Hybrid-Modus gestarteten Dienst sprechen, nutzen ein Token, das du ausstellst:

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 ist read, write oder full, in der Vorgabe full. --ttl-hours gibt dem Token eine Gültigkeitsdauer; lässt du es weg, gibt es keine Ablaufzeit, was nur bei einem Token sinnvoll ist, das diesen Rechner nie verlässt. list-api-tokens maskiert die Werte — show-api-token ist der Befehl, der ein ganzes Token ausgibt, halte ihn also aus geteilten Terminals und Protokollen heraus.

Diese sind von tcc api-token getrennt, das Token für die Trusted-Codes- Plattform selbst ausstellt. Ein Maschine-zu-Maschine-Dienst — die Vorgabe für tcc daemon start — weist lokale Token zurück und nimmt stattdessen ein Plattform-Token entgegen, und dasselbe gilt für einen mit --server erreichten entfernten Dienst.

tcc spricht auch MCP, wodurch ein KI-Assistent auf deinem Rechner einen Code nachschlagen oder Wörter für dich prüfen kann. Das läuft nicht über den Dienst: configure schreibt einen Eintrag, der dem Assistenten sagt, selbst tcc mcp zu starten, und dieser Prozess spricht direkt mit deinem Konto. Du brauchst dafür keinen laufenden Dienst.

tcc mcp status # welche KI-Apps eingerichtet sind
tcc mcp configure cursor
tcc mcp remove cursor

Für Claude Code benutzt du claude mcp add, wie unter Einen Assistenten verbinden gezeigt. Das aktuelle configure claude-code schreibt eine Datei, die Claude Code nicht liest.

configure unterstützt claude-desktop, claude-code und cursor. Der MCP-Server ist ein eigener Teil deines Tarifs, getrennt von der Desktop-App selbst.