Claude Code depuis le téléphone : remote-control sur VM en 20 min
Une session qui tourne sur un serveur, un QR code, et l'approbation des actions depuis le canapé. Avec la version Codex en face.
Votre agent codeur travaille sur un serveur. Vous êtes dans le train, ou simplement loin du bureau, et il attend une approbation. Remote Control règle ça : la session reste sur la machine, l'écran se déplace sur votre téléphone. Voici comment le monter proprement sur une VM, ce qui casse, et ce que fait l'équivalent Codex.
Ce tuto s'adresse à ceux qui font tourner Claude Code sur un serveur ou un poste fixe. Si vous cherchez la version Codex sur Mac, nous l'avons déjà traitée dans notre tuto Codex Remote depuis l'iPhone. Ici, on part d'une VM Linux.
Qu'est-ce que Claude Code Remote Control, et ce que ce n'est pas
Remote Control relie claude.ai/code ou l'app Claude iOS/Android à une session Claude Code qui tourne sur votre machine. D'après la documentation officielle, Claude continue de s'exécuter en local : système de fichiers, serveurs MCP et configuration projet restent disponibles. Le terminal, le navigateur et le téléphone restent synchronisés, y compris pour la progression des sous-agents.
Ce n'est pas une session cloud. Les sessions cloud tournent sur l'infrastructure d'Anthropic. Ici, la fenêtre web ou mobile n'est qu'un écran déporté : si la machine s'éteint ou si le processus claude s'arrête, tout s'arrête. D'où l'intérêt de tmux, on y vient.
Prérequis : abonnement, version, ce qui ne marche pas
- Abonnement : Pro, Max, Ultra, Team ou Enterprise. Sur Team et Enterprise, un Owner doit d'abord activer l'option Remote Control dans les paramètres admin de Claude Code.
- Connexion :
/loginvia claude.ai. Les clés API ne sont pas prises en charge. - Fournisseur : Amazon Bedrock, Google Cloud et Microsoft Foundry sont exclus.
- Version : 2.1.51 minimum. Au 31 octobre, la dernière est la 2.1.316, selon le changelog.
Comment lancer claude remote-control sur une VM avec tmux
Le piège classique : lancer la commande dans un SSH nu, fermer l'ordinateur, perdre la session. Le correctif tient en une ligne.
- Connectez-vous et attachez-vous à tmux :
ssh -t devbox tmux new -A -s agent - Placez-vous dans le projet :
cd ~/app - Connectez-vous une fois à Claude : lancez
claude, puis/login, puis quittez. - Démarrez le mode serveur :
claude remote-control --name "devbox app" - Scannez le QR code ou ouvrez l'URL de session dans l'app Claude mobile ou sur claude.ai/code.
- Détachez tmux (
Ctrl-bpuisd), fermez votre SSH. La session continue.
Mon test de contrôle est toujours le même : je lance une tâche longue, je détache, je ferme la connexion, puis je vérifie depuis le téléphone que l'agent avance toujours. Si ça ne passe pas ce test, ne comptez pas dessus ailleurs.
Les flags utiles : --name, --spawn, --capacity
Les flags se placent après remote-control, jamais avant.
--name "Projet": le titre dans la liste des sessions sur claude.ai/code.--spawn same-dir(défaut) : toutes les sessions partagent le même dossier. Deux sessions qui éditent le même fichier, ça se marche dessus.--spawn worktree: chaque session démarre dans son propre worktree git. C'est ce qu'il faut dès que vous parallélisez. Il faut un dépôt git.--spawn session: une seule session, les autres connexions sont refusées.--capacity N: nombre maximal de sessions simultanées (32 par défaut, d'après les guides tiers ; incompatible avec--spawn session).
Ma config de départ sur un serveur partagé : claude remote-control --spawn worktree --capacity 4 --name "api-factures". Quatre, parce que mon quota d'abonnement fond bien avant les 32 sessions possibles. Pour comprendre les limites d'usage en parallèle, voyez le tuto sur les 3 agents en parallèle.
Sécurité : que voit le téléphone, que voit Anthropic
Le code ne quitte pas la VM. Le téléphone affiche la conversation et envoie vos messages ; l'exécution reste locale. Trois réflexes quand même :
- Désactivez l'authentification SSH par mot de passe (
PasswordAuthentication no, vérifiable avecsshd -T). - Verrouillez les écritures. La 2.1.314 (30 octobre) a ajouté
permissions.blockWritesOutsideWorkingDirectories: Write, Edit et NotebookEdit refusent tout chemin hors des dossiers de travail, quel que soit le mode de permission. Avec un agent piloté d'un pouce sur un écran de 6 pouces, c'est une ceinture utile. - Isolez dans un conteneur si la VM héberge autre chose que le projet. Nous avons documenté pourquoi ouvrir un dépôt non fiable suffit à percer un agent.
Pour une entreprise, la 2.1.316 ajoute aussi des budgets mensuels partagés par groupe dans la passerelle Claude apps. Pertinent si vous gérez une équipe, inutile pour un freelance.
Codex remote-control : l'équivalent côté OpenAI
Codex a sa propre version. Selon le même guide, avec Codex 0.164.0 : codex remote-control start lance un démon headless, puis codex remote-control pair affiche le code d'appairage. Le guide le qualifie d'expérimental. La voie recommandée en production est d'enregistrer la VM comme hôte SSH dans l'app ChatGPT desktop.
Alternative en terminal pur : codex app-server --listen ws://127.0.0.1:4500 sur la VM, puis ssh -N -L 4500:127.0.0.1:4500 devbox sur le portable. Les versions client et serveur doivent correspondre, sinon le WebSocket se plante sur un décalage de protocole.
Pour trancher entre les deux outils sur le fond (prix, plafonds, qualité), notre comparatif des agents codeurs CLI reste la référence.
Combien ça coûte et pour qui c'est utile
Remote Control ne coûte rien en plus : il consomme votre abonnement. Une VM Linux modeste suffit puisque le calcul se fait chez Anthropic. L'abonnement reste la vraie ligne de budget, et c'est un point faible : pas de clé API, donc pas de facturation à l'usage pour ce mode.
Ce que j'ai trouvé décevant : la session ne survit pas à une machine éteinte, et la doc le dit sans détour. Pas de relance automatique si le serveur redémarre, donc prévoyez un service systemd ou un script qui relance la commande dans tmux. Sans ça, vous vous réveillez avec une session morte et un agent bloqué depuis 3 h du matin.
Pour qui : ceux qui lancent des tâches longues (refactos, migrations, génération de tests) et veulent juste approuver ou corriger. Pas pour qui : les équipes sous Bedrock ou Vertex, qui n'y ont pas droit, ni celles qui exigent que rien ne transite par un tiers de signalisation. Si vous êtes sur ce second cas, regardez plutôt le runner self-hosted.
Dépannage : les 4 erreurs que vous verrez
- Le message « Remote Control is disabled by your organization's policy » : un Owner doit activer l'option dans l'admin, et les rôles personnalisés doivent inclure la permission cloud sessions et la permission Remote Control.
- Sortie immédiate de
claude remote-control: pas de login claude.ai valide. Refaites/login. - Rien n'apparaît sur le téléphone : vérifiez la base URL et que vous n'êtes pas en clé API.
- Fichiers modifiés par deux sessions : passez en
--spawn worktree.
Verdict : pour un dev qui fait tourner Claude Code sur un serveur, c'est la meilleure raison cette année de s'abonner plutôt que de rester en clé API. Vingt minutes de mise en place, et le téléphone devient un vrai poste de validation. Mais gardez une main sur le garde-fou d'écriture, parce qu'approuver trop vite depuis un écran de mobile est le vrai risque.