CLAUDE CODE ONDERWEG

Auteur: mgranda
Datum: januari 2026
  

Ik draai zes Claude Code agents parallel vanaf mijn telefoon. Geen laptop, geen desktop—alleen Termius op iOS en een cloud VM.

De 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

De cyclus is: start een taak, telefoon in je zak, krijg een melding wanneer Claude input nodig heeft. Asynchroon ontwikkelen vanaf elke locatie.

Infrastructuur

Een Vultr VM in Silicon Valley:

SpecValue
Instancevhf-8c-32gb
Cost$0.29/uur (~$7/dag wanneer actief)
AccessAlleen Tailscale (geen publieke SSH)

Ik betaal alleen wanneer ik werk. Twee scripts beheren de levenscyclus:

vm-start   # Start VM, wait for Tailscale, connect via mosh
vm-stop    # Halt VM

Ik heb ook een iOS Shortcut die de Vultr API rechtstreeks aanroept—start de VM vanaf mijn telefoon voordat ik Termius zelfs maar open.

Het publieke IP van de VM heeft geen SSH listener. Alle toegang gaat via het privénetwerk van Tailscale. Verdediging in de diepte: cloud firewall blokkeert alles behalve Tailscale-coördinatie, lokale nftables als back-up, fail2ban voor de zekerheid.

Mobiele Terminal

Termius handelt SSH en mosh af op iOS/Android. Mosh is de sleutel—het overleeft netwerkovergangen. Schakel van WiFi naar mobiel netwerk, loop door een dode zone, zet de telefoon in slaapstand. De verbinding blijft bestaan.

mosh --ssh="ssh -p 47892" [email protected]

Eén valkuil: mosh stuurt geen SSH agent door. Voor git-operaties die GitHub-authenticatie nodig hebben, gebruik ik gewone SSH binnen tmux.

Sessiepersistentie

De shell maakt automatisch verbinding met tmux bij inloggen. Sluit Termius, open het uren later opnieuw, alles is er nog.

# In .zshrc
if [[ -z "$TMUX" ]]; then
    tmux attach -t main 2>/dev/null || tmux new -s main
fi

Meerdere Claude agents draaien in parallelle vensters. C-a c voor nieuw venster, C-a n om te wisselen. Werkt goed op een telefoontoetsenbord.

Push Notificaties

Dit is wat mobiele ontwikkeling praktisch maakt. Zonder notificaties zou je constant de terminal moeten controleren. Met notificaties kun je weglopen.

De hook in ~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "AskUserQuestion",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/poke-notify.sh question"
      }]
    }]
  }
}

Wanneer Claude AskUserQuestion aanroept, wordt de hook geactiveerd. Een eenvoudig script haalt de vraag op en POST naar Poke’s 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\"}"

Telefoon trilt. Notificatie toont de vraag. Tik, antwoord, ga verder.

Vertrouwensmodel

Ik draai Claude Code in permissieve modus. De VM is geïsoleerd—geen toegang tot productiesystemen, geen geheimen behalve wat nodig is voor ontwikkeling. Slechtste geval: Claude doet iets onverwachts op een wegwerpbare VM.

Kostenbeheersing voegt een extra laag toe. De VM kost $0.29/uur. Zelfs als iets ontspoort, is het dagelijkse maximum begrensd.

Parallelle Ontwikkeling

Git worktrees laten me meerdere features tegelijkertijd draaien:

~/Code/myproject/              # main
~/Code/myproject-sidebar/      # feature branch
~/Code/myproject-dark-mode/    # another feature

Elke worktree krijgt zijn eigen tmux-venster met een Claude agent. Poorttoewijzing is hash-gebaseerd—deterministisch vanaf branchnaam, geen conflicten:

hash_val = sum(ord(c) for c in branch_name)
django_port = 8001 + (hash_val % 99)

Zes agents, zes features, één telefoon.

Wat Dit Mogelijk Maakt

PR’s reviewen terwijl je wacht op koffie. Een refactor starten in de trein. Een bug fixen vanaf de bank terwijl je tv kijkt.

Het patroon: start een taak die Claude 10-20 minuten zal kosten, doe iets anders, krijg een melding, reageer, herhaal. Ontwikkeling past in de tussentijd van de dag in plaats van toegewijde bureautijd te vereisen.

De Componenten

ToolPurpose
VultrCloud VM ($0.29/uur, pay-per-use)
TailscalePrivénetwerk, veilige toegang
TermiusiOS/Android SSH-client
moshNetwerkbestendige shell
tmuxSessiepersistentie
PokePush notificaties via webhook
Claude CodeHet eigenlijke werk

De setup kostte één Claude Code sessie om te bouwen—gaf het mijn Vultr API-sleutel en toegang tot gh, vroeg om een veilige dev VM. Nu codeer ik vanaf mijn telefoon.


Bespreek dit artikel op Hacker News