CLAUDE CODE IN MOVIMENTO

Autore: mgranda
Data: gennaio 2026
  

Eseguo sei agenti Claude Code in parallelo dal mio telefono. Nessun laptop, nessun desktop—solo Termius su iOS e una VM cloud.

La Configurazione

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

Il ciclo è: avviare un’attività, mettere il telefono in tasca, ricevere una notifica quando Claude ha bisogno di input. Sviluppo asincrono da qualsiasi luogo.

Infrastruttura

Una VM Vultr nella Silicon Valley:

SpecValue
Instancevhf-8c-32gb
Cost$0.29/ora (~$7/giorno quando in esecuzione)
AccessSolo Tailscale (nessun SSH pubblico)

Pago solo quando lavoro. Due script gestiscono il ciclo di vita:

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

Ho anche uno Shortcut iOS che chiama direttamente l’API Vultr—avvio la VM dal mio telefono prima ancora di aprire Termius.

L’IP pubblico della VM non ha un listener SSH. Tutti gli accessi passano attraverso la rete privata di Tailscale. Difesa in profondità: il firewall cloud blocca tutto tranne il coordinamento Tailscale, nftables locale come backup, fail2ban per maggiore sicurezza.

Terminale Mobile

Termius gestisce SSH e mosh su iOS/Android. Mosh è la chiave—sopravvive alle transizioni di rete. Passa da WiFi a cellulare, cammina attraverso una zona morta, metti il telefono in standby. La connessione persiste.

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

Un inconveniente: mosh non inoltra l’agente SSH. Per le operazioni git che necessitano di autenticazione GitHub, uso SSH regolare dentro tmux.

Persistenza della Sessione

La shell si collega automaticamente a tmux al login. Chiudi Termius, riapri ore dopo, tutto è ancora lì.

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

Più agenti Claude vengono eseguiti in finestre parallele. C-a c per nuova finestra, C-a n per cambiare. Funziona bene su una tastiera del telefono.

Notifiche Push

Questo è ciò che rende pratico lo sviluppo mobile. Senza notifiche, controlleresti costantemente il terminale. Con esse, puoi allontanarti.

L’hook in ~/.claude/settings.json:

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

Quando Claude chiama AskUserQuestion, l’hook si attiva. Uno script semplice estrae la domanda e fa POST al webhook di Poke:

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\"}"

Il telefono vibra. La notifica mostra la domanda. Tocca, rispondi, continua.

Modello di Fiducia

Eseguo Claude Code in modalità permissiva. La VM è isolata—nessun accesso ai sistemi di produzione, nessun segreto oltre a ciò che è necessario per lo sviluppo. Caso peggiore: Claude fa qualcosa di inaspettato su una VM usa e getta.

Il controllo dei costi aggiunge un altro livello. La VM costa $0.29/ora. Anche se qualcosa sfugge al controllo, il limite giornaliero è limitato.

Sviluppo Parallelo

I worktree di Git mi permettono di eseguire più funzionalità simultaneamente:

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

Ogni worktree ottiene la propria finestra tmux con un agente Claude. L’allocazione delle porte è basata su hash—deterministica dal nome del branch, nessun conflitto:

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

Sei agenti, sei funzionalità, un telefono.

Cosa Questo Consente

Revisionare PR mentre aspetti il caffè. Avviare un refactoring sul treno. Correggere un bug dal divano mentre guardi la TV.

Il modello: iniziare un’attività che richiederà a Claude 10-20 minuti, fare qualcos’altro, ricevere una notifica, rispondere, ripetere. Lo sviluppo si adatta agli spazi vuoti della giornata invece di richiedere tempo dedicato alla scrivania.

I Componenti

ToolPurpose
VultrCloud VM ($0.29/ora, pay-per-use)
TailscaleRete privata, accesso sicuro
TermiusClient SSH per iOS/Android
moshShell resistente alla rete
tmuxPersistenza della sessione
PokeNotifiche push via webhook
Claude CodeIl lavoro vero e proprio

La configurazione ha richiesto una sessione di Claude Code per essere costruita—gli ho dato la mia chiave API Vultr e l’accesso a gh, ho chiesto una VM di sviluppo sicura. Ora programmo dal mio telefono.


Discuti questo articolo su Hacker News