Blog
Architecture Zero-Cloud : comment Tactic Remote garde votre code sur votre machine
Tactic Remote fonctionne sur une architecture zero-cloud où toute l'exécution de code, les données de session et l'accès aux fichiers restent sur le Mac du développeur, avec des connexions chiffrées directes entre iPhone et Mac qui contournent entièrement notre infrastructure.
Suivez les mises à jour produit et ingénierie de cette catégorie.
Voir la catégorieChaque semaine apporte une nouvelle histoire d'un outil d'IA ayant téléversé du code source vers un service cloud, entraîné ses modèles sur des données propriétaires sans consentement, ou exposé des identifiants d'environnement de développement via une API mal configurée. Les développeurs ont raison de se méfier des outils qui accèdent à leur base de code.
Tactic Remote a été conçu dès le départ autour d'un principe simple : votre code ne quitte jamais votre machine. Cet article explique précisément comment cela fonctionne, où se situent les frontières de confiance, et ce que nous pouvons et ne pouvons pas voir.
Ce que "Zero-Cloud" signifie
Tactic Remote n'a pas de backend cloud. Nous n'exploitons pas de serveurs qui relaient, stockent ou traitent vos données de développement. La connexion entre votre iPhone et votre Mac est directe.
En mode réseau local, "directe" signifie littéralement directe — votre iPhone communique avec votre Mac via votre réseau Wi-Fi local. Aucun trafic ne quitte votre réseau. Aucune résolution DNS n'atteint de serveurs externes. La connexion s'établit entre deux appareils sur le même sous-réseau.
En mode Cloudflare Tunnel, le trafic transite par le réseau de bordure de Cloudflare pour atteindre votre Mac lorsque vous êtes en dehors de votre réseau local. Cloudflare fournit la couche de transport, mais la charge utile de la couche applicative est chiffrée de bout en bout entre votre iPhone et votre application Mac companion. Cloudflare voit des octets chiffrés. Nous ne voyons rien.
Pour être précis sur ce que couvre "zero-cloud" :
- Code source — jamais transmis à nous. Le contenu des fichiers lus par Claude Code reste sur votre Mac. Quand les différences de fichiers sont affichées dans la vue d'approbation de l'app iPhone, elles transitent directement de votre Mac à votre iPhone.
- Transcriptions de session — la conversation entre vous et Claude Code reste sur votre Mac. L'iPhone reçoit un flux de sortie terminal pour l'affichage, mais ce flux va de Mac à iPhone sans intermédiaire que nous contrôlons.
- Sortie des commandes shell — reste sur votre Mac. Transmise en streaming à votre iPhone pour affichage, non stockée ailleurs.
- Décisions d'approbation — transitent de l'iPhone au Mac. Nous n'avons aucun enregistrement de ce que vous avez approuvé ou refusé.
- Charges utiles des notifications push — c'est le seul domaine où nous interagissons avec l'infrastructure d'Apple. Voir la discussion détaillée ci-dessous.
Authentification entre iPhone et Mac
Lorsque vous jumelez votre iPhone avec votre Mac companion, les appareils établissent un secret partagé via l'une de ces deux méthodes :
Jumelage par code QR. Le Mac companion génère un code QR contenant un jeton de jumelage à usage unique et l'adresse réseau locale du Mac. Vous le scannez avec l'app iPhone. Les appareils échangent des clés cryptographiques lors de la connexion initiale, et les connexions suivantes s'authentifient à l'aide de ces clés. Le jeton de jumelage est à usage unique et expire après 60 secondes.
Saisie manuelle de code. Pour les situations où le scan QR n'est pas pratique, le Mac companion affiche un code à 6 chiffres. Vous le saisissez sur l'iPhone. Le code remplit la même fonction que le jeton QR — il initie l'échange de clés.
Après le jumelage, l'authentification est automatique. L'iPhone présente sa clé stockée à chaque connexion, et le Mac companion la valide par rapport à la liste des appareils autorisés. Pas de mots de passe, pas de jetons à renouveler, pas de flux OAuth.
Les données de jumelage sont stockées dans le macOS Keychain sur le Mac et dans l'iOS Keychain sur l'iPhone. Les deux sont des stockages chiffrés par matériel fournis par le Secure Enclave d'Apple.
Frontières de confiance
Tout modèle de sécurité a des frontières de confiance — les lignes où vous devez faire confiance à quelque chose d'externe. Nous souhaitons être explicites sur les nôtres :
Vous faites confiance à Claude Code d'Anthropic
Tactic Remote est une couche de contrôle autour de Claude Code. Claude Code communique avec l'API d'Anthropic pour générer des réponses. Vos prompts et les réponses de Claude transitent par les serveurs d'Anthropic. C'est inhérent à l'utilisation de Claude Code et ce n'est pas quelque chose que Tactic Remote ajoute ou peut supprimer. Les politiques de traitement des données d'Anthropic s'appliquent à ce trafic.
Vous faites confiance à Apple pour les notifications push
Lorsque le Mac companion doit réveiller votre iPhone pour délivrer une demande d'approbation, il envoie une notification push via le service de notifications push d'Apple (APNs). La charge utile de la notification contient une alerte minimale — le nom de la session et le type d'action (par exemple, "Claude veut exécuter une commande shell"). Elle ne contient pas la commande réelle, le contenu des fichiers ou le code source.
Nous avons conçu la charge utile de la notification pour être aussi minimale que possible. Les informations détaillées d'approbation sont récupérées par l'app iPhone directement depuis votre Mac lorsque vous ouvrez la notification. Apple voit que vous avez reçu une notification de Tactic Remote. Apple ne voit pas ce que fait Claude Code.
Vous faites confiance à Cloudflare (mode tunnel uniquement)
Si vous utilisez Cloudflare Tunnel pour l'accès distant, le trafic transite par le réseau de Cloudflare. Comme expliqué dans notre article sur l'intégration Cloudflare, la couche de transport est celle de Cloudflare, mais la charge utile applicative est chiffrée avec des clés que Cloudflare ne possède pas.
Vous faites confiance à votre réseau local (mode local uniquement)
En mode réseau local, la connexion n'est aussi sécurisée que votre réseau Wi-Fi. Sur un réseau domestique ou de bureau de confiance, c'est suffisant. Sur un réseau Wi-Fi public, le trafic en mode local pourrait théoriquement être intercepté. Nous utilisons TLS pour la connexion WebSocket quel que soit le type de réseau, mais nous recommandons le mode Cloudflare Tunnel lors de connexions via des réseaux non fiables.
Ce que nous pouvons et ne pouvons pas voir
Nous considérons que la transparence sur l'accès aux données n'est pas négociable. Voici un bilan précis :
| Données | Pouvons-nous les voir ? | Explication |
|---|---|---|
| Code source | Non | Ne quitte jamais votre Mac |
| Transcriptions de session | Non | Mac vers iPhone uniquement |
| Commandes exécutées | Non | Mac vers iPhone uniquement |
| Décisions d'approbation | Non | iPhone vers Mac uniquement |
| Fichiers lus ou écrits | Non | Local sur votre Mac |
| Statut de livraison des notifications | Oui | Apple rapporte le statut de livraison |
| Rapports de plantage de l'app | Oui (opt-in) | Rapports de plantage iOS standard |
| Analyses d'utilisation | Oui (opt-in) | Nombre de sessions, durée — aucun contenu |
Les analyses optionnelles, si activées, ne contiennent que des métriques d'utilisation agrégées : nombre de sessions démarrées, durée moyenne de session, répartition des modes de connexion. Aucun contenu, aucun chemin de fichier, aucun texte de commande. Les analyses peuvent être entièrement désactivées dans les paramètres de l'app iPhone.
Architecture réseau
Ce qui suit décrit ce qui se passe au niveau réseau lors d'une session Tactic Remote typique :
Mode réseau local
Votre routeur voit du trafic local entre deux appareils. Votre FAI ne voit rien lié à Tactic Remote. Le seul trafic externe est la communication de Claude Code avec l'API d'Anthropic, qui a lieu que Tactic Remote soit impliqué ou non.
Mode Cloudflare Tunnel
Cloudflare voit du trafic applicatif chiffré. Le démon cloudflared sur votre Mac termine le tunnel Cloudflare et transmet le trafic au Mac companion sur localhost. Aucune partie externe autre que le réseau de bordure de Cloudflare ne traite le trafic, et Cloudflare ne peut pas déchiffrer le chiffrement de la couche applicative.
Modèle de menaces
Nous avons considéré les scénarios d'attaque suivants et comment l'architecture y répond :
Réseau Wi-Fi compromis. Le TLS sur la connexion WebSocket empêche l'écoute passive. Un attaquant actif effectuant une attaque d'interception TLS (MITM) devrait compromettre le certificate pinning dans l'app iPhone, ce qui constitue une attaque de haute complexité.
iPhone volé. L'app Tactic Remote nécessite une authentification biométrique (Face ID ou Touch ID) pour s'ouvrir. Les clés de jumelage sont stockées dans le Secure Enclave et ne sont pas extractibles même depuis un appareil jailbreaké. Un iPhone volé ne peut pas approuver d'actions ni consulter les données de session sans la biométrie du propriétaire.
Mac compromis. Si un attaquant a accès à votre Mac, il a accès à tout ce à quoi Claude Code peut accéder — ceci est vrai avec ou sans Tactic Remote. Tactic Remote n'étend pas la surface d'attaque d'un Mac compromis.
Mise à jour malveillante du Mac companion. Le Mac companion est distribué en tant que binaire signé via notre site web. macOS Gatekeeper valide la signature de code avant exécution. Nous n'avons pas la capacité de pousser des mises à jour silencieuses — l'utilisateur doit télécharger et installer les mises à jour manuellement.
Pourquoi c'est important
La tendance dans les outils de développement assistés par IA est aux agents hébergés dans le cloud qui s'exécutent dans des environnements sandboxés et accèdent à votre code via des intégrations de dépôts. Ce modèle fonctionne pour certaines équipes, mais il nécessite de confier à l'éditeur de l'outil votre code source, vos identifiants et votre workflow de développement.
Tactic Remote adopte l'approche inverse. Votre Mac est l'environnement d'exécution. Votre code reste sur votre disque. Vos identifiants restent dans votre Keychain. Le seul service d'IA impliqué est la relation existante de Claude Code avec l'API d'Anthropic, à laquelle vous avez déjà consenti lors de l'installation de Claude Code.
Cette architecture a des coûts. Vous avez besoin d'un Mac qui reste allumé. Vous devez gérer votre propre connectivité réseau. Vous n'avez pas la commodité d'un tableau de bord cloud accessible depuis n'importe quel navigateur.
Nous pensons que le compromis en vaut la peine. Pour les développeurs travaillant sur des logiciels propriétaires, manipulant des données sensibles ou opérant dans des secteurs réglementés, la capacité de dire "mon code n'a jamais quitté ma machine" n'est pas une fonctionnalité — c'est une exigence.
Pour les recommandations de durcissement de la sécurité et les guides de configuration détaillés, consultez notre documentation sur le Durcissement de la sécurité et du réseau.
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.