Eine Claude-Code-Sitzung mit tmux am Leben halten
Ein Terminal-Agent lebt in einem Terminal. Schließen Sie das Fenster, ist der Agent weg. Bricht die SSH-Verbindung ab, ist der Agent weg. tmux legt den Agent in eine Sitzung, auf die das Terminal nur schaut. Die Sitzung läuft weiter, wenn Sie wegschauen. Das ist das Setup, das wir auf jedem Agent-Mac nutzen, mit den genauen Befehlen.
Installieren und starten
brew install tmux tmux new -s agent
Sie sind jetzt in einer Sitzung namens agent. Starten Sie den Agent darin wie jeden anderen Befehl.
claude
Für Codex führen Sie stattdessen dessen Befehl aus. Alles auf dieser Seite funktioniert für beide Tools gleich.
Trennen und zurückkommen
Drücken Sie Ctrl-b, lassen Sie los und drücken Sie dann d. Das Terminal kehrt zu Ihrer Shell zurück. Der Agent arbeitet im Hintergrund weiter. Um von einem beliebigen Terminal auf der Maschine zurückzukommen, verbinden Sie sich über den Namen.
tmux attach -t agent
Wenn Sie den Namen vergessen haben, lassen Sie sich anzeigen, was läuft.
tmux ls
Vom Handy aus weitermachen
Installieren Sie einen SSH-Client auf dem Handy. Verbreitet sind Termius und Blink Shell. Verbinden Sie sich mit dem Mac und hängen Sie sich an dieselbe Sitzung. Sie sehen genau, was der Agent tut, und können ihm schreiben. Handy-Tastaturen taugen wenig für lange Prompts. Die meisten prüfen deshalb am Handy nur den Fortschritt und beantworten eine Frage. Die echte Arbeit machen sie am Laptop.
Speziell für Claude Code ist Remote Control am Handy angenehmer als SSH. Es verbindet die Claude-App ganz ohne Terminal mit der laufenden Sitzung. Die Anleitung für Claude Code rund um die Uhr zeigt die Einrichtung. tmux bleibt darunter trotzdem wichtig. Remote Control verbindet sich mit einer Sitzung, die existieren muss.
Komfortabler machen
Zwei Einstellungen machen tmux für Agent-Arbeit viel angenehmer. Schreiben Sie sie in eine Datei namens .tmux.conf in Ihrem Home-Ordner.
set -g mouse on set -g history-limit 50000
Die erste erlaubt das Scrollen mit Trackpad oder Finger. Die zweite behält genug Ausgabe, um nachzulesen, was der Agent vor einer Stunde getan hat. Starten Sie tmux nach dem Speichern neu oder laden Sie die Datei in einer Sitzung neu.
tmux source-file ~/.tmux.conf
Einen Neustart überstehen
tmux-Sitzungen liegen im Arbeitsspeicher. Ein Neustart löscht sie. Auf einer unbeaufsichtigten Maschine sollte die Sitzung von selbst zurückkommen. Das erledigt ein LaunchAgent, der bei der Anmeldung läuft. Speichern Sie dies als Datei namens dev.local.agent-session.plist im Ordner LaunchAgents in Ihrer Home-Library.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>dev.local.agent-session</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>/opt/homebrew/bin/tmux has-session -t agent 2>/dev/null || /opt/homebrew/bin/tmux new -d -s agent</string>
</array>
<key>RunAtLoad</key><true/>
<key>StartInterval</key><integer>60</integer>
</dict>
</plist>Laden Sie ihn einmal. Dann läuft er bei jeder Anmeldung und prüft danach jede Minute.
launchctl load ~/Library/LaunchAgents/dev.local.agent-session.plist
Das legt eine leere Sitzung an. Den Agent darin startet es bewusst nicht neu. Ein Agent, der sich selbst in eine halb fertige Aufgabe neu startet, während kein Mensch wach ist, sorgt für Überraschungen. Aktivieren Sie die automatische Anmeldung für den Benutzer, damit der LaunchAgent eine Sitzung hat, in der er laufen kann. Die Aufgabe starten Sie dann selbst, wenn Sie sich das nächste Mal verbinden.
Zwei Sitzungen, zwei Agents
Nichts hindert Sie daran, Claude Code in einer Sitzung und Codex in einer anderen auf derselben Maschine laufen zu lassen. Zwei Claude-Code-Sitzungen in zwei Repositories gehen auch. Benennen Sie sie nach der Aufgabe.
tmux new -s api-refactor tmux new -s ios-tests
Geben Sie jedem Agent einen eigenen Checkout des Repositorys, damit sie nicht dieselben Dateien bearbeiten. Mit Git-Worktrees kostet das fast nichts.
Häufige Fragen
Hält tmux den Agent am Laufen, wenn der Mac schläft?
+
Nein. tmux schützt davor, dass das Terminal geschlossen wird oder die Verbindung abbricht. Der Ruhezustand friert die ganze Maschine ein, tmux eingeschlossen. Beheben Sie den Ruhezustand separat über die Energieeinstellungen und nutzen Sie tmux zusätzlich.
Was ist der Unterschied zwischen tmux und screen?
+
Beide lösen dasselbe Problem. tmux wird gepflegt, ist in Homebrew enthalten und hat die Einstellungen für Maus und Scrollback von oben. Nehmen Sie das, was Sie kennen. Die Befehle unterscheiden sich, die Idee ist dieselbe.
Kann ich die Ausgabe des Agents von vor meiner Verbindung sehen?
+
Ja. Scrollen Sie in der Sitzung nach oben. Die Einstellung history-limit bestimmt, wie viele Zeilen erhalten bleiben. Mit aktiviertem Mausmodus scrollen Sie per Trackpad. Ohne ihn drücken Sie Ctrl-b und dann die Taste für die linke eckige Klammer, scrollen und verlassen den Modus mit q.
Funktioniert das auf einem gehosteten Mac?
+
Ja, und so sind unsere Agent-Macs eingerichtet. Bei der Anmeldung wird eine Sitzung namens agent angelegt, in der der gewählte Agent läuft. Auf dem Desktop, den Sie im Browser öffnen, ist ein Terminal-Fenster mit ihr verbunden.