Eine Sitzung von Claude Code arbeitet einen Auftrag nach dem anderen ab. Wer mehrere Dinge zugleich erledigt haben will, findet in diesem Kapitel drei Wege. Innerhalb einer Sitzung lässt Claude Befehle und Agenten im Hintergrund laufen und arbeitet derweil weiter. Daneben lassen sich mehrere Sitzungen am selben Projekt starten, jede in ihrem eigenen Terminal. Und seit Mai 2026 laufen Sitzungen auch ohne Terminal weiter, gesammelt in einer Übersicht namens Agent View.
Sobald zwei davon an denselben Dateien arbeiten, stellt sich die Frage dieses Kapitels: Wie bleiben ihre Änderungen getrennt? Die Antwort von Claude Code heißt fast immer Worktree. Was ein Subagent ist und was er zurückgibt, erklärt Kapitel 20. Wann sich ein ganzes Team von Agenten lohnt, steht in Kapitel 22.
Arbeit im Hintergrund
Einen langen Shell-Befehl schickt Ctrl+B schon seit Version 1.0.71 in den Hintergrund, so steht es in Kapitel 04. Seit Version 2.0.60 vom 06.12.2025 geht das auch mit Agenten: Ein Subagent recherchiert oder baut im Hintergrund, während man selbst weiterarbeitet (Versionsliste (externe Seite, code.claude.com)).
Vier Tage später kam das Gegenstück dazu. Seit Version 2.0.64 laufen Agenten und Shell-Befehle asynchron und können dem Hauptagenten Nachrichten schicken, die ihn wecken (Versionsliste (externe Seite, code.claude.com)). Niemand muss also nachfragen, ob die Recherche schon durch ist. Das Ergebnis kommt als Nachricht in das Gespräch, und Claude arbeitet damit weiter.
Seit Version 2.1.0 vom 07.01.2026 schickt Ctrl+B alles, was gerade läuft, auf einmal in den Hintergrund, Befehle wie Agenten. Die Eingabe ist danach sofort wieder frei. Wer in tmux arbeitet, drückt die Taste zweimal, weil tmux sie selbst als Präfix belegt (Tastenübersicht (externe Seite, code.claude.com)).
Seit Version 2.1.198 vom 01.07.2026 laufen Subagents in der Voreinstellung
im Hintergrund. Claude arbeitet weiter und erfährt, wenn sie fertig sind
(Versionsliste (externe Seite, code.claude.com)). Welche Arbeit gerade im
Hintergrund läuft, listet /tasks, auch Subagents, die gerade fertig geworden sind
(Befehlsübersicht (externe Seite, code.claude.com)). Wann Claude doch auf einen
Subagent wartet, steht in Kapitel 20.
Jede Sitzung in ihrem eigenen Worktree
Zwei Terminals, zweimal claude im selben Ordner: Das geht, und beide
Sitzungen schreiben dann in dieselben Dateien. Ändern sie zufällig dieselbe
Datei, überschreibt die eine die Arbeit der anderen. Wie Git ein Repository
mehrfach auschecken kann und warum das beim Committen hilft, erklärt
Vibe-Coding / Agentic Engineering, Kapitel 04.
Claude Code legt einen solchen Worktree seit Version 2.1.49 vom 19.02.2026
selbst an. claude --worktree feature-auth, kurz claude -w feature-auth,
erzeugt ihn und startet die Sitzung darin. Jede Sitzung bekommt so ihre
eigene Kopie der Dateien. Eine Sitzung baut eine Funktion, während eine
zweite einen Fehler behebt (Worktree-Doku (externe Seite, code.claude.com)).
Der Worktree liegt unter .claude/worktrees/feature-auth/ im Repository,
auf einem neuen Branch namens worktree-feature-auth. Ein zweites Terminal
mit einem anderen Namen startet die nächste getrennte Sitzung. Ohne Namen
denkt Claude Code sich einen aus, etwa bright-running-fox. Die Doku rät,
.claude/worktrees/ in die .gitignore aufzunehmen. Sonst tauchen die
Worktrees im Hauptverzeichnis als neue, unversionierte Dateien auf.
Ein neuer Worktree ist ein frischer Checkout. Abhängigkeiten installiert man
dort neu, und Dateien, die Git ignoriert, etwa eine .env, fehlen zunächst.
Wie man sie automatisch mitnimmt, steht auf der zweiten Ebene.
Für Dateien, die gar nicht ins Projekt gehören, hat jede Sitzung einen eigenen Ordner außerhalb des Repositorys, das Scratchpad. Dort legt Claude Zwischenergebnisse, Hilfsskripte und Entwürfe ab (Verzeichnis-Doku (externe Seite, code.claude.com)). Was davon bleiben soll, lässt man Claude ins Projekt verschieben.
Beim Beenden prüft Claude Code, ob im Worktree noch Arbeit liegt. Ist er sauber und hat die Sitzung keinen Namen, entfernt Claude Code ihn samt Branch. Bei einer benannten Sitzung fragt es vorher. Liegen dort geänderte Dateien oder neue Commits, fragt es, ob der Worktree bleiben soll. Wer ihn behält, kommt später mit dem Befehl zurück, den Claude Code beim Beenden anzeigt.
Mehrere Terminals sehen bald gleich aus. /color färbt die Eingabezeile
einer Sitzung ein, acht Farben stehen zur Wahl. /rename gibt ihr einen
Namen, unter dem sie später in /resume steht
(Befehlsübersicht (externe Seite, code.claude.com)). Wie man eine benannte
Sitzung am nächsten Tag fortsetzt, steht in Kapitel 05.
eigene Darstellung nach der Herstellerdokumentation, Stand 12.10.2026
Alle Sitzungen auf einen Blick
Mit jeder weiteren Sitzung wächst die Zahl der Fenster, die man im Auge
behalten muss. Seit Version 2.1.139 vom 11.05.2026 gibt es dafür die Agent
View, als Forschungsvorschau. Die Versionsliste (externe Seite, code.claude.com)
beschreibt sie als eine einzige Liste aller Sitzungen.
Eine Forschungsvorschau ist sie bis heute. Oberfläche und Tasten können sich
laut Doku zur Agent View (externe Seite, code.claude.com) noch ändern. Der Befehl
claude agents öffnet sie im Terminal, geordnet danach, ob eine Sitzung
arbeitet, auf eine Antwort wartet oder fertig ist. Gemeint sind die
Sitzungen im Hintergrund, über alle Projekte hinweg. Eine Sitzung, die noch
in einem anderen Terminal offen ist, erscheint dort erst, wenn man sie in den
Hintergrund schickt (Doku zur Agent View (externe Seite, code.claude.com)).
Jede Zeile dort ist ein vollständiges Gespräch mit Claude Code, das ohne angeschlossenes Terminal weiterläuft. Man kann es öffnen, antworten und wieder gehen (Doku zur Agent View (externe Seite, code.claude.com)). Unten in der Ansicht steht ein Eingabefeld. Jede Eingabe dort startet eine neue Sitzung, die als eigene Zeile erscheint. Die Leertaste auf einer Zeile zeigt die letzte Ausgabe oder die offene Frage der Sitzung, und eine Antwort geht direkt an sie. Enter öffnet das ganze Gespräch.
Auch eine Sitzung, die im Terminal begonnen hat, kommt dorthin. Die
Pfeiltaste nach links (←) auf leerer Eingabe schickt sie in den Hintergrund und
öffnet die Agent View in einem Schritt. /background, kurz /bg, tut dasselbe
als Befehl. Aus einer geöffneten Sitzung führt dieselbe Taste zurück zur
Liste.
Getrennt bleiben die Änderungen auch hier über Worktrees. Eine Sitzung, die
aus der Agent View oder mit claude --bg startet, beginnt im Arbeitsordner.
Bevor sie die erste Datei ändert, zieht sie in einen eigenen Worktree unter
.claude/worktrees/ um. Lesen können alle Sitzungen denselben Stand,
schreiben tut jede in ihren eigenen. Ausgenommen ist eine Sitzung,
die man selbst mit der Pfeiltaste oder /background in den Hintergrund
geschickt hat. Sie arbeitet dort weiter, wo sie schon war.
Jede dieser Sitzungen verbraucht Kontingent wie eine Sitzung im Terminal. Zehn Agenten nebeneinander verbrauchen das Kontingent laut Doku zur Agent View (externe Seite, code.claude.com) etwa zehnmal so schnell wie einer.
Welcher Weg wofür
Die Doku vergleicht die Wege auf einer eigenen Seite (Parallel arbeiten (externe Seite, code.claude.com)) und stellt dafür drei Fragen. Wer verteilt die Arbeit? Müssen die Beteiligten miteinander reden? Und fassen sie dieselben Dateien an? Für die dritte Frage gibt die Seite eine klare Antwort: Wer dieselben Dateien berührt, trennt die Arbeit mit Worktrees. Bei Agent Teams teilt man die Arbeit so auf, dass jedes Mitglied eigene Dateien bearbeitet. Grund: Die Mitglieder eines Teams bekommen keine eigenen Worktrees.
Für die ersten beiden gilt grob: Ein Subagent erledigt eine Nebenaufgabe innerhalb eines Gesprächs und meldet sein Ergebnis an dieses Gespräch zurück. Die Sitzungen der Agent View berichten an den Menschen, der sie gestartet hat. Soll Claude selbst eine Gruppe von Agenten planen, verteilen und beaufsichtigen, ist das ein Team, und das behandelt Kapitel 22.
Was im Hintergrund weiterläuft, wenn man eine Antwort abbricht, steht auf der zweiten Ebene. Dort steht auch, was ein Worktree mit dem Hauptverzeichnis teilt und was beim Löschen einer Sitzung mit ihm geschieht.
Die erste Ebene hat die drei Wege vorgestellt. Hier geht es um die Stellen,
an denen sie im Alltag haken. Das sind eine abgebrochene Antwort, ein
Worktree ohne .env, eine Freigabe aus einem Worktree und eine gelöschte
Sitzung mit Arbeit, die noch nicht committet war.
Was im Hintergrund weiterläuft
Ein Druck auf Esc unterbricht Claude mitten in der Antwort. Seit Version 2.1.47 vom 18.02.2026 laufen Agenten im Hintergrund dabei weiter, Esc hält nur das Hauptgespräch an (Versionsliste (externe Seite, code.claude.com)). Vorher beendete ein doppeltes Esc auch die Agenten im Hintergrund. Wer sie heute alle anhalten will, drückt Ctrl+X Ctrl+K, zur Bestätigung zweimal innerhalb von drei Sekunden (Tastenübersicht (externe Seite, code.claude.com)).
Ein Subagent im Hintergrund stößt manchmal auf eine Aktion, die eine Freigabe braucht. Die Rückfrage erscheint dann im Hauptgespräch, mit dem Namen des Subagent, der fragt (Doku zu Subagents (externe Seite, code.claude.com)). Esc lehnt an dieser Stelle nur diesen einen Aufruf ab, der Subagent arbeitet weiter. Eine Freigabe für den Rest der Sitzung gilt dagegen überall in der Sitzung, auch im Hauptgespräch.
Das Ergebnis eines Subagent im Hintergrund erreicht Claude als Nachricht in einer späteren Runde. Claude wartet auf diese Nachricht, bevor es über das Ergebnis berichtet. Wer vorher nach dem Stand fragt, hört, dass der Subagent noch läuft. Vor Version 2.1.211 vom 15.07.2026 meldete Claude manchmal Ergebnisse eines Subagent, der noch gar nicht fertig war (Doku zu Subagents (externe Seite, code.claude.com)).
Ein fertiger Subagent bleibt 30 Sekunden lang in /tasks stehen, als
erledigt markiert. In dieser Zeit lässt sich sein Verlauf noch öffnen
(Doku zu Subagents (externe Seite, code.claude.com)).
Beim Beenden von Claude Code enden auch die Befehle im Hintergrund (Tastenübersicht (externe Seite, code.claude.com)). Läuft dann noch Arbeit, fragt Claude Code vorher nach und bietet an, die ganze Sitzung in den Hintergrund zu schicken. Dort laufen Befehle und Subagents weiter (Doku zur Agent View (externe Seite, code.claude.com)).
Was ein Worktree mitnimmt und was er teilt
Ein Worktree enthält, was Git verwaltet. Dateien, die Git ignoriert, fehlen
darin, allen voran die .env mit lokalen Einstellungen. Eine Datei
.worktreeinclude im Hauptverzeichnis des Projekts zählt auf, was Claude
Code in jeden neuen Worktree kopieren soll. Sie folgt der Schreibweise der
.gitignore. Kopiert wird nur, was ein Muster trifft und zugleich von Git
ignoriert wird. Versionierte Dateien landen so nie doppelt im Worktree
(Worktree-Doku (externe Seite, code.claude.com)).
Das Beispiel der Doku kopiert zwei Umgebungsdateien und eine Datei mit Zugangsdaten. Wer so eine Liste anlegt, verteilt diese Zugangsdaten also auf jeden Worktree, auch auf die, die ein Subagent für ein paar Minuten anlegt.
Von welchem Stand ein neuer Worktree abzweigt, regelt die Einstellung
worktree.baseRef. In der Voreinstellung "fresh" beginnt er beim
Standardbranch auf dem Server, meist main. Mit "head" beginnt er beim
eigenen lokalen Stand, samt Commits, die noch nicht hochgeladen sind. Das
braucht, wer Subagents an halbfertiger Arbeit weitermachen lässt. Einen
bestimmten Branch kann man dort nicht eintragen. Dafür legt man den Worktree
mit git worktree add selbst an und startet Claude Code darin.
Getrennt sind im Worktree die Dateien und der Branch. Mit dem Hauptverzeichnis gemeinsam hat er diese Teile (Worktree-Doku (externe Seite, code.claude.com)):
| Was | Wie |
|---|---|
das Verzeichnis .git | Commits aus dem Worktree landen in derselben Historie |
| Plugins mit Projektgeltung | laden in jedem Worktree desselben Repositorys, seit Version 2.1.200 |
| Freigaben für einen Bash-Befehl mit „nicht mehr fragen“ | stehen in der .claude/settings.local.json des Hauptverzeichnisses und gelten in allen Worktrees, seit Version 2.1.211 |
| nicht versionierte Skills, Agenten und Befehle | liest der Worktree aus dem Hauptverzeichnis, wenn ihm der jeweilige Ordner unter .claude/ fehlt |
Die Freigaben sind der Fall, der früher Arbeit kostete. Seit Version 2.1.211 speichert Claude Code eine Freigabe aus einem Worktree im Hauptverzeichnis. Sie gilt dann über Sitzungen und Worktrees hinweg (Versionsliste (externe Seite, code.claude.com)). Vorher blieb sie im Worktree, galt nirgends sonst und verschwand mit ihm. Unter Windows und in einigen anderen Fällen bleibt sie weiter beim Worktree.
Claude kann auch mitten in einer Sitzung in einen Worktree wechseln. Die
Bitte, in einem Worktree zu arbeiten, genügt, Claude legt ihn dann mit dem
Werkzeug EnterWorktree an. Ein Wechsel in einen Ordner außerhalb von
.claude/worktrees/ braucht eine Freigabe, auch wenn eine Regel das
Werkzeug sonst erlaubt. Mit dem Ordner wandern Schreibrecht und
Projekteinstellungen dorthin.
Das Scratchpad für Zwischenstände
Ein Worktree trennt die Änderungen am Projekt. Für Dateien, die gar nicht
ins Projekt gehören, hat jede Sitzung einen eigenen Ordner, das Scratchpad.
Claude legt dort Zwischenergebnisse, Hilfsskripte und Entwürfe ab
(Verzeichnis-Doku (externe Seite, code.claude.com)).
Claude benutzt den Ordner anstelle von /tmp und darf dort ohne Rückfrage
Dateien anlegen, ändern und lesen. Sagt Claude, es habe etwas im Scratchpad
gespeichert, liegt die Datei dort.
Der Ordner liegt im Temp-Verzeichnis des Systems. Er bleibt so lange wie das Transkript der Sitzung, denn das automatische Aufräumen löscht beide zusammen. Das Betriebssystem kann ihn außerdem leeren, etwa bei einem Neustart. Was bleiben soll, lässt man Claude ins Projekt verschieben.
Ein Scratchpad gibt es nur, wenn drei Bedingungen gelten (Verzeichnis-Doku (externe Seite, code.claude.com)):
- Die Anmeldung läuft über ein Konto bei claude.ai, ein API-Schlüssel reicht dafür nicht.
- Die Sitzung spricht direkt mit der Anthropic API. Über Amazon Bedrock, die Agent Platform von Google Cloud oder Microsoft Foundry gibt es keins.
- Die Einstellung
enableArtifactsteht nicht auffalse.
Subagents im eigenen Worktree
Teilt Claude eine Aufgabe auf mehrere Subagents auf, arbeiten die
normalerweise im selben Ordner wie das Hauptgespräch. Seit Version 2.1.49
kann jeder von ihnen einen eigenen, vorübergehenden Worktree bekommen. Seit
Version 2.1.50 vom 20.02.2026 lässt sich das in der Definition eines
Agenten festlegen (Versionsliste (externe Seite, code.claude.com)). Für eine
einzelne Aufgabe genügt die Bitte an Claude, die Agenten in Worktrees
arbeiten zu lassen. Ein Agent, der immer getrennt arbeiten soll, bekommt in
seiner Datei unter .claude/agents/ die Zeile isolation: worktree
(Worktree-Doku (externe Seite, code.claude.com)).
Endet ein solcher Subagent ohne Änderungen, entfernt Claude Code seinen
Worktree sofort. Hat er etwas geändert, bleibt der Worktree liegen, bis ein
späteres Aufräumen ihn ohne Verlust entfernen kann. Er zweigt vom selben
Stand ab wie --worktree, also in der Voreinstellung vom Standardbranch. Wer
die Subagents auf der eigenen, noch nicht hochgeladenen Arbeit aufbauen
lassen will, braucht dafür worktree.baseRef: "head".
Eine Eigenheit betrifft die Projektanweisung. Ein Subagent im eigenen
Worktree übernimmt die Projektanweisungen, mit denen er startet, aus dem
Hauptgespräch. Liegt sein Worktree am üblichen Ort unter .claude/worktrees/,
lädt er die CLAUDE.md und den Ordner .claude/rules/ im Worktree selbst
nicht nach, auch wenn sie auf dessen Branch anders lauten. Wie Subagents
überhaupt starten und was sie sehen, erklärt Kapitel 20.
Mit Version 2.1.50 kam auch der Befehl claude agents dazu. Damals zählte er
die eingerichteten Agenten auf. Seit Version 2.1.139 öffnet derselbe Befehl
die Agent View. Gibt er weiterhin eine Liste von Subagents aus und beendet
sich, ist die Agent View in dieser Umgebung nicht verfügbar. Die Doku rät
dann zu claude update (Doku zur Agent View (externe Seite, code.claude.com)).
Sitzungen ohne Terminal
Eine Sitzung, die man mit claude startet, hängt an ihrem Terminal und endet
mit ihm. Eine Hintergrund-Sitzung hängt an einem eigenen Dienst, den die Doku
Supervisor nennt. Er startet beim ersten Mal von selbst und hält die
Sitzungen am Laufen, auch wenn Agent View und Terminal geschlossen sind
(Doku zur Agent View (externe Seite, code.claude.com)).
Schläft der Rechner, laufen die Sitzungen danach weiter. Fährt er herunter,
enden sie, ihr Gespräch bleibt auf der Platte.
Direkt aus der Shell startet claude --bg "…" eine Sitzung im Hintergrund.
Claude Code gibt dann eine kurze Kennung aus und die Befehle, mit denen man
die Sitzung öffnet, ihre Ausgabe liest oder sie anhält. Wer eine laufende
Sitzung in den Hintergrund schickt, nimmt ihre laufende Arbeit mit:
Hintergrundbefehle, Subagents im Hintergrund, Workflows und mit /loop
geplante Aufgaben. Eine laufende Beobachtung mit dem Werkzeug Monitor kann
nicht mit umziehen. Claude Code fragt dann vorher nach.
Eine Sitzung, die fertig ist oder auf die nächste Nachricht wartet und etwa eine Stunde lang niemand geöffnet hat, hält der Supervisor an. Das Gespräch bleibt erhalten, beim nächsten Öffnen läuft sie dort weiter. Wer eine Sitzung ständig bereithalten will, heftet sie in der Agent View mit Ctrl+T an. Seit Version 2.1.147 vom 21.05.2026 bleibt eine angeheftete Sitzung auch ohne Arbeit am Leben. Für ein Update startet Claude Code sie an Ort und Stelle neu (Versionsliste (externe Seite, code.claude.com)). Wird der Speicher knapp, beendet Claude Code zuerst die anderen.
Seit Version 2.1.144 vom 19.05.2026 stehen Hintergrund-Sitzungen auch in der
Auswahl von /resume, neben den gewöhnlichen und mit bg markiert
(Versionsliste (externe Seite, code.claude.com)).
Läuft die gewählte Sitzung noch, öffnet Claude Code seit Version 2.1.285 vom
29.09.2026 die laufende Sitzung selbst. Das eigene Gespräch wandert dabei in
den Hintergrund (Doku zu Sitzungen (externe Seite, code.claude.com)). Aus der Agent
View heraus holt ein bloßes /resume im Eingabefeld eine frühere Sitzung des
Repositorys als neue Zeile zurück. Wie das Fortsetzen sonst funktioniert und
was /fork kopiert, steht in Kapitel 05.
Was mit dem Worktree einer Hintergrund-Sitzung geschieht
Eine Sitzung aus der Agent View zieht vor der ersten Änderung in ihren eigenen Worktree. In diesen Fällen lässt Claude den Umzug aus (Doku zur Agent View (externe Seite, code.claude.com)):
- Die Sitzung kam mit der Pfeiltaste oder
/backgroundaus dem Terminal. - Sie läuft schon in einem Worktree.
- Die Datei, die Claude bearbeitet, liegt schon in einem Worktree.
- Der Ordner ist kein Git-Repository, und kein Hook legt Worktrees an.
- Sie schreibt außerhalb ihres Arbeitsordners.
Für Repositorys, in denen Worktrees unpraktisch sind, gibt es seit Version
2.1.143 vom 15.05.2026 die Einstellung worktree.bgIsolation mit dem Wert
"none"
(Versionsliste (externe Seite, code.claude.com)). Hintergrund-Sitzungen
bearbeiten dann die Arbeitskopie direkt, ohne vorher in einen Worktree zu
wechseln. Damit liegt die Trennung wieder bei
einem selbst: Zwei Sitzungen an derselben Datei überschreiben einander.
Hat eine Hintergrund-Sitzung in ihrem Worktree Code geändert, sichert sie die
Arbeit, bevor sie fertig ist. Claude committet ohne Rückfrage und lädt den
Branch hoch, wenn das Repository einen Server hat.
Verlangt die Aufgabe es, öffnet Claude einen Pull Request als Entwurf, und
die Zeile in der Agent View zeigt seine Nummer. Ausgeschlossen sind ein Push
auf main oder master, ein erzwungener Push und ein Merge. Steht in der
Aufgabe, in der CLAUDE.md oder im Gedächtnis, dass man Git selbst bedient,
lässt Claude die Finger davon. Eine Sitzung ohne eigenen Worktree fragt vor
jedem Commit und jedem Wechsel des Branches nach.
Ctrl+X, zweimal innerhalb von zwei Sekunden, löscht eine
Sitzung aus der Agent View. Den Worktree, den Claude für sie angelegt hat,
entfernt die Agent View dabei mit, samt allen Änderungen, die noch nicht
committet sind (Doku zur Agent View (externe Seite, code.claude.com)).
Commits, die noch nirgends sonst liegen, schützt Claude Code dagegen: Es
behält Worktree und Sitzung und nennt den Branch und die Zahl der Commits.
Erst ein zweites Löschen verwirft sie. Das Gespräch selbst bleibt in jedem
Fall auf dem Rechner und ist über claude --resume erreichbar.
Ein Worktree ist ein Ordner, und eine Hintergrund-Sitzung ist ein Prozess mit einer Kennung. Beides lässt sich von außen ansehen, sperren, aufräumen und steuern. Darum geht es auf dieser Ebene.
Wie Claude Code die Trennung durchsetzt
Solange eine Sitzung in einem Worktree arbeitet, weist Claude Code
Werkzeugaufrufe ab, die ins Hauptverzeichnis zielen. Das gilt gleich, ob die
Sitzung mit --worktree begann, später mit EnterWorktree wechselte oder
fortgesetzt wurde. Es gilt auch für jeden Subagent, den diese Sitzung startet
(Worktree-Doku (externe Seite, code.claude.com)).
Die Doku nennt vier Prüfungen:
- Dateiänderungen:
Edit,WriteundNotebookEditmit einem Ziel im Hauptverzeichnis werden abgewiesen. - Arbeitsordner eines Befehls: Ein Befehl für Bash, PowerShell oder
Monitor, der im Hauptverzeichnis laufen würde, wird abgewiesen. Dasselbe gilt, wenn Claude Code den Ordner nicht sicher bestimmen kann. - Umgeleitetes Git:
git -C,--git-dir, die VariablenGIT_DIRundGIT_WORK_TREEoder eincdins Hauptverzeichnis vor einem Git-Befehl werden abgewiesen. - Form des Befehls: Lässt sich am Text eines Befehls nicht ablesen, ob jedes Git darin im Worktree bleibt, wird er abgewiesen. Diese Prüfung lässt sich nicht abschalten.
Bei PowerShell gilt nur die Prüfung des Arbeitsordners. Claude sieht jede Abweisung als Fehler des Werkzeugs, der den Worktree nennt und den Ausweg beschreibt. Weist die Formprüfung einen Befehl ab, sagt Claude Code auch, wie er umzuschreiben ist, etwa als einfache Einzelbefehle.
Alle vier Prüfungen lesen Pfade und Befehlstexte. Was ein Shell-Befehl
tatsächlich schreibt, verfolgen sie nicht. Ein cp ins Hauptverzeichnis kommt
deshalb durch und unterliegt nur den gewöhnlichen Rechten und der Sandbox.
Was das für die Arbeit mit Git heißt, steht in Vibe-Coding / Agentic Engineering, Kapitel 04.
Vor Version 2.1.210 hatte die Trennung bei Subagents mit
isolation: worktree eine weitere Lücke. Git-Befehle, die den Stand ändern,
konnten dort das Hauptverzeichnis treffen
(Versionsliste (externe Seite, code.claude.com)).
Wann Claude Code aufräumt
Eine interaktive Sitzung mit --worktree räumt beim Beenden auf oder fragt,
das beschreibt die erste Ebene. Läufe mit claude -p haben kein solches
Ende. Ihre Worktrees bleiben liegen. Weg kommen sie mit git worktree remove,
vorher braucht es manchmal git worktree unlock.
Für die Worktrees von Subagents und Hintergrund-Sitzungen gibt es ein
regelmäßiges Aufräumen. Es entfernt sie, sobald sie älter sind als die
Einstellung cleanupPeriodDays, in der Voreinstellung 30 Tage. Stehen
bleiben unter anderem:
- ein Worktree mit geänderten oder neuen Dateien oder mit Commits, die nicht hochgeladen sind
- ein Worktree, dessen ausgecheckte Submodule Änderungen enthalten oder sich nicht prüfen lassen
- der Worktree einer
--worktree-Sitzung, die man nicht in den Hintergrund geschickt hat, gleich wie alt - ein Worktree, den man selbst mit
git worktree addangelegt hat
Claude Code erkennt seine eigenen Worktrees an einer Markierung in den Git-Metadaten. Einen Worktree ohne diese Markierung lässt das Aufräumen stehen.
Solange ein Agent läuft, sperrt Claude Code seinen Worktree mit
git worktree lock. So kann ihn kein gleichzeitiges Aufräumen entfernen.
Dieselbe Sperre gilt für den Worktree einer laufenden Hintergrund-Sitzung.
Vor Version 2.1.210 vom 14.07.2026 blieb die Sperre einer abgebrochenen
Sitzung stehen, bis man sie selbst löste. Seitdem löst das Aufräumen Sperren,
deren Prozess nicht mehr existiert. Eine Sperre, die man selbst gesetzt hat,
löst es nie.
Das Scratchpad einer Sitzung liegt im Temp-Verzeichnis von Claude Code, unter
macOS unter /private/tmp/claude-<uid>/<projekt>/<sitzung>/scratchpad/, unter
Linux unter /tmp/claude-<uid>/ mit demselben Aufbau. Die Variable
CLAUDE_CODE_TMPDIR verlegt den ganzen Baum. Hooks bekommen den Pfad der
laufenden Sitzung im Feld scratchpad_dir
(Verzeichnis-Doku (externe Seite, code.claude.com)). Das regelmäßige
Aufräumen löscht das Scratchpad mit dem Transkript der Sitzung, also nach
cleanupPeriodDays. Der Befehl claude purge lässt es liegen, weil es
außerhalb von ~/.claude steht. Nach einem purge bleibt es, bis man es
selbst löscht oder das Betriebssystem den Temp-Ordner leert.
Einen Worktree wieder aufnehmen
Wer einen Worktree beim Beenden behält, kommt mit diesem Befehl zurück:
claude --worktree <name> --resume
Claude Code zeigt ihn beim Beenden an. Endete eine Sitzung im Worktree, ohne ihn zu verlassen, führt
das Fortsetzen sie wieder dorthin, auch mit claude -p und im Agent SDK.
Eine Kopie mit --fork-session beginnt im Startordner, der Worktree des
Originals bleibt unberührt.
Vorher prüft Claude Code, ob der Ordner noch ein eigener Checkout ist. Fehlt
der Worktree, läuft die Sitzung im Startordner weiter, ohne Trennung
(Worktree-Doku (externe Seite, code.claude.com)).
Ein Name, dessen Ordner schon existiert, öffnet den vorhandenen Worktree.
Mit der Voreinstellung "fresh" setzt Claude Code ihn auf den Standardbranch
zurück, wenn drei Bedingungen zugleich gelten:
- Der Worktree hat keine offenen Änderungen und keine neuen Dateien.
- Er steht noch auf dem Branch, den Claude Code für ihn angelegt hat.
- Er hat keine eigenen Commits, oder sein Pull Request ist gemergt und der Branch auf dem Server gelöscht.
In jedem anderen Fall öffnet er beim alten Stand. So lässt sich ein Name für die nächste Aufgabe wiederverwenden, ohne alte Arbeit zu verlieren.
Statt eines Namens nimmt --worktree auch einen Pull Request:
claude --worktree "#1234" holt dessen letzten Commit von origin und legt
den Worktree unter .claude/worktrees/pr-1234 an. Die Anführungszeichen
braucht die Shell, sonst gilt # als Beginn eines Kommentars. Seit Version
2.1.233 gehen auch Adressen von Merge Requests bei GitLab.
Eine Falle betrifft Git LFS. Wer es mit git lfs install --local eingerichtet
hat, findet im Worktree nur Zeiger anstelle der echten Dateien.
Claude Code überspringt beim Anlegen die Filter, die in der Konfiguration des
Repositorys selbst stehen. Ein solcher Filter ist ein Shell-Befehl, und
jeder, der ins Repository schreiben kann, auch Claude, könnte ihn dort
abgelegt haben. git lfs pull im Worktree holt die echten Dateien.
Hintergrund-Sitzungen aus der Shell
Jede Hintergrund-Sitzung hat eine kurze Kennung. Mit ihr lässt sie sich ohne Agent View steuern, etwa aus einem Skript (Doku zur Agent View (externe Seite, code.claude.com)):
| Befehl | Wirkung |
|---|---|
claude agents --json | gibt die aktiven Sitzungen als JSON aus und endet, mit --all auch die abgeschlossenen |
claude agents --cwd <pfad> | zeigt nur Sitzungen, die unter diesem Ordner begannen |
claude attach <id> | öffnet die Sitzung in diesem Terminal |
claude logs <id> | zeigt die letzte Ausgabe |
claude stop <id> | hält die Sitzung an |
claude respawn <id> | startet sie neu, etwa auf einer neuen Version |
claude rm <id> | nimmt sie aus der Liste, samt Worktree, wo das gefahrlos geht |
claude --bg --exec '<befehl>' | startet einen Shell-Befehl als eigene Zeile, ohne Claude |
Der Zustand liegt unter ~/.claude/jobs/<id>/. Die Doku rät, ihn über
claude agents --json zu lesen statt aus den Dateien. Jede Sitzung bekommt
die Variable CLAUDE_JOB_DIR mit diesem Ordner. Ihre Befehle können dort im
Unterordner tmp Zwischendateien ablegen, ohne einer anderen Sitzung in die
Quere zu kommen.
claude rm ist vorsichtiger als die Taste in der Agent View. Hat der
Worktree Änderungen, die nicht committet sind, behält claude rm Worktree
und Zeile. Die Agent View entfernt beides.
In welcher Art Sitzung man gerade sitzt, zeigt /status in der Zeile
Session kind. Ganz abschalten lassen sich Agent View und Hintergrund-Agenten
mit der Einstellung disableAgentView oder der Umgebungsvariable
CLAUDE_CODE_DISABLE_AGENT_VIEW. Eine Organisation kann das über verwaltete
Einstellungen vorschreiben. Wer die Pfeiltaste im Terminal anders braucht,
schaltet nur sie ab, mit leftArrowOpensAgents. Umgekehrt öffnet claude
ohne Argumente gleich die Agent View, wenn defaultToAgentsView an ist.
Vom Hintergrund-Agent zur Agent View
Die Tabelle zeigt, wann die Funktionen dieses Kapitels dazukamen. Alle Angaben stammen aus der Versionsliste (externe Seite, code.claude.com):
| Version | Datum | Was dazukam |
|---|---|---|
| 1.0.71 | 07.08.2025 | Ctrl+B schickt einen Shell-Befehl in den Hintergrund |
| 2.0.60 | 06.12.2025 | Agenten laufen im Hintergrund |
| 2.0.64 | 10.12.2025 | Agenten und Befehle im Hintergrund wecken den Hauptagenten |
| 2.1.0 | 07.01.2026 | Ctrl+B schickt alles Laufende auf einmal in den Hintergrund |
| 2.1.47 | 18.02.2026 | Agenten im Hintergrund überstehen Esc |
| 2.1.49 | 19.02.2026 | --worktree, Subagents in einem eigenen Worktree |
| 2.1.50 | 20.02.2026 | isolation: worktree in der Agentendatei, Hooks für andere Versionsverwaltungen |
| 2.1.139 | 11.05.2026 | Agent View als Forschungsvorschau |
| 2.1.143 | 15.05.2026 | worktree.bgIsolation |
| 2.1.144 | 19.05.2026 | Hintergrund-Sitzungen in /resume |
| 2.1.147 | 21.05.2026 | angeheftete Sitzungen bleiben am Leben |
| 2.1.196 | 29.06.2026 | ein einziger Druck auf ← öffnet die Agent View, vorher waren es zwei |
| 2.1.198 | 01.07.2026 | Subagents laufen in der Voreinstellung im Hintergrund |
| 2.1.212 | 17.07.2026 | /fork kopiert die Sitzung in eine Hintergrund-Sitzung |
| 2.1.285 | 29.09.2026 | /resume öffnet eine Hintergrund-Sitzung, die noch läuft |
Die Agent View hat auf ihrer Seite eine eigene Versionsliste. Sie reicht bis zur Einführung in Version 2.1.139 zurück und nennt für jeden Schalter und jedes Verhalten die Version, mit der es kam. Wer mit einer älteren Version arbeitet, findet dort, ab wann eine Taste oder ein Schalter gilt.
Quellen
10 Einträgealle erreichbar
Erreichbarkeit automatisch geprüft
Dokumentationerreichbar
Claude Code Changelog, Fassung 2.0.60 (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Der Eintrag zu Claude Code 2.0.60 vom 06.12.2025: Agenten können im Hintergrund weiterarbeiten. Zum Standard wurde das mit Fassung 2.1.198 im Juli 2026.
Dokumentationerreichbar
Anthropic, Claude Code changelog (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Versionsliste von Claude Code mit Neuerungen, Verbesserungen und Fehlerbehebungen je Fassung, erzeugt aus der Datei CHANGELOG.md im GitHub-Repository. Jede Fassung steht mit ihrem Erscheinungsdatum da, am 09.10.2026 zuoberst 2.1.296 vom selben Tag.
Dokumentationerreichbar
Anthropic, Interactive mode (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Herstellerreferenz zu Tastenkürzeln, Eingabemodi und interaktiven Funktionen einer Sitzung in Claude Code, darunter Vim-Modus, Befehlsverlauf, Bash-Befehle im Hintergrund, Nachrichten in der Warteschlange, /diff, Nebenfragen mit /btw und die Aufgabenliste.
Dokumentationerreichbar
Anthropic, Commands (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Herstellerreferenz aller Befehle in Claude Code, eingebaute Befehle wie mitgelieferte Skills. Sie erklärt, dass ein Befehl nur am Anfang einer Nachricht erkannt wird, der Rest als Argument gilt, und dass Befehle während einer laufenden Antwort in die Warteschlange kommen.
Dokumentationerreichbar
Anthropic, Run parallel sessions with worktrees (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Herstellerdokumentation zu getrennten Worktrees: ein zweites Arbeitsverzeichnis mit eigenen Dateien und eigenem Branch auf derselben Historie. Sie belegt die Antwort auf die Frage, wie zwei Agenten gleichzeitig an einem Projekt arbeiten können, ohne sich in die Quere zu kommen, und nennt die Kanten: Ein frischer Auscheckvorgang hat die nicht committeten Dateien nicht dabei, und aufgeräumt wird nur, was keine Arbeit mehr enthält. Für die Mitnahmeliste steht das Beispiel des Herstellers selbst da, und es besteht aus zwei Umgebungsdateien und einer Datei mit Zugangsdaten. Ein neuer Worktree zweigt in der Voreinstellung vom Standardzweig auf dem Server ab, ein Schalter stellt ihn auf den lokalen Stand um.
Dokumentationerreichbar
Anthropic, Manage multiple agents with agent view (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Herstellerdokumentation zur Agent View, einer Forschungsvorschau: Der Befehl claude agents zeigt alle Sitzungen, die ohne Terminal im Hintergrund laufen, in einer Liste nach ihrem Zustand. Sie beschreibt, wie man Sitzungen startet, in den Hintergrund schickt, öffnet und löscht, wie jede Sitzung vor der ersten Änderung in einen eigenen Worktree zieht und was beim Löschen mit diesem Worktree geschieht. Dazu der Dienst, der die Sitzungen am Laufen hält, die Befehle für die Shell und eine eigene Versionsliste ab Version 2.1.139.
Dokumentationerreichbar
Anthropic, Run agents in parallel (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Übersicht des Herstellers über die fünf Wege, in Claude Code mehrere Aufgaben gleichzeitig zu bearbeiten: Subagents, Agent View, Agent Teams, Dynamic Workflows und Projects. Sie ordnet sie danach, wer die Arbeit koordiniert, ob die Beteiligten miteinander sprechen und ob sie dieselben Dateien ändern, und nennt Worktrees, Nachrichten zwischen Sitzungen und den Skill /batch als Hilfsmittel.
Dokumentationerreichbar
Anthropic, Explore the .claude directory (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Übersicht, wo Claude Code CLAUDE.md, settings.json, Hooks, Skills, Befehle, Subagents, Workflows, Regeln und das automatische Gedächtnis liest, im Projektordner .claude und in ~/.claude, dazu das Scratchpad: der Ordner je Sitzung für Zwischenstände, wo er liegt, wann er verschwindet und wann es ihn gibt.
Dokumentationerreichbar
Anthropic, Create custom subagents (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Herstellerdokumentation zu Subagenten. Sie beantwortet die Frage, wozu man sie nimmt, über den Kontext statt über die Arbeitsteilung: Eine Nebenaufgabe, deren Suchtreffer, Protokolle und Dateiinhalte niemand wieder braucht, läuft in einem eigenen Fenster und gibt nur die Zusammenfassung zurück. Dazu die Kanten, die man beim Bauen trifft: eigene Tool-Liste und eigene Berechtigungen, eine Anlaufzeit, weil ein Subagent bei null anfängt, und die Beobachtung, dass viele ausführliche Rückgaben denselben Platz kosten, den man sparen wollte.
Dokumentationerreichbar
Anthropic, Manage sessions (externe Seite, code.claude.com)
code.claude.comgeprüft 25.10.2026
Die Herstellerdokumentation zu Sitzungen in Claude Code: benennen, fortsetzen mit --continue, --resume oder --from-pr, verzweigen und wechseln, dazu Export der Verläufe und der Speicherort der Transkripte. Eine Sitzung ist ein gespeichertes Gespräch, das an ein Projektverzeichnis gebunden ist.