Ich lasse sechs Claude Code Agenten parallel von meinem Telefon aus laufen. Kein Laptop, kein Desktop—nur Termius auf iOS und eine Cloud-VM.
Das Setup
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 Kreislauf ist: eine Aufgabe starten, Telefon in die Tasche, Benachrichtigung erhalten, wenn Claude Input braucht. Asynchrone Entwicklung von überall.
Infrastruktur
Eine Vultr VM in Silicon Valley:
| Spec | Value |
|---|---|
| Instance | vhf-8c-32gb |
| Cost | $0.29/Std (~$7/Tag im Betrieb) |
| Access | Nur Tailscale (kein öffentliches SSH) |
Ich zahle nur, wenn ich arbeite. Zwei Skripte verwalten den Lebenszyklus:
vm-start # Start VM, wait for Tailscale, connect via mosh
vm-stop # Halt VM
Ich habe auch einen iOS Shortcut, der die Vultr API direkt aufruft—starte die VM von meinem Telefon aus, bevor ich überhaupt Termius öffne.
Die öffentliche IP der VM hat keinen SSH-Listener. Alle Zugriffe laufen über das private Netzwerk von Tailscale. Defense in Depth: Cloud-Firewall blockiert alles außer Tailscale-Koordination, lokale nftables als Backup, fail2ban zur Sicherheit.
Mobiles Terminal
Termius handhabt SSH und mosh auf iOS/Android. Mosh ist der Schlüssel—es überlebt Netzwerkwechsel. Von WiFi zu Mobilfunk wechseln, durch eine Funkzone laufen, das Telefon in den Ruhezustand versetzen. Die Verbindung bleibt bestehen.
mosh --ssh="ssh -p 47892" [email protected]
Eine Einschränkung: mosh leitet keinen SSH-Agent weiter. Für Git-Operationen, die GitHub-Authentifizierung benötigen, verwende ich reguläres SSH innerhalb von tmux.
Sitzungspersistenz
Die Shell hängt sich beim Login automatisch an tmux an. Termius schließen, Stunden später wieder öffnen, alles ist noch da.
# 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. C-a c für neues Fenster, C-a n zum Wechseln. Funktioniert gut auf einer Telefontastatur.
Push-Benachrichtigungen
Das macht mobile Entwicklung praktikabel. Ohne Benachrichtigungen würde man ständig das Terminal überprüfen. Mit ihnen kann man weggehen.
Der Hook in ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [{
"matcher": "AskUserQuestion",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/poke-notify.sh question"
}]
}]
}
}
Wenn Claude AskUserQuestion aufruft, wird der Hook ausgelöst. Ein einfaches Skript extrahiert die Frage und POSTet an Pokes Webhook:
QUESTION=$(echo "$EVENT_DATA" | jq -r '.tool_input.questions[0].question')
MESSAGE="$PROJECT_NAME: Claude needs input - $QUESTION"
curl -X POST "$API_URL" -d "{\"message\": \"$MESSAGE\"}"
Das Telefon vibriert. Die Benachrichtigung zeigt die Frage. Tippen, antworten, weitermachen.
Vertrauensmodell
Ich lasse Claude Code im permissiven Modus laufen. Die VM ist isoliert—kein Zugriff auf Produktionssysteme, keine Geheimnisse außer dem, was für die Entwicklung benötigt wird. Schlimmster Fall: Claude macht etwas Unerwartetes auf einer Wegwerf-VM.
Kostenkontrolle fügt eine weitere Ebene hinzu. Die VM kostet $0.29/Std. Selbst wenn etwas außer Kontrolle gerät, ist die tägliche Obergrenze begrenzt.
Parallele Entwicklung
Git-Worktrees ermöglichen es mir, mehrere Features gleichzeitig zu bearbeiten:
~/Code/myproject/ # main
~/Code/myproject-sidebar/ # feature branch
~/Code/myproject-dark-mode/ # another feature
Jeder Worktree bekommt sein eigenes tmux-Fenster mit einem Claude-Agenten. Die Portzuweisung ist hash-basiert—deterministisch aus dem Branch-Namen, keine Konflikte:
hash_val = sum(ord(c) for c in branch_name)
django_port = 8001 + (hash_val % 99)
Sechs Agenten, sechs Features, ein Telefon.
Was Das Ermöglicht
PRs überprüfen beim Warten auf Kaffee. Ein Refactoring im Zug starten. Einen Bug vom Sofa aus beheben beim Fernsehen.
Das Muster: eine Aufgabe starten, die Claude 10-20 Minuten dauern wird, etwas anderes machen, benachrichtigt werden, antworten, wiederholen. Entwicklung passt in die Lücken des Tages, anstatt dedizierte Schreibtischzeit zu erfordern.
Die Komponenten
| Tool | Purpose |
|---|---|
| Vultr | Cloud VM ($0.29/Std, Pay-per-Use) |
| Tailscale | Privates Netzwerk, sicherer Zugriff |
| Termius | iOS/Android SSH-Client |
| mosh | Netzwerkresistente Shell |
| tmux | Sitzungspersistenz |
| Poke | Push-Benachrichtigungen via Webhook |
| Claude Code | Die eigentliche Arbeit |
Das Setup dauerte eine Claude Code Session zum Einrichten—gab ihm meinen Vultr API-Schlüssel und Zugriff auf gh, bat um eine sichere Dev-VM. Jetzt programmiere ich von meinem Telefon aus.
Diskutiere diesen Beitrag auf Hacker News