Ce que vous allez construire : un serveur qui fait travailler vos agents de code (Claude Code, Codex, Copilot…) en continu, une branche isolée par tâche, et que vous pilotez depuis votre ordinateur ou votre téléphone, sans ouvrir de port sur Internet. Outil : Paseo, open source (Apache-2.0). Durée : 45 minutes. Pour comprendre l'intérêt et les limites avant de vous lancer, lisez d'abord Agents de développement IA déportés : le principe.
Vocabulaire indispensable
- Démon : le service Paseo qui tourne sur le serveur, lance et supervise les agents. Il écoute par défaut sur
127.0.0.1:6767. - Client : l'application desktop, mobile, web ou la CLI qui se connecte au démon.
- Provider : l'agent de code piloté par Paseo (Claude Code, Codex, Copilot, OpenCode…).
- Workspace / worktree : l'espace de travail d'une tâche. Avec l'isolation worktree, Paseo crée un dossier et une branche git dédiés.
- Relais : un serveur intermédiaire optionnel qui permet au téléphone de joindre le démon sans VPN ; le trafic y est chiffré de bout en bout.
Étape 1 — Préparer la machine
VPS Linux
Le choix par défaut. Quelques cœurs et 8 à 16 Go de RAM pour deux ou trois agents en parallèle sur un projet web ; davantage si vos builds ou vos tests sont lourds.
Mac mini
Pertinent pour le développement iOS (Xcode) ou si vous préférez une machine physique au bureau.
Conteneur Docker
Image officielle ghcr.io/getpaseo/paseo, démon et agents exécutés sous un utilisateur non root. Idéal pour cloisonner.
Votre poste
Pour tester d'abord en local avec l'application desktop, qui démarre son propre démon.
Sur un VPS, créez un utilisateur dédié sans droits administrateur, n'autorisez que l'authentification SSH par clé, puis installez Node.js, npm et git.
# sur le serveur, en root
adduser agents
# copiez votre clé publique dans /home/agents/.ssh/authorized_keys,
# puis désactivez PasswordAuthentication dans /etc/ssh/sshd_config
Étape 2 — Installer et authentifier un agent de code
Paseo pilote les agents que vous installez ; il ne les fournit pas. Connecté en tant qu'utilisateur agents :
npm install -g @anthropic-ai/claude-code # Claude Code
npm install -g @openai/codex # Codex (optionnel)
claude # première exécution : connexion à votre compte, puis quittez
Utilisez votre abonnement ou une clé API de développement, jamais un compte qui donne accès à vos environnements de production.
Étape 3 — Installer Paseo et démarrer le démon
npm install -g @getpaseo/cli
paseo
La commande démarre le démon et vous propose d'activer le relais chiffré et d'afficher un QR code d'appairage (étape suivante). Vérifiez ensuite :
paseo daemon status # le démon tourne-t-il, sur quelle adresse ?
paseo provider ls # quels agents sont détectés et disponibles ?
Si un agent apparaît « unavailable » alors qu'il est installé, c'est presque toujours un problème de PATH entre votre shell et le démon : la page Troubleshooting de Paseo détaille la marche à suivre.
Étape 4 — Connecter le téléphone et l'ordinateur
Trois méthodes documentées, à choisir selon votre contexte :
| Méthode | Pour qui | Mise en place |
|---|---|---|
| Relais Paseo | Le plus simple pour le téléphone, aucun réseau à configurer | paseo daemon pair, confirmer, scanner le QR code avec l'application mobile |
| Tailscale (VPN) | Équipes déjà sur un VPN, aucun tiers dans la boucle | daemon.listen sur l'IP Tailscale + mot de passe, puis « Direct connection » dans l'app |
| SSH | Ordinateur et CLI | Application desktop : Settings → Add host → Remote SSH ; CLI : paseo --host ssh://agents@serveur ls -a |
Relais. Il est désactivé par défaut. Le démon s'y connecte en sortant, aucun port n'est ouvert, et le trafic est chiffré de bout en bout après l'appairage :
paseo daemon pair
Le QR code et le lien d'appairage contiennent la clé publique du démon : traitez-les comme un mot de passe.
Tailscale. Récupérez l'adresse du serveur avec tailscale ip -4, puis dans ~/.paseo/config.json :
{
"daemon": {
"listen": "100.101.102.103:6767"
}
}
Protégez le démon par mot de passe, puis redémarrez :
paseo daemon set-password
paseo daemon restart
Dans l'application mobile : Settings → Add host → Direct connection, l'IP Tailscale, le port 6767 et le mot de passe.
Étape 5 — Préparer le dépôt avec paseo.json
Clonez votre dépôt sur le serveur. Chaque worktree créé par Paseo part d'un dossier vierge : pas de dépendances installées, pas de fichier .env. Un fichier paseo.json à la racine du dépôt décrit ce qu'il faut préparer :
{
"worktree": {
"setup": "npm ci\ncp \"$PASEO_SOURCE_CHECKOUT_PATH/.env.development\" .env",
"teardown": "rm -rf .cache"
},
"scripts": {
"test": { "command": "npm test" },
"web": { "type": "service", "command": "npm run dev -- --port $PASEO_PORT" }
}
}
setups'exécute à la création du worktree,teardownà son archivage ;- un script de type service reçoit un port distinct par worktree via
$PASEO_PORT: plusieurs copies de l'application tournent sans conflit.
Paseo lit ce fichier dans la version commitée de la branche de base : commitez-le.
Étape 6 — Lancer des tâches en parallèle
Depuis l'application (New workspace → Isolation : New worktree) ou en CLI :
cd ~/projets/mon-app
paseo run -d --provider claude \
--new-workspace worktree --new-branch feature/filtre-factures --base origin/main \
"Ajoute un filtre par date à la liste des factures. Ajoute les tests et lance-les."
paseo run -d --provider claude \
--new-workspace worktree --new-branch fix/export-csv --base origin/main \
"Corrige l'encodage des accents dans l'export CSV. Ajoute un test de non-régression."
Partez de origin/main plutôt que de main : Paseo récupère les références distantes en arrière-plan, alors que votre main local peut être en retard.
Pour suivre :
paseo ls # agents et statut
paseo logs <id> # ce que fait un agent
paseo permit ls # validations en attente
paseo permit allow <id> # accepter une demande
Sur le téléphone, vous voyez les mêmes agents, leurs fichiers, leurs terminaux et leurs diffs. Pour un second avis, lancez un autre agent dans le même workspace et demandez-lui de relire sans modifier.
Étape 7 — Planifier des agents récurrents
Une planification lance un nouvel agent selon un cron. Exemple : un tri des tickets chaque matin de semaine.
paseo schedule create --name "tri-du-matin" \
--cron "0 8 * * 1-5" --timezone Europe/Paris \
--provider claude --cwd ~/projets/mon-app \
"Liste les issues ouvertes depuis hier, classe-les par priorité et propose un plan d'action. Ne modifie aucun fichier."
Gérez-les avec paseo schedule ls, pause, resume, run-once et delete. Commencez par des tâches en lecture seule (tri, rapports) avant de planifier des tâches qui modifient le code.
Étape 8 — Checklist de sécurité avant l'usage quotidien
Aucun secret de production
Pas de clés cloud de production, pas d'accès aux bases de données réelles, uniquement des identifiants de développement et des données de test anonymisées.
Exposition minimale
Démon en écoute locale ou sur l'IP du VPN. Jamais lié à 0.0.0.0 sur une IP publique sans pare-feu, mot de passe et HTTPS.
Permissions graduées
Modes avec validation pour les commandes sensibles. Les modes sans validation, uniquement dans un conteneur jetable.
Branches protégées
Les agents ne poussent que sur leurs branches ; la branche principale exige une pull request, une revue et la CI.
Entretien
Mises à jour système et de Paseo, sauvegarde de ~/.paseo et des identifiants des agents, rotation des clés si un appareil appairé est perdu.
Si vous activez plus tard Paseo Hub pour déclencher des agents depuis GitHub, Slack ou Discord, lisez sa page sécurité : un message ou une issue peut contenir des consignes malveillantes, et l'agent ne doit pas avoir plus de droits que nécessaire.
Et après ?
- Comprendre le principe et les limites : Agents de développement IA déportés.
- Brancher vos outils aux agents : Créer un serveur MCP avec FastMCP.
- Un agent côté métier plutôt que côté code : Installer un agent IA avec Hermes Agent.
Vous voulez cadrer l'usage des agents de code dans votre équipe (outillage, sécurité, revue, indicateurs) ? C'est le rôle de notre Partenariat CTO. Pour faire livrer une application par une équipe outillée, voyez Développement d'applications.