Claude Code on-the-go: Sechs Agenten parallel von unterwegs aus betreiben
In der heutigen Zeit, in der Flexibilität und Mobilität für Entwickler immer wichtiger werden, zeigt dieser Artikel, wie man sechs Claude Code-Agenten parallel von einem iPhone aus betreiben kann. Mit nur Termius auf iOS und einer Cloud-VM ist es möglich, die Entwicklung von überall aus zu steuern.
Die Einrichtung
Der gesamte Prozess beginnt mit der Einrichtung einer Vultr-Cloud-VM, die als Entwicklungsumgebung dient. Die folgende Grafik veranschaulicht den Ablauf:
flowchart LR
A[Phone] -->|Termius + mosh| B[Tailscale VPN]
B --> C[Vultr VM]
C --> D[Claude Code]
D -->|PreToolUse hook| E[Poke webhook]
E -->|Push notification| A
Der Ablauf ist einfach: Ein Task wird gestartet, das Telefon wird beiseitegelegt und man erhält eine Benachrichtigung, wenn Claude Input benötigt. Dies ermöglicht eine asynchrone Entwicklung von überall.
Infrastruktur
Die Vultr-VM befindet sich in Silicon Valley und hat folgende Spezifikationen:
- Instanz: vhf-8c-32gb
- Kosten: $0.29 pro Stunde (ca. $7 pro Tag bei laufendem Betrieb)
- Zugriff: Nur über Tailscale (kein öffentlicher SSH-Zugang)
Die Nutzung erfolgt nur, wenn die VM aktiv ist. Zwei Skripte steuern den Lebenszyklus:
vm-start # Start VM, warte auf Tailscale, verbinde über mosh
vm-stop # Halte VM an
Zusätzlich gibt es eine iOS-Verknüpfung, die die Vultr-API direkt aufruft, um die VM zu starten, bevor Termius geöffnet wird. Der öffentliche IP der VM hat keinen SSH-Listener, alle Zugriffe erfolgen über das private Netzwerk von Tailscale.
Mobiles Terminal
Termius ermöglicht SSH und mosh auf iOS/Android. Besonders wichtig ist mosh, da es Netzwerkübergänge übersteht. Man kann zwischen WLAN und Mobilfunk wechseln, durch tote Zonen gehen oder das Telefon in den Schlafmodus versetzen, ohne die Verbindung zu verlieren.
mosh --ssh="ssh -p 47892" [email protected]
Ein kleiner Nachteil: mosh leitet den SSH-Agenten nicht weiter. Für Git-Operationen, die eine Authentifizierung bei GitHub benötigen, wird reguläres SSH innerhalb von tmux verwendet.
Session-Persistenz
Die Shell verbindet sich automatisch mit tmux beim Login. Wenn Termius geschlossen und Stunden später wieder geöffnet wird, bleibt alles erhalten.
# In .zshrc
if [[ -z "$TMUX" ]]; then
tmux attach -t main 2>/dev/null || tmux new -s main
fi
Mehrere Claude-Agenten laufen in parallelen Fenstern. Mit C-a c wird ein neues Fenster erstellt, mit C-a n wird gewechselt. Dies funktioniert gut auf einer Smartphone-Tastatur.
Push-Benachrichtigungen
Push-Benachrichtigungen machen die mobile Entwicklung praktikabel. Ohne Benachrichtigungen müsste man ständig das Terminal überprüfen. Mit ihnen kann man sich zurücklehnen.
Der Hook in ~/.claude/settings.json sieht folgendermaßen aus:
{
"hooks": {
"PreToolUse": [{
"matcher": "AskUserQuestion",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/poke-notify.sh question"
}]
}]
}
}
Wenn Claude die Frage stellt, wird der Hook ausgelöst. Ein einfaches Skript extrahiert die Frage und sendet sie an den Poke-WebHook:
QUESTION=$(echo "$EVENT_DATA" | jq -r '.tool_input.questions[0].question')
MESSAGE="$PROJECT_NAME: Claude benötigt Input - $QUESTION"
curl -X POST "$API_URL" -d "{\"message\": \"$MESSAGE\"}"
Das Telefon vibriert, eine Benachrichtigung zeigt die Frage an. Man tippt, antwortet und macht weiter.
Vertrauensmodell
Ich führe Claude Code im permissiven Modus aus. Die VM ist isoliert – kein Zugriff auf Produktionssysteme, keine Geheimnisse über das hinaus, was für die Entwicklung benötigt wird. Im schlimmsten Fall könnte Claude etwas Unerwartetes auf einer wegwerfbaren VM tun. Die Kostenkontrolle bietet eine zusätzliche Sicherheitsebene. Die VM kostet $0.29 pro Stunde. Selbst wenn etwas außer Kontrolle gerät, ist die tägliche Obergrenze begrenzt.
Parallele Entwicklung
Git-Worktrees ermöglichen es, mehrere Funktionen gleichzeitig auszuführen:
~/Code/myproject/ # main
~/Code/myproject-sidebar/ # feature branch
~/Code/myproject-dark-mode/ # another feature
Jeder Worktree erhält sein eigenes tmux-Fenster mit einem Claude-Agenten. Die Portzuweisung erfolgt hash-basiert – deterministisch vom Branch-Namen, ohne Konflikte:
hash_val = sum(ord(c) for c in branch_name)
django_port = 8001 + (hash_val % 99)
Sechs Agenten, sechs Funktionen, ein Telefon.
Was das ermöglicht
Man kann PRs überprüfen, während man auf den Kaffee wartet. Ein Refactoring im Zug starten. Einen Bug vom Sofa aus beheben, während man fern sieht. Das Muster: Ein Task, der Claude 10-20 Minuten in Anspruch nimmt, starten, etwas anderes tun, benachrichtigt werden, antworten, wiederholen. Die Entwicklung passt sich in die Lücken des Tages ein, anstatt eine feste Schreibtischzeit zu erfordern.
Die Komponenten
| Tool | Zweck |
|---|---|
| Vultr | Cloud-VM ($0.29 pro Stunde, nutzungsabhängig) |
| Tailscale | Privates Netzwerk, sicherer Zugriff |
| Termius | SSH-Client für iOS/Android |
| mosh | Netzwerk-resiliente Shell |
| tmux | Session-Persistenz |
| Poke | Push-Benachrichtigungen über Webhook |
| Claude Code | Die eigentliche Arbeit |
Die gesamte Einrichtung benötigte nur eine Sitzung mit Claude Code, um sie zu erstellen – ich gab ihm meinen Vultr-API-Schlüssel und Zugriff auf GitHub, bat um eine sichere Entwicklungs-VM. Jetzt kann ich von meinem Telefon aus programmieren.










Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!