CLAUDE CODE EN DÉPLACEMENT

Auteur: mgranda
Date: janvier 2026
  

J’exécute six agents Claude Code en parallèle depuis mon téléphone. Pas de portable, pas d’ordinateur de bureau—juste Termius sur iOS et une VM cloud.

La Configuration

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

La boucle est : lancer une tâche, mettre le téléphone en poche, recevoir une notification quand Claude a besoin d’informations. Développement asynchrone de n’importe où.

Infrastructure

Une VM Vultr dans la Silicon Valley :

SpecValue
Instancevhf-8c-32gb
Cost0,29 $/h (~7 $/jour en fonctionnement)
AccessTailscale uniquement (pas de SSH public)

Je paie seulement quand je travaille. Deux scripts gèrent le cycle de vie :

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

J’ai aussi un Raccourci iOS qui appelle directement l’API Vultr—je démarre la VM depuis mon téléphone avant même d’ouvrir Termius.

L’IP publique de la VM n’a pas de listener SSH. Tous les accès passent par le réseau privé de Tailscale. Défense en profondeur : le pare-feu cloud bloque tout sauf la coordination Tailscale, nftables local en sauvegarde, fail2ban par précaution.

Terminal Mobile

Termius gère SSH et mosh sur iOS/Android. Mosh est la clé—il survit aux transitions réseau. Passer du WiFi au cellulaire, marcher dans une zone morte, mettre le téléphone en veille. La connexion persiste.

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

Un inconvénient : mosh ne transfère pas l’agent SSH. Pour les opérations git qui nécessitent l’authentification GitHub, j’utilise SSH classique dans tmux.

Persistance de Session

Le shell se connecte automatiquement à tmux lors de la connexion. Fermez Termius, rouvrez des heures plus tard, tout est toujours là.

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

Plusieurs agents Claude s’exécutent dans des fenêtres parallèles. C-a c pour nouvelle fenêtre, C-a n pour changer. Fonctionne bien sur un clavier de téléphone.

Notifications Push

C’est ce qui rend le développement mobile pratique. Sans notifications, vous vérifieriez constamment le terminal. Avec elles, vous pouvez vous éloigner.

Le hook dans ~/.claude/settings.json :

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

Quand Claude appelle AskUserQuestion, le hook se déclenche. Un script simple extrait la question et fait un POST au webhook de 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\"}"

Le téléphone vibre. La notification affiche la question. Touchez, répondez, continuez.

Modèle de Confiance

J’exécute Claude Code en mode permissif. La VM est isolée—pas d’accès aux systèmes de production, pas de secrets au-delà de ce qui est nécessaire pour le développement. Pire cas : Claude fait quelque chose d’inattendu sur une VM jetable.

Le contrôle des coûts ajoute une autre couche. La VM coûte 0,29 $/h. Même si quelque chose dérape, le plafond quotidien est limité.

Développement Parallèle

Les worktrees Git me permettent d’exécuter plusieurs fonctionnalités simultanément :

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

Chaque worktree a sa propre fenêtre tmux avec un agent Claude. L’allocation de port est basée sur le hash—déterministe à partir du nom de branche, pas de conflits :

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

Six agents, six fonctionnalités, un téléphone.

Ce Que Cela Permet

Réviser des PR en attendant le café. Lancer un refactoring dans le train. Corriger un bug depuis le canapé en regardant la TV.

Le modèle : commencer une tâche qui prendra à Claude 10-20 minutes, faire autre chose, recevoir une notification, répondre, répéter. Le développement s’insère dans les creux de la journée au lieu de nécessiter du temps dédié au bureau.

Les Composants

ToolPurpose
VultrCloud VM (0,29 $/h, paiement à l’usage)
TailscaleRéseau privé, accès sécurisé
TermiusClient SSH pour iOS/Android
moshShell résistant au réseau
tmuxPersistance de session
PokeNotifications push via webhook
Claude CodeLe travail réel

La configuration a pris une session Claude Code à construire—je lui ai donné ma clé API Vultr et l’accès à gh, demandé une VM de dev sécurisée. Maintenant je code depuis mon téléphone.


Discutez de cet article sur Hacker News