Untersitzungen und Git-Zusammenarbeit
Zwei Funktionen, die zusammengehören: das Auslagern von Teilaufgaben in eigenständige Untersitzungen (optional in isolierten Git-Worktrees) und ein grafischer Merge, der parallele Branches wieder zusammenführt. Gemeinsam ermöglichen sie es mehreren Agenten, parallel am selben Repository zu arbeiten.
1. Was das Starten von Untersitzungen bedeutet
Aus jeder Sitzung heraus können Sie eine Teilaufgabe abspalten. VelaTerm erstellt eine neue Untersitzung unterhalb des aktuellen Knotens (der Baum wird hierarchisch: übergeordnete Sitzung → Untersitzung → deren Untersitzung), gibt ihr optional einen isolierten Git-Worktree und sendet die Aufgabenbeschreibung als erste Nachricht an die neue Sitzung. Der neue Agent beginnt gleich nach dem Start mit der Arbeit, ohne dass weitere Erklärungen nötig sind.
Das Ergebnis ist eine echte Sitzung im Baum mit eigenem Prozess, die Sie jederzeit beobachten, beantworten, erneut öffnen und fortsetzen können. Es handelt sich nicht um eine verborgene Hintergrundaufgabe.
Für Arbeit, die von getrennten Agenten geplant, ausgeführt und geprüft werden soll, verwenden Sie stattdessen einen Planungs- und Ausführungsworkflow; siehe Planung und Ausführung.
2. Möglichkeiten zum Starten
| Einstieg | Wer ihn verwendet | Worktree |
|---|---|---|
Befehl vspawn "task" | Sie oder ein Skript, in jeder Sitzung | Standardmäßig aus; --worktree schaltet ihn ein |
Befehl vspawn-tree "task" | Ebenso | Immer ein |
/vspawn task in Claude Code, $vspawn task in Codex | Sie beauftragen den Agenten; er baut die Aufgabe zuerst zu einem in sich geschlossenen Prompt aus | Standardmäßig aus |
/vspawn-tree task in Claude Code, $vspawn-tree task in Codex | Ebenso | Immer ein |
Die beiden Befehle stehen in jeder Sitzung zur Verfügung, die VelaTerm startet. Die Agenten-Skills erfordern Vela Skills: Wählen Sie unter Einstellungen ▸ Allgemein „Install“ und starten Sie anschließend ein neues Gespräch mit Claude Code oder Codex, damit der Agent die Skills übernimmt. Agenten rufen diese Skills nur auf, wenn Sie sie dazu auffordern.
Eine neue Sitzung sieht das Gespräch nicht, aus dem sie hervorgegangen ist. Wenn Sie den Skill verwenden, schreibt der Agent Ziel, relevante Dateien, bisherige Erkenntnisse, Randbedingungen und Abnahmekriterien in die Aufgabe. Wenn Sie den Befehl selbst ausführen, nehmen Sie diese Angaben in den Aufgabentext auf.
3. Verzeichnis, Agent und Modell
- Verzeichnis. Die Untersitzung startet in dem Verzeichnis, in dem der Befehl ausgeführt wird; es ist zugleich das Repository für einen Worktree. Mit
--cwd <path>verwenden Sie ein anderes Projekt, zum Beispielvspawn-tree --cwd /work/project "fix the parser". Das ist in einer Sammlung wichtig, da sie keinen eigenen Projektordner hat. Die Skills ergänzen--cwd, wenn das Gespräch eindeutig ein bestimmtes Repository betrifft. - Agent. Die Untersitzung verwendet denselben Agenten wie die aktuelle Sitzung; aus einem normalen Terminal heraus wird Claude Code gestartet.
--claude,--codex,--copilotoder--kirowählen einen anderen Agenten, und die Bestätigungskarte bietet jeden Agententyp an. - Modell und Denkaufwand.
--model <name>und--effort <level>legen Modell und Denkaufwand der Untersitzung fest, zum Beispielvspawn --model opus --effort high "port the parser". Modellnamen richten sich nach dem Agenten, der die Aufgabe ausführt. Eine Einstellung, die der Agent nicht unterstützt, wird abgelehnt, bevor die Sitzung entsteht. Ohne diese Optionen übernimmt eine Untersitzung desselben Agententyps die Startargumente und die Berechtigungseinstellung der übergeordneten Sitzung; eine Untersitzung eines anderen Typs verwendet die Standardwerte dieses Agenten aus Einstellungen ▸ Agenten. - Ansicht. Eine Untersitzung, die die Gesprächsansicht unterstützt, öffnet sich in derselben Ansicht wie ihre übergeordnete Sitzung, sofern diese die Gesprächsansicht ebenfalls unterstützt, andernfalls in der Standardansicht des Agenten.
Alle Optionen sind in Sitzungsbefehle §3 aufgeführt.
4. Bestätigung vor dem Start
Standardmäßig zeigt jede Anfrage zum Starten einer Untersitzung zuerst eine Bestätigungskarte mit dem Titel „Untersitzung starten“. Die Karte nimmt der Sitzung, in der Sie gerade arbeiten, nicht den Fokus, und eine Systembenachrichtigung („Untersitzung wartet auf Bestätigung“) weist Sie darauf hin, dass eine Anfrage wartet.
- Die Karte zeigt die anfragende Sitzung und ihr Verzeichnis („Anfordernde Sitzung“), die „Aufgabenbeschreibung“, die zur ersten Nachricht der Untersitzung wird, die „Ausführungseinstellungen“ („Sitzungstyp“, „Modell“, „Denkaufwand“) sowie die Auswahl für das „Arbeitsverzeichnis“: „Aktuelles Verzeichnis“ oder „Separater Worktree“.
- Modellvorschläge stammen vom gewählten Agenten. Ist keine Liste verfügbar, können Sie eine Modellkennung eingeben. Bleibt ein Feld auf „Agent-Standard“, gilt die eigene Einstellung des Agenten.
- Ein normales Terminal öffnet sich im Arbeitsverzeichnis; die Aufgabenbeschreibung führt es nicht aus.
- „Sitzung starten“ (oder ⌘Enter / Ctrl+Enter) startet die Untersitzung; „Abbrechen“ verwirft die Anfrage. Weitere Anfragen warten in einer Warteschlange, und die Karte zeigt, wie viele noch offen sind („N weitere Anfragen prüfen“).
Um Anfragen ohne die Karte zu starten, deaktivieren Sie „Confirm before spawn“ unter Einstellungen ▸ Verhalten, oder ergänzen Sie einen einzelnen Befehl um --yes.
5. Worktrees: parallel arbeiten ohne Konflikte
Mit einem Worktree arbeitet die Untersitzung auf einem neuen Branch in einem eigenen Verzeichnis, getrennt vom Hauptarbeitsbereich und von anderen Untersitzungen. Das ist die empfohlene Arbeitsweise, wenn mehrere Agenten gleichzeitig dasselbe Repository ändern. Neue Worktrees basieren auf dem aktuellen Commit und enthalten keine uncommitteten Änderungen. Kann für eine gestartete Untersitzung kein Worktree erstellt werden, verwendet die Sitzung das ursprüngliche Verzeichnis.
Eine Sitzung, die in einem Worktree arbeitet, zeigt in der Seitenleiste ein kleines Kennzeichen an ihrem Symbol; bewegen Sie den Mauszeiger darüber, um Namen und Pfad des Worktrees zu sehen.
Weitere Möglichkeiten, mit Worktrees zu arbeiten:
- „Neue Worktree-Sitzung…“ im Menü eines Projekts, einer Gruppe oder einer Sitzung öffnet den Erstellungsdialog, in dem die Option „Worktree“ auf „Neu“ steht. Geben Sie einen „Worktree-Name“ ein; er wird für das Verzeichnis und den Branch verwendet. Im Dialog können Sie die Sitzung stattdessen mit „Vorhanden“ an einen bestehenden Worktree binden oder „Keiner“ wählen.
- „Zu Worktree verschieben…“ im Menü einer Gruppe bindet die Gruppe an einen neuen oder bestehenden Worktree. Sitzungen, die danach in der Gruppe erstellt werden, verwenden diesen Worktree; bereits vorhandene Sitzungen behalten ihr Verzeichnis. Eine Gruppe mit Worktree bietet außerdem „Gruppeninfo“.
Das Untermenü Git einer Sitzung oder Gruppe, deren Verzeichnis ein Git-Repository ist, enthält:
| Eintrag | Funktion |
|---|---|
| „Änderungen anzeigen…“ | Zeigt die Änderungen im Arbeitsverzeichnis mit Dateiliste und Diff |
| „Merge…“ | Öffnet den Merge-Dialog (§6) |
| „Copy worktree path“, „Open worktree folder“ | Verfügbar für Sitzungen und Gruppen, die an einen Worktree gebunden sind |
| „Delete worktree…“ | Wählen Sie einen Worktree dieses Repositorys und löschen Sie sein Verzeichnis vom Datenträger; „Force delete (discard uncommitted changes)“ entfernt ihn auch bei uncommitteten Änderungen |
Nachdem ein gebundener Worktree gelöscht wurde, bietet das Menü der Sitzung „Convert to normal session“ bzw. das Menü der Gruppe „Convert to normal group“ an. Damit wird die Bindung aufgehoben, und die Sitzung startet wieder im Projektverzeichnis.
Wenn Sie eine Sitzung löschen, in deren Teilbaum Worktrees existieren, bietet die Bestätigung an, diese Worktrees ebenfalls zu entfernen.
6. Merge: grafisches Zusammenführen mit Git
Ist die Arbeit erledigt, führen Sie sie zusammen. Wählen Sie bei einer Sitzung oder Gruppe, deren Verzeichnis ein Git-Repository ist, ob mit oder ohne Worktree, „Git ▸ Merge…“, um den Dialog „Merge branches“ zu öffnen:
- Beide Branches wählen. Wählen Sie einen „Source branch“ und einen „Target branch“; „Swap direction“ vertauscht die beiden. Mit demselben Dialog führen Sie den Branch einer Untersitzung in den Hauptbranch zurück oder holen den Hauptbranch in eine Untersitzung, um sie zu aktualisieren.
- Vor der Bestätigung listet der Dialog die Änderungen auf, die der Merge in den Ziel-Branch bringt.
- Der Merge läuft in dem Arbeitsverzeichnis, in dem der Ziel-Branch ausgecheckt ist. Ist der Ziel-Branch nirgends ausgecheckt, kann der Merge nicht ausgeführt werden; checken Sie ihn zuerst aus.
- Hat das Arbeitsverzeichnis des Quell-Branches uncommittete Änderungen, werden diese zuerst mit der von Ihnen eingegebenen Nachricht committet („Commit & merge“).
- Treten beim Merge Konflikte auf, belässt VelaTerm sie im Arbeitsverzeichnis und teilt Ihnen mit, wo Sie sie lösen. Lösen Sie die Konflikte im Terminal dieses Worktrees (oder lassen Sie das einen Agenten erledigen) und committen Sie anschließend.
Der Merge löscht den Worktree nicht. Entfernen Sie ihn danach mit „Git ▸ Delete worktree…“, sobald Sie ihn nicht mehr benötigen.
7. Ein typischer Ablauf
- Besprechen Sie die Aufgabe in der Hauptsitzung mit Claude Code und führen Sie dann
/vspawn-tree refactor the checkout moduleaus (erfordert Vela Skills). - Prüfen Sie die Aufgabe auf der Bestätigungskarte und wählen Sie „Sitzung starten“. Die Untersitzung startet in ihrem eigenen Worktree und erscheint in der Seitenleiste unter ihrer übergeordneten Sitzung, mit grünem Statuspunkt, solange sie arbeitet.
- Arbeiten Sie in der Hauptsitzung weiter. Stellt die Untersitzung eine Frage oder ist sie fertig, ändert sich ihr Punkt, und eine Benachrichtigung erscheint.
- Prüfen Sie die Arbeit der Untersitzung und wählen Sie dann „Git ▸ Merge…“, um ihren Branch in den Hauptbranch zu übernehmen.
- Entfernen Sie den Worktree mit „Git ▸ Delete worktree…“ und archivieren Sie anschließend die Untersitzung, damit sie dokumentiert bleibt.