Blog
Humain dans la boucle : comment le système d'approbation de Tactic Remote garde les développeurs aux commandes
Le système d'approbation de Tactic Remote intercepte les appels d'outils de Claude Code via des hooks, les envoie sur votre iPhone sous forme de notifications push et bloque l'exécution jusqu'à ce que vous approuviez ou refusiez explicitement chaque action.
Suivez les mises à jour produit et ingénierie de cette catégorie.
Voir la catégorieLes agents de codification par IA sont puissants, mais le pouvoir sans supervision est un risque. Tactic Remote a été conçu autour d'une conviction : les développeurs doivent approuver chaque action importante qu'un agent IA effectue dans leur environnement de développement. Aujourd'hui, nous publions une analyse détaillée du fonctionnement du système d'approbation, de son coût en latence et de nos plans pour la suite.
Pourquoi les approbations sont essentielles
Claude Code peut lire des fichiers, écrire des fichiers, exécuter des commandes shell et interagir avec des services externes. Chacune de ces actions a des conséquences réelles. Un prompt mal interprété peut entraîner la suppression de fichiers, des opérations git incorrectes ou des appels API non souhaités.
Anthropic a intégré à Claude Code un système de permissions qui demande l'approbation de l'utilisateur dans le terminal. Mais si vous êtes loin de votre Mac — en déplacement, en réunion ou simplement dans une autre pièce — ces invites bloquent l'exécution indéfiniment. Votre agent reste inactif, en attente.
Tactic Remote résout ce problème en envoyant chaque demande d'approbation sur votre iPhone en temps réel. Vous examinez l'action proposée, voyez le contexte complet et appuyez pour approuver ou refuser. L'agent reprend immédiatement. Aucun besoin de retourner à votre Mac.
Architecture : Hooks et interception
Le système d'approbation repose sur le mécanisme de hooks de Claude Code. Lorsque Claude Code s'apprête à exécuter un appel d'outil — écriture de fichier, commande shell ou toute autre action nécessitant une autorisation — le compagnon Mac de Tactic Remote intercepte l'événement avant l'exécution.
Voici le flux :
- Claude Code initie un appel d'outil. Par exemple, il veut exécuter
rm -rf node_modules && npm installdans le répertoire de votre projet. - Le hook se déclenche. Le script hook de Tactic Remote capture le nom de l'outil, les arguments et le contexte complet de l'action proposée. Cela se produit de manière synchrone — Claude Code est en pause, en attente du retour du hook.
- Le compagnon Mac évalue l'action. Il vérifie l'action par rapport aux règles d'approbation automatique configurées. Si l'action correspond à une règle (par exemple, des opérations de fichier en lecture seule), il renvoie l'approbation immédiatement sans impliquer l'iPhone.
- Si une approbation manuelle est requise, une notification push est envoyée. La notification comprend le type d'action, un résumé de ce que Claude veut faire et suffisamment de contexte pour prendre une décision éclairée.
- L'app iPhone affiche la demande d'approbation. Vous voyez la commande complète ou le diff du fichier, le répertoire de travail et le contexte de la conversation qui a conduit à cette action.
- Vous approuvez ou refusez. Votre réponse est renvoyée au compagnon Mac via WebSocket, qui retourne le résultat au hook et débloque Claude Code.
Du point de vue de Claude Code, toute la chaîne est synchrone. Il a appelé un hook et reçu une réponse. Il ignore que l'approbation a été acheminée via un téléphone sur un réseau différent.
Ce que vous voyez sur votre iPhone
L'écran d'approbation est conçu pour des décisions rapides et éclairées. Chaque demande affiche :
- Type d'action — écriture de fichier, commande shell, appel API ou autre invocation d'outil.
- Payload complet — la commande exacte à exécuter ou le contenu exact à écrire. Les commandes shell ne sont ni résumées ni tronquées. Les diffs de fichiers montrent les lignes spécifiques modifiées.
- Répertoire de travail — où l'action sera exécutée, pour évaluer la portée.
- Extrait de conversation — les derniers échanges qui ont conduit Claude à proposer cette action, vous donnant le "pourquoi" de la demande.
- Métadonnées de session — quelle session tmux, depuis combien de temps elle tourne et combien d'actions ont déjà été approuvées dans cette session.
Vous pouvez approuver, refuser ou refuser avec un message qui est renvoyé à Claude Code comme retour d'information.
Performance : quelle est la rapidité des approbations ?
Nous mesurons les temps d'aller-retour des approbations sur tous les modes de connexion. Ces chiffres représentent le temps entre le déclenchement du hook de Claude Code et la réception de la réponse d'approbation avec reprise de l'exécution.
| Scénario | Médiane | P95 |
|---|---|---|
| Réseau local, app au premier plan | 85ms + temps humain | 140ms + temps humain |
| Réseau local, app en arrière-plan (notification push) | 1.2s + temps humain | 2.8s + temps humain |
| Cloudflare Tunnel, app au premier plan | 280ms + temps humain | 450ms + temps humain |
| Cloudflare Tunnel, app en arrière-plan | 1.8s + temps humain | 3.5s + temps humain |
Le "temps humain" est le facteur dominant. En pratique, la plupart des développeurs répondent aux demandes d'approbation en 3 à 8 secondes lorsqu'ils surveillent activement une session. La surcharge système est négligeable par rapport au temps de décision.
Point essentiel : le système d'approbation n'ajoute aucune surcharge pour les actions correspondant aux règles d'approbation automatique. Celles-ci contournent entièrement l'iPhone et se résolvent en moins de 5ms sur le Mac.
Politiques d'approbation automatique
Toutes les actions ne nécessitent pas un examen manuel. La lecture d'un fichier est généralement sûre. L'exécution d'un linter présente peu de risques. Tactic Remote prend en charge des politiques d'approbation automatique configurables qui permettent de définir quelles actions contournent l'iPhone et s'exécutent automatiquement.
Options de politique actuelles :
- Opérations de fichier en lecture seule —
cat,read, listing de fichiers et actions similaires non modifiantes. - Préfixes de commande spécifiques — par exemple, approuver automatiquement toute commande commençant par
npm testoucargo check. - Portée par répertoire — approuver automatiquement toutes les actions dans un répertoire spécifique (utile pour les répertoires temporaires ou de test).
- Listes d'outils autorisés — approuver toutes les actions d'une catégorie d'outils spécifique.
Les politiques sont configurées sur le compagnon Mac et synchronisées avec l'app iPhone pour visibilité. Vous pouvez voir quelles politiques sont actives depuis la vue de session et les remplacer temporairement (par exemple, basculer vers "tout approuver manuellement" lors d'un déploiement en production).
Refus avec retour d'information
Lorsque vous refusez une action, vous pouvez optionnellement inclure un message. Ce message est renvoyé à Claude Code comme si l'utilisateur l'avait tapé dans le terminal. Claude Code le traite comme une directive et ajuste son approche.
Par exemple, si Claude propose de supprimer un fichier de configuration et que vous refusez avec "Ne supprime pas ce fichier, il contient des surcharges locales qui ne sont pas dans git", Claude prendra en compte le retour et trouvera une approche alternative. Cela crée une véritable boucle de rétroaction entre le développeur et l'agent, même lorsqu'ils ne sont pas devant la même machine.
Garanties de fiabilité
Le système d'approbation est conçu pour échouer en toute sécurité :
- Si la connexion WebSocket tombe pendant une approbation, le hook expire et renvoie un refus. Claude Code reçoit un résultat "permission refusée" et arrête l'action.
- Si l'iPhone est injoignable (pas de réseau, téléphone éteint), les approbations en attente sont mises en file sur le compagnon Mac pendant un maximum de 10 minutes. Si le téléphone se reconnecte dans ce délai, les approbations en file sont livrées. Après expiration, elles sont automatiquement refusées.
- Si le compagnon Mac plante, le script hook détecte le processus manquant et renvoie un refus. Sans approbation explicite, Claude Code ne peut pas continuer.
Le comportement par défaut est toujours le refus. Le système exige une approbation affirmative pour continuer. Il n'existe aucun état dans lequel une connexion perdue ou un processus planté entraîne l'exécution d'une action non vérifiée.
Prochaines étapes
Nous travaillons sur plusieurs améliorations du système d'approbation :
Constructeur de politiques granulaire. Une interface visuelle dans l'app iPhone pour construire des politiques d'approbation automatique sans éditer de fichiers de configuration. Des règles en glisser-déposer avec logique booléenne : "approuver automatiquement les commandes shell correspondant à git status OU git diff mais PAS git push."
Escalade de confiance par session. La possibilité d'élever temporairement le niveau de confiance pour une session spécifique. Par exemple, "approuver automatiquement toutes les écritures de fichiers dans cette session pendant les 15 prochaines minutes" lorsque vous supervisez activement une tâche de refactoring importante et ne souhaitez pas approuver chaque fichier individuellement.
Analytique des approbations. Un tableau de bord montrant les patterns d'approbation dans le temps — quelles actions vous approuvez le plus, lesquelles vous refusez le plus, et des suggestions de politiques d'approbation automatique basées sur votre historique.
Approbations par lots. Lorsque Claude Code propose une séquence d'actions liées (par exemple, écrire 5 fichiers dans le cadre d'une seule fonctionnalité), l'option de les examiner en lot et d'approuver ou refuser l'ensemble.
Le système d'approbation est au coeur de ce qui rend Tactic Remote viable pour le travail de développement réel. Les agents IA autonomes sont utiles, mais les agents IA autonomes avec supervision humaine sont dignes de confiance. Cette distinction compte, et nous avons l'intention de continuer à investir dans ce domaine.
Essayez Tactic Remote
Pilotez vos agents de programmation depuis votre téléphone
Connectez-vous à Claude Code, Codex et aux autres agents sur votre Mac, PC Windows ou Linux. Consultez leur progression et envoyez la prochaine instruction depuis votre iPhone ou iPad.