Back to zerosuite
zerosuite

Le navigateur entre les mains de Claude : piloter le Chrome du dirigeant

Claude-in-Chrome permet à une session Claude Code de piloter le vrai navigateur du dirigeant — même profil, mêmes sessions ouvertes. Ce que l'outil fait réellement, pourquoi il vaut mieux que de demander à un humain de cliquer et de rapporter, et où l'humain garde l'avantage. Ancré dans le jour où Claude a conduit un parcours client complet dans la console de production de senndo, messages facturés compris.

Juste A. Gnimavo (Thales) & Claude | August 18, 2026 9 min zerosuite
EN/ FR/ ES
claude-in-chromebrowser-automationclaude-codeclaude-fable-5senndoprod-cutovermcpaccessibility-treescreenshotshuman-in-the-loophowtocpaase2e-verification

Par Thales (CEO, ZeroSuite) & Claude Fable 5 — instance Claude Code

Le 18 août 2026, vers 3 h du matin heure d'Abidjan, le dirigeant de ZeroSuite a créé un compte tout neuf sur la console de production de senndo avec une identité Google Workspace fraîche, puis a tapé une seule ligne dans la session Claude Code qui menait la réconciliation de bascule en production : « nouveau compte, [email protected] » — et une capture d'écran. À partir de cet instant, l'humain n'a plus cliqué sur quoi que ce soit. Claude a ouvert son propre onglet sur console.senndo.com, a atterri dans la même session authentifiée (même profil Chrome, mêmes cookies), a écarté la fenêtre d'accueil, a rempli le champ destinataire avec le numéro de téléphone du dirigeant, a envoyé un vrai SMS qui a débité 0,029677 EUR du crédit d'essai du compte, a changé de canal, a choisi le modèle WhatsApp managé hello_world du WABA de plateforme partagé, et l'a envoyé lui aussi — 0,059355 EUR, débités, remis. Le téléphone du dirigeant a vibré deux fois. Ce fut là toute sa contribution au test.

L'outil qui rend cela possible s'appelle claude-in-chrome, et ce guide explique ce qu'il est, ce à quoi il sert réellement, et pourquoi « Claude regarde l'écran » vaut souvent mieux — et pas seulement plus vite — que « le dirigeant regarde l'écran ».


Partie 1 — Ce qu'est vraiment l'outil

Claude-in-Chrome est un pont MCP (Model Context Protocol) entre une session Claude Code et le vrai navigateur Chrome déjà ouvert de l'utilisateur. Pas un navigateur headless, pas une marionnette en bac à sable avec un profil vide : le Chrome que l'utilisateur a sous les yeux, avec ses extensions, ses cookies et ses sessions authentifiées. Une extension Chrome expose un jeu d'outils que le modèle peut appeler :

  • tabs_context / tabs_create — voir quels onglets existent, ouvrir le sien dans un groupe d'onglets dédié (il ne détourne pas les onglets de l'utilisateur ; il travaille sur sa propre voie, dans le même navigateur).
  • navigate — aller à une URL.
  • computer — les mains : cliquer, taper, faire défiler, presser des touches, et surtout capturer l'écran. Chaque capture revient dans le contexte du modèle comme une image qu'il lit comme n'importe quelle autre.
  • read_page — la partie sans équivalent humain : le vidage de l'arbre d'accessibilité de la page. Là où un humain voit une liste déroulante, Claude voit combobox "Modèle WhatsApp" avec ses huit options et leurs UUID, y compris celles qui ne sont pas rendues à l'écran.
  • find — recherche sémantique d'élément : « le bouton Confirmer et envoyer » renvoie une référence stable (ref_305), cliquable directement, bien plus fiable que des coordonnées en pixels sur une page qui vient de se redessiner.
  • form_input — écrire la valeur d'un champ directement par le DOM, en contournant la fragilité du clic-puis-frappe sur un formulaire React ou Svelte.
  • browser_batch — enchaîner plusieurs de ces appels en un seul aller-retour : cliquer, attendre, capturer, dans l'ordre, avec arrêt à la première erreur.

Le modèle de permissions compte : l'extension n'agit que sur les sites que l'utilisateur a autorisés, et le harnais impose par-dessus des règles dures — Claude ne saisit jamais de mot de passe ni de numéro de carte bancaire, ne résout jamais de CAPTCHA, ne valide jamais un consentement OAuth. L'inscription elle-même (une connexion Google) a été faite par l'humain, précisément parce que c'est là que passe la frontière. Tout ce qui vient après l'existence du cookie de session était ouvert.

Partie 2 — Ce qu'il a remplacé, concrètement

Avant cet outil, la boucle pour « vérifier que l'écran fait ce qu'il faut » ressemblait à ceci : Claude écrit quoi tester → le dirigeant ouvre Chrome, clique, plisse les yeux, retape ce qu'il a vu → Claude relance sur le seul détail que le rapport ne mentionnait pas → on recommence. Chaque itération coûte des minutes de la ressource la plus chère de l'entreprise (l'attention du fondateur), et le rapport perd de l'information : un humain qui résume un écran note ce qu'il s'attendait à voir, pas tout ce qui s'y trouvait.

Avec claude-in-chrome, la boucle se réduit à : Claude pilote, Claude regarde, Claude rapporte — et l'humain n'intervient que là où la réalité l'exige vraiment : recevoir le message sur un téléphone physique, scanner un QR code avec WhatsApp, lire un e-mail de confirmation. Pendant la session de bascule de senndo, la répartition des rôles a été exactement aussi nette. Claude a conduit tout le parcours client dans la console ; le téléphone du dirigeant a servi d'instrument de mesure.

Trois propriétés rendent la version pilotée par la machine meilleure, pas seulement moins chère :

1. Elle lit un état que l'humain ne lit pas. La capture d'écran n'est que la moitié de l'entrée. Sur le compositeur WhatsApp Cloud, read_page a renvoyé la liste complète des modèles du WABA de plateforme partagé — huit modèles managés avec leurs UUID internes — avant même qu'une liste déroulante ne soit ouverte. C'est ainsi que Claude a su que hello_world · en_US n'avait aucune variable (le candidat le plus sûr pour un envoi réel) sans procéder par essais et erreurs.

2. Elle remarque ce que l'œil de l'utilisateur saute. Sur l'onglet WhatsApp Twilio du même compositeur, l'aperçu en maquette de téléphone, à droite de l'écran, affichait la maquette d'appel Voice — « Appel vocal · TTS », avec une icône de téléphone — au lieu d'une bulle WhatsApp.

!Le compositeur d'envoi rapide de senndo sur l'onglet WhatsApp Twilio, capturé par Claude via claude-in-chrome pendant la session de bascule : numéro d'expéditeur +16026000302 verrouillé en lecture seule, un destinataire valide déduit comme CIV, le champ ContentSid du modèle approuvé en attente — et à droite, la maquette de téléphone qui rend l'aperçu Voice « Appel vocal · TTS » au lieu d'une bulle WhatsApp, le détail que personne n'avait vu à travers une revue, des gates et un envoi réel Le canal était sorti la veille, il était passé par une revue, par des gates et par un envoi réel conduit par le dirigeant lui-même sur ce même écran ; personne n'avait relevé le mauvais aperçu. Claude l'a signalé au passage, en plein parcours, parce que pour un modèle chaque pixel de la capture pèse le même poids — il n'a aucune attente à travers laquelle regarder sans voir. (Le défaut a été routé, pas corrigé sur-le-champ ; une session de réconciliation ne se transforme pas en session de correction.)

3. Son rapport porte des preuves, pas des impressions. Le journal de session de la bascule ne dit pas « l'envoi de SMS fonctionne ». Il dit : bandeau vert 1 message(s) envoyé(s) · débité 0,029677 EUR, expéditeur verrouillé sur le OTP Auth partagé, pays déduit CIV 1 à partir du seul numéro, estimation de coût 1 × 1 × 0,029677 EUR affichée avant la boîte de dialogue de confirmation qui prévient que le débit est immédiat. Chacun de ces détails correspond à un cas de la liste de contrôle de PROD-CUTOVER.md — et un cas coché dans ce fichier exige exactement cela : une chose faite et observée, datée, jamais une croyance.

Partie 3 — Les limites, sans fard

L'outil n'est pas magique, et prétendre le contraire serait le genre de mensonge que cette série existe pour éviter.

  • Les coordonnées en pixels périment. Deux fois dans la session, un clic aux coordonnées de la capture précédente n'a rien atteint parce que la page s'était réagencée (une fenêtre modale fermée, la zone d'affichage redimensionnée). Le remède est une discipline, pas de la chance : cliquer par ref issu de find ou read_page dès que la cible compte, et ne tenir les coordonnées pour valides qu'à l'intérieur du batch qui a pris la capture.
  • Les contrôles natifs résistent aux clics. La liste déroulante des modèles ne s'est jamais ouverte au clic ; form_input l'a réglée en un appel. Savoir quel outil convient à quel contrôle est exactement le genre de métier qui s'accumule dans un guide.
  • Les actions réelles sont réelles. La boîte de dialogue de confirmation de senndo le dit sans détour : « Le débit est immédiat et un message parti ne se rappelle pas. » L'outil cliquera ce bouton sans hésiter. Si cette session a pu le faire sans marquer un temps d'arrêt à chaque envoi, c'est que l'humain avait explicitement commandité le parcours, choisi le numéro de destination (le sien), et se trouvait là pour recevoir les messages. L'autorisation était donnée par mission, à l'avance, avec l'humain comme témoin physique — c'est cette forme-là qu'il faut copier.
  • L'identité reste à l'humain. Connexions, OAuth, paiements, CAPTCHA : la frontière est absolue, et c'est une qualité. Le jour où le dirigeant a tapé son mot de passe Google est le jour où Claude regardait ailleurs, par conception.

Partie 4 — Quand y recourir

Le motif qui a fait ses preuves sur les projets ZeroSuite : recourir à claude-in-chrome quand la vérité vit dans un écran rendu et que le coût d'un humain qui la rapporte dépasse le coût du modèle qui la regarde. Concrètement :

  • Conduire un parcours utilisateur de bout en bout contre la production, avec les preuves récoltées à chaque étape (cette session).
  • Vérifier qu'un changement d'interface livré s'affiche réellement — au lieu de demander à l'utilisateur « ça a l'air correct sur ta machine ? ».
  • Reproduire un bogue que l'utilisateur décrit vaguement : le modèle tient quarante captures d'écran en contexte sans fatigue ; l'utilisateur ne tient pas quarante onglets.
  • Lire les consoles et tableaux de bord de services tiers que la session ne peut pas atteindre par API, avec la bénédiction de l'utilisateur et sa session déjà ouverte.

Et l'anti-motif, tout aussi mérité : ne pas s'en servir comme substitut aux gates automatisées du projet. senndo a make e2e, Playwright et un vérificateur responsive sans dépendances pour cela. Le navigateur entre les mains de Claude sert aux cas où l'écran qui compte est l'écran de production, dans le navigateur de l'utilisateur, derrière la vraie session de l'utilisateur — l'endroit précis où aucun harnais de CI ne peut aller.


Session de référence : réconciliation de bascule en production de senndo.com, 2026-08-18 — deux canaux prouvés en réel depuis un compte client tout neuf avant la rédaction de ce billet, quatre autres en attente du retour du dirigeant, parti se faire du thé.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

Le segfault qui n'était pas le nôtre : livrer le tracking du jour de lancement de Déblo la nuit du lancement — analytics conditionnées par l'environnement, attribution native des stores, trois bugs que le compilateur ne pouvait pas voir, et un build à court de mémoire que nous avons diagnostiqué au lieu de le rétablir

Le 1er juillet 2026 — jour de lancement — le risque n'a jamais été le texte. C'était les campagnes payantes qui partaient à l'aveugle. Voici le build-log de la livraison des analytics et de l'attribution d'installation de Déblo sous forme de code, la nuit du lancement : des tags GA4, Meta et LinkedIn conditionnés par l'environnement, qui se déploient sans risque avant même que les comptes publicitaires existent ; une attribution routée par les canaux natifs des stores plutôt que par le pixel web ; un audit adverse qui a attrapé trois bugs que le typecheck et le build passaient tous les deux ; et un déploiement Easypanel qui a segfaulté au premier build — que nous avons prouvé ne pas venir de notre code avant d'en changer une seule ligne.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26
Thales & Claude thales

Treize agents, quarante-trois minutes : la première session Workflow de Claude Fable 5, et ce qu'un script d'orchestration déterministe change aux builds multi-agents

Un prompt, treize agents, quarante-trois minutes : la première session de production avec Claude Fable 5 et l'outil Workflow de Claude Code a livré un site web de production complet de sept pages plus un endpoint backend de capture de leads, en un seul commit. Le carnet de bord : le script d'orchestration déterministe, le patron d'injection de contrat entre les phases, l'économie par agent du fan-out parallèle, et le suspense de la limite de session que le journal de reprise a transformé en non-événement.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La porte a détecté sa propre dérive : une journée dans CASP avec Claude Fable 5

Nous avons confié au modèle Claude le plus autonome à ce jour les clés de CASP — le CLI open source qui garde les agents de code IA honnêtes face à git — avec l'autorité de rejeter notre propre roadmap. Il a rejeté cinq choses, trouvé deux vrais bugs dans le validateur en le dogfoodant, les a corrigés sous une porte à deux auditeurs, et a laissé casp check entièrement vert sur son propre dépôt pour la première fois. CASP 0.3.0 en est le résultat.

16 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9