ego (lite) n’est qu’un navigateur ; ego est votre agent personnel sur tous vos appareils.
Rejoindre la liste d'attente
Tests web par IA pour votre agent de code

Lancez automatiquement de nombreux tests en parallèle avec votre agent IA

Playwright MCP pilote le navigateur un appel d'outil à la fois : lent et coûteux en jetons. Maintenant, Claude Code ou Codex exécute tout le test dans ego (lite) avec quelques lignes de code : 2,4x plus rapide, et plusieurs tests en parallèle, chacun dans son propre Space.

Utilisé par des développeurs de
GoogleTikTokHarvardStanfordUSCUCLA

Lancez des tests juste en le demandant

Par exemple, je demande à Codex de vérifier si ce site e-commerce a des bugs. Codex lance tout le test, corrige tous les bugs et me donne le résultat. La seule chose que j'ai à faire, c'est scroller sur TikTok en le regardant travailler.

QA visuelle, correction, vérification

La même page passe de cassée à correcte, à l'écran

Les pages produit s'affichent de façon incorrecte. L'agent les examine dans ego (lite), corrige le CSS dans le code source, et la page ouverte se réaffiche correctement à l'écran.

Testez votre application web à la vitesse de l'éclair avec ego (lite)

L'ancienne méthode pour tester une application consiste à utiliser Playwright MCP ou Chrome DevTools MCP, qui exécutent un appel d'outil à la fois : chaque étape attend que le modèle lise le résultat précédent, lent et coûteux. Désormais, les agents exécutent plusieurs étapes en une seule passe de code JS avec ego (lite), donc ça se termine plus vite et coûte moins de jetons.

2,4x plus rapide
Même tâche, même agent (Claude Code sur Opus 4.8) : ego (lite) a terminé en ~18 s avec 2 allers-retours modèle ; Playwright MCP a mis ~43 s et 9 allers-retours. Plus la tâche est complexe, plus l'écart se creuse.
ego (lite)Playwright MCPChrome DevTools MCP
Comment l'agent le piloteVia /ego-browser, le SkillServeur MCP externe. Un appel d'outil par action.Serveur MCP externe. Un appel d'outil par action.
ConfigurationAucune installation, fonctionne avec n'importe quel agent.installation via npx, modes de lancement à configurer, erreurs fréquentes de lancement et de détection de Chrome.Débogage distant, répertoire de données utilisateur, configuration multi-hôtes.
Jetons utilisésFaible. Pas de schémas d'outils MCP, et seul ce que l'agent journalise entre dans le contexte : un Snapshot par passe, pas un après chaque action.Élevé. Les utilisateurs signalent une consommation de jetons x6 et des dépassements de contexte à 200 000 jetons.Élevé. Les captures d'écran coûtent cher en jetons.
État de connexionVotre propre navigateur connecté. Le même état de connexion que votre ChromeNavigateur isolé par défaut ; conserver les sessions demande un mode extension ou une config d'état de stockage.Peut s'attacher, mais accapare les onglets que vous utilisez.
widgets iframe / Shadow DOM / SDKSon Snapshot de page est intégré au moteur de rendu, donc il lit à l'intérieur de chacun d'eux.Le Snapshot d'accessibilité a un angle mort sur les iframes.DOM brut, à gérer vous-même.
Console / réseau / traceConsole, réseau et traces, lus directement depuis les données Chrome DevTools.Console, réseau, captures d'écran.Le plus poussé : Lighthouse, performance, mémoire.
Stabilité des localisateursS'ancre sur des libellés sémantiques, survit aux changements de classe CSS.Références / accessibilité, plutôt stables.Sélecteurs DOM bruts.
CAPTCHA / détection de botsVraie session humaine, le moins susceptible de déclencher une alerte.Navigateur séparé ou headless, souvent repéré.Meilleur en mode attaché, mais accapare vos onglets.
Tâches en parallèlePensé pour faire tourner plusieurs tâches en même temps grâce aux Spaces.Une session par serveur ; les exécutions en parallèle demandent de gérer des instances isolées supplémentaires.Instance unique, plante avec beaucoup d'onglets.

La friction n'a jamais été le navigateur. C'était la couche intermédiaire.

Sur les forums de développeurs et les trackers de bugs, la plupart des plaintes visent le MCP : c'est la couche entre l'agent et le navigateur — la connexion tombe, les validations s'accumulent, la session casse, les jetons explosent. Avec ego (lite), tout est déjà configuré : plus de ces erreurs bizarres.

Ce qu'on rencontre avec Playwright MCP

Le navigateur fonctionne. La connexion vers lui, non.

  • Connexion : les outils apparaissent mais l'agent ne les appelle pas, l'exécution se bloque sur « en attente de validation », et le même serveur se comporte différemment selon le client
  • Approbations : une popup par appel d'outil, souvent 10 à 30 pour une seule tâche, même avec « tout exécuter » activé
  • Fiabilité : une tâche qui se termine à moitié, ou une navigation qui a déjà réussi mais qui expire toujours
Se battre contre la couche intermédiaire avant même de tester
ego (lite)

Aucune couche intermédiaire : ego (lite) est le navigateur lui-même

  • Stable par conception : l'agent parle directement à un navigateur local qu'il possède, sans transport MCP intermédiaire qui puisse lâcher ou se bloquer
  • Moins de validations : une seule passe exécute plusieurs étapes au lieu d'un seul appel d'outil par action
  • Prévisible : s'intègre à n'importe quel agent IA, de la même façon à chaque fois
Téléchargez, puis demandez à votre agent de lancer le test

Aucun script de test. Aucun sélecteur à maintenir. Dites simplement quoi vérifier.

Playwright, Cypress, Selenium : vous écrivez le test, vous maintenez les sélecteurs, et un renommage de classe ou une refonte de mise en page les casse. ego (lite) reçoit une vérification en langage naturel et repère les éléments par leur sens, donc un changement d'interface ne casse pas le test.

Écrire des tests Playwright / Cypress / Selenium

Vous écrivez la spec, vous maintenez les sélecteurs

  • Écrire et versionner à la main un .spec pour chaque flux que vous souhaitez couvrir
  • Figer des sélecteurs comme page.click(".btn-x7f3") qui casseront au prochain changement d'interface
  • Ajouter vous-même des attentes et des tentatives pour lutter contre l'instabilité des tests
  • Construire une automatisation de connexion ou des fichiers d'état de session pour tester derrière une authentification
  • Relancer et réparer la suite après chaque refonte
Des tonnes de code à écrire, des sélecteurs à surveiller sans cesse
ego (lite)

Dites simplement quoi vérifier

  • Aucune spec à écrire : décrivez la vérification à votre agent en une phrase
  • Repère les éléments par leur sens, pas par une classe CSS, donc un renommage ou une refonte ne casse rien
  • Des attentes intelligentes gèrent le contenu asynchrone, sans délais codés à la main
  • Teste derrière votre authentification, sans automatisation de connexion
  • Besoin de tests de régression visuelle ? L'agent compare les captures d'écran
Gratuit. Dites simplement à votre agent quoi vérifier

Pour une suite versionnée et headless qui tourne sans surveillance en CI, ou pour des tests croisés sur Firefox et WebKit, gardez Playwright. ego (lite) offre une boucle de développement rapide, sans aucun script à écrire.

Comment les agents IA pilotent ego (lite)

L'agent pilote le navigateur en écrivant un seul programme JavaScript complet. Un unique appel regroupe toutes les étapes — ouvrir la boutique, ajouter un produit, attendre le paiement — et les exécute en séquence dans le navigateur, sans jamais attendre le retour d'une action avant d'envoyer la suivante.

Claude Code
>/ego-browser Open localhost:3000, add the first product to the cart, and check that checkout loads
Bash(
ego-browser nodejs <<'EOF' await openOrReuseTab('http://localhost:3000', { wait: true }) cliLog('opened localhost:3000 — storefront rendered') await click('a[href^="/product/"]') await waitForElement('button[data-testid="add-to-cart"]') await click('button[data-testid="add-to-cart"]') cliLog('added first product to cart') await openOrReuseTab('http://localhost:3000/checkout', { wait: true }) await waitForElement('form#payment') cliLog(`checkout loaded — ${(await pageInfo()).url}`) EOF
)
⎿ Exécutez ego-browser pour parcourir le flux de paiement
Sortie :
[t=1240ms] opened localhost:3000 — storefront rendered
[t=2870ms] added first product to cart
[t=4480ms] checkout loaded — http://localhost:3000/checkout
Terminé. Le paiement se charge sans accroc : boutique, ajout au panier et formulaire de paiement s'affichent tous correctement.
─── 6s · ↑ 1,9k tokens · ego-browser durée d'exécution ───

Il gère ce qui rend habituellement les tests instables

On a testé les scénarios que les développeurs jugent les plus difficiles à automatiser. Avec ego (lite), les agents les ont tous réussis. Son Snapshot sémantique est généré directement dans le moteur de rendu Chromium, donc il voit dans les Shadow Roots et les iframes inter-documents là où les scripts injectés deviennent aveugles.

Shadow DOM

Acts inside web-component shadow roots, where injected scripts go blind.

Payment iframes

Fills card fields inside cross-document iframes, like a Stripe checkout.

Custom date pickers

Picks a date range in a custom calendar with no test ids.

Drag and drop

Real HTML5 drag: moves a kanban card, the board follows.

Infinite scroll

Scrolls a lazy feed until every item is loaded, no hand-tuned waits.

Paginated tables

Walks every page of an admin table and pulls each row.

Conditional modals

Cookie banners and dialogs that pop up mid-flow get handled, not tripped over.

Autocomplete

Types an address, waits for the suggestions, picks the right one.

Et un clic qui atterrit sur un bouton masqué ou désactivé est signalé comme un échec, pas un faux succès — exactement comme le ferait un vrai framework de test.

Votre navigateur connecté, toujours sous votre contrôle

Laisser un agent agir librement dans le navigateur où vous êtes connecté, ça mérite qu'on s'y arrête. Voici où sont les limites.

Il fonctionne dans son propre Space

L'agent tourne dans un espace de travail séparé à l'intérieur du navigateur. Il partage vos sessions, mais vos onglets et fenêtres restent intacts.

Chaque étape est visible

Un vrai navigateur avec interface sur votre Mac, pas un processus headless caché. Suivez l'exécution en direct, et interrompez-la depuis la CLI de votre agent à tout moment.

Rien ne quitte votre Mac

L'historique, les cookies et les sessions restent sur votre ordinateur. ego (lite) ne les envoie jamais en ligne.

Et quand un parcours a de vrais effets de bord, un paiement qui débite réellement ou une suppression qui supprime pour de bon, pointez l'agent vers localhost ou un environnement de staging, exactement comme vous le testeriez à la main.

Comment l'utiliser, étape par étape

Tester une application en trois étapes : pointez votre agent vers localhost ou n'importe quelle URL, dites-lui quoi vérifier, et récupérez ce qui a échoué.

1Télécharger ego (lite)

Un navigateur Chromium que vous utilisez au quotidien. Un clic importe vos sessions Chrome, pour que l'agent teste à votre place.

2Dites à vos agents IA que vérifier

Que doit-il tester ?

/ego-browser Ouvre localhost:3000, passe la commande jusqu'au paiement, et dis-moi ce qui est cassé

Tapez /ego-browser et dites simplement ce qu'il faut vérifier, dans n'importe quelle langue que votre agent comprend.

3Récupérez ce qui a échoué
PagesRésultat
/checkoutD'accord
/product/gift-carderreur de console
/product/cameraimage 404

Chaque page cassée revient avec l'erreur console ou la requête échouée qui l'explique, pas juste un succès ou un échec.

Quand utiliser ego (lite), et quand s'en passer

Pensé pour la boucle rapide du développement au quotidien : reproduire, déboguer, vérifier.

Les points forts d'ego (lite)

La boucle rapide du développement, dans un vrai navigateur.

  • Reproduire et déboguer un bug dans un vrai navigateur connecté
  • Tester des parcours derrière une authentification, sans automatisation de connexion
  • Lire les erreurs console, les requêtes en échec et l'état de la page
  • Lancer des vérifications exploratoires sur plusieurs pages en parallèle
  • Vérifier un correctif dans la même session où vous avez trouvé le bug

Quand revenir vers Playwright

Honnête sur ses limites.

  • Les suites de régression headless qui tournent sans surveillance en CI (ego (lite) est un navigateur Mac avec interface)
  • Les tests croisés sur Firefox et WebKit (ego (lite) est basé sur Chromium)
  • Une suite de tests versionnée et déterministe que vous commitez et maintenez

Donnez à votre agent un vrai navigateur pour tester

Télécharger ego (lite) pour Mac

FAQ

Non. Vous utilisez l'agent IA que vous avez déjà — Claude Code, Codex ou Cursor — et lui décrivez la vérification en langage naturel. L'agent écrit et exécute les étapes du navigateur pour vous. Aucun fichier .spec à maintenir, aucun sélecteur CSS à écrire à la main, car ego (lite) repère les éléments à partir d'un Snapshot sémantique de la page.

Playwright MCP est un serveur MCP que votre agent pilote un appel d'outil par action : une tâche en quinze étapes veut dire quinze allers-retours vers le modèle, lent et coûteux en jetons. ego (lite) est le navigateur lui-même : l'agent écrit une courte passe JavaScript qui exécute plusieurs étapes d'un coup, sur votre vrai navigateur connecté. Dans notre test sur la même tâche, avec Claude Code sur Opus 4.8, ego (lite) a terminé en environ 18 secondes avec 2 allers-retours modèle, contre environ 43 secondes et 9 allers-retours pour Playwright MCP. Il exécute aussi plusieurs tâches de test en parallèle, chacune dans son propre Space — ce qu'un navigateur MCP unique ne peut pas faire.

Oui, et c'est là qu'ego (lite) brille. C'est votre navigateur du quotidien, déjà connecté, donc l'agent teste des tableaux de bord, des back-offices internes et des parcours de compte sans que vous ayez à construire d'automatisation de connexion. Comme il se comporte comme une vraie session humaine, il déclenche aussi beaucoup moins de CAPTCHA ou de détection de bots qu'un navigateur headless ou fraîchement lancé.

Chaque tâche tourne dans son propre Space, un espace de travail séparé dans le même navigateur, comme des fenêtres supplémentaires du même profil. Les Spaces partagent vos sessions mais gardent leurs propres pages, donc les exécutions en parallèle ne se percutent jamais entre elles ni avec les onglets où vous travaillez. Pour un site, ça ressemble à un seul utilisateur connecté avec plusieurs onglets ouverts. Si votre application n'autorise qu'une session active par compte, exécutez ces parcours un par un ou utilisez un compte de test.

Oui, dans le sens où l'agent capture une capture d'écran de référence puis une nouvelle, les compare pixel par pixel, et vous dit ce qui a changé et où. C'est l'agent qui fait la comparaison dans votre navigateur, pas un outil de test visuel séparé à configurer : pas de Percy ou Chromatic à brancher. Pour un service de référence géré avec workflows de revue et blocage en CI, un outil de test visuel dédié reste plus adapté.

Pas aujourd'hui. ego (lite) est un vrai navigateur avec interface sur votre Mac, pensé pour tester pendant que vous développez : reproduire un bug, le déboguer, vérifier le correctif, lancer des vérifications sur vos pages. Pour une suite headless qui tourne sans surveillance en CI, ou pour des tests croisés sur Firefox et WebKit, gardez votre suite Playwright. ego (lite) est la boucle rapide du développement, pas le runner CI.

Les bugs fonctionnels et d'exécution qu'un vrai utilisateur rencontrerait : un parcours qui casse, un bouton qui ne fait rien, une erreur JavaScript non interceptée, une requête réseau en échec, une erreur console, une valeur incorrecte. L'agent lit l'état de la page, la console et le réseau : il rapporte ce qui a échoué et où, pas juste un vert ou un rouge.

L'agent travaille dans son propre Space, donc vos onglets et fenêtres restent intacts, et tout se passe dans une vraie fenêtre de navigateur visible, que vous pouvez observer et interrompre depuis la CLI de votre agent à tout moment. Vos données de navigation restent sur votre ordinateur : ego (lite) n'envoie jamais votre historique, vos cookies ou vos sessions en ligne. Pour les parcours avec de vrais effets de bord, comme un paiement qui débite réellement, pointez l'agent vers localhost ou un environnement de staging, comme vous le feriez en testant à la main. Si vous connectez un agent ou un fournisseur de modèle externe, ce fournisseur a sa propre politique de données.