Emsai Agents
Fais tourner Claude Code, Codex, Copilot CLI et Antigravity CLI côte à côte dans une seule fenêtre native, et réponds-leur d’où tu veux.
Emsai Agents, c’est la fenêtre où travaillent tes agents de code. Chaque session est une vraie session de l’agent que tu as installé, dans un de tes dépôts, avec ses réglages, ses plugins et ses serveurs MCP. Emsai l’affiche en natif : tu vois chaque changement avant de l’autoriser, tu réponds à ses questions, tu approuves son plan, tu l’arrêtes ou tu mets le message suivant en file, depuis la fenêtre ou depuis l’île.
Ouvre-la avec ⌃⌥J ou l’action Open Agents. Tant que sa fenêtre est ouverte, Emsai Agents apparaît dans le Dock et dans ⌘⇥. Fermer la fenêtre n’arrête rien : tes sessions continuent et restent visibles dans l’île. ⌘Q la quitte, et te demande d’abord si une session travaille ou t’attend.

La fenêtre
- À gauche : les sessions. New (⌘N), une recherche, puis tes sessions ouvertes (point bleu quand elle travaille, orange quand elle t’attend, vert au repos), les récentes (un clic en rouvre une, avec sa conversation) et les sessions qui tournent ailleurs dans un terminal. En dessous, Customizations liste les Plugins, MCP Servers, Skills, Instructions, Agents et Hooks de l’agent, lus dans ses propres fichiers, jamais modifiés.
- Au centre : la session. La conversation et, en dessous, le champ de message.
- À droite : Changes et Files. Les changements du dépôt, le diff de chaque fichier en un clic et l’arborescence, mis à jour pendant que l’agent travaille. Le bouton de panneau dans l’en-tête de la session le masque.
Choisir tes agents
Réglages › Coding Agents liste chaque agent installé sur ce Mac, chacun avec son interrupteur : installé ne veut pas dire voulu. Un agent coupé n’est proposé nulle part dans Emsai (nouvelles sessions, Auto, revues, débats, chat), mais ses sessions restent visibles dans l’île. Default agent est celui que lance New Branch et que Agent in Repo propose en premier. Aucun agent n’est obligatoire : Emsai fonctionne avec ceux que tu as installés et activés.
La ligne hooks de chaque agent (Install, puis Check) installe le plugin d’Emsai via la ligne de commande de l’agent lui-même, pour que ses sessions dans un terminal remontent aussi dans l’île. Antigravity en a besoin pour tourner dans la fenêtre : c’est par là qu’Emsai te demande avant que ses outils agissent.
Démarrer une session
New (⌘N) se fait en trois étapes :
- Le dépôt, dans une liste qui se resserre au fil de la frappe (↑ ↓ ↩), ou Other Folder…. Workspaces est juste à côté (⇥ ; voir plus bas).
- L’agent : Claude Code, Codex, Copilot ou Antigravity, ou Auto pour laisser Emsai choisir. L’agent démarre tout de suite, ton premier message n’attend pas.
- Ton idée. Tape-la et appuie sur ↩.
Le menu de branche sous le champ de message passe à une branche récente, en retrouve une par son nom, ou New Branch… en crée une : son nom, et la branche de départ (la branche distante par défaut proposée en premier, récupérée d’abord ; une locale ou une d’origin retrouvée par son nom), jamais suivie.
Réglages › Coding Agents › New sessions in Emsai Agents : Open sessions in décide où Agent in Repo, New Branch, Unfinished Work, Find Agent Session et le récap ouvrent une session (Emsai Agents ou un terminal ; ⌥↩ dans leurs listes prend l’autre). Start with reprend le modèle, l’effort et le mode de ta dernière session, ou des valeurs fixes que tu choisis.
La conversation
Tes messages, les réponses de l’agent en Markdown avec le code coloré (sélectionne à travers une réponse et copie, ou survole-la pour Copy, qui prend toute la réponse telle qu’affichée, ⌥-clic pour son Markdown ; un bloc de code a son propre Copy), et chaque outil sur une ligne : un clic montre le diff, la commande et sa sortie, ou le résultat. Les outils enchaînés se replient en une ligne (« 7 commands · 5 files edited · 3 created », les échecs en rouge).
Quand l’agent demande, une carte orange apparaît dans la conversation :
- Un outil à autoriser : son diff ou sa commande, avec Allow, Deny et le choix « toujours » que propose l’agent (pour Claude Code : Accept Edits This Session, Always Allow ou Allow This Folder). ↩ seul n’autorise rien : tu choisis d’abord avec ↑ ↓ ou son numéro.
- Une question : ses options, puis Answer (ou Skip).
- Un plan : Approve (qui sort du mode plan) ou Keep Planning.
Depuis l’île aussi. Quand tu es devant le Mac, ce que demande une session arrive aussi dans l’île : Allow, Deny ou Open pour un outil, la question à laquelle tu réponds sur place, Open pour un plan. Loin du Mac, tu reçois plutôt une notification « needs you ». Réponds à un endroit, l’autre s’efface.
Le champ de message
- ↩ envoie, ⇧↩ ajoute une ligne.
- @ marque ce dont parle le message : un fichier ou un dossier, un dépôt du workspace, un des sous-agents de Claude Code, ou un onglet de terminal (@terminal). ⇥ prend le premier proposé.
- / propose les commandes et skills de l’agent, tels qu’il les liste.
- ⌘V avec une image (une capture, une image copiée) la joint au message suivant. Claude Code, Codex et Copilot voient les images ; Antigravity ne prend que du texte.
- Messages en file : envoyé pendant que l’agent travaille, un message attend sous la conversation, grisé, et part à la fin du tour. ✕ le reprend ; ↑ dessus l’envoie tout de suite.
- Stop (ou Esc) arrête seulement le tour en cours : les messages en file suivent.
- Les menus sous le champ règlent le modèle, l’effort et la façon dont l’agent demande avant d’agir, chaque agent avec ses propres choix (pour Claude Code : Ask before acting, Accept edits, Auto, Plan first, Bypass permissions ; pour Codex : Ask before acting, Ask when needed, Auto in its sandbox, Auto with no sandbox).
- L’en-tête montre ce que la session a coûté depuis que tu l’as ouverte, au prix de l’API : une indication seulement, ton abonnement n’est pas facturé au token.
Auto : Emsai choisit l’agent
Avec au moins deux agents activés, Auto arrive en premier à l’étape de l’agent. Pour chaque message, Emsai choisit l’agent et le modèle selon la tâche (une question, un petit changement, du vrai travail, une revue, de l’infrastructure, classée sur ton Mac) et selon ce qui reste à chaque forfait. Un forfait à 95 % est écarté, et l’agent en cours reste quand un autre ne ferait pas clairement mieux.
Une ligne avant chaque réponse dit qui la prend et pourquoi. Le menu Auto du champ de message montre le dernier choix et te laisse choisir toi-même l’agent du prochain message. La tendance se règle dans Réglages › Coding Agents › Auto sessions lean, ou par session : Spare my plans, Balanced ou Best model. Quand l’agent change, le nouveau apprend ce qui s’est passé depuis sa dernière intervention.

Workspaces : plusieurs dépôts à la fois
Un workspace, c’est un nom et plusieurs dossiers, dépôts ou non, sans premier. Une session dedans travaille sur tous, et l’agent sait qu’il est dans un workspace avec ces dossiers. Crée-en un dans New Session › Workspaces › New Workspace… (Add Repository…, plusieurs à la fois, ou Add Folder…) ; un clic droit pour le modifier ou le supprimer. Réglages › Repositories les liste aussi, et Spotlight propose New Session in Workspace, Create Workspace et Add Folder to Workspace. Rien n’est écrit dans tes dossiers.
Dans un workspace, le panneau de droite montre les dépôts In Play : ceux que l’agent a touchés, ceux que tu as marqués, ceux que tu ouvres avec Open another repository…. Clique sur l’un pour ses changements, ses fichiers et son commit.

Des dépôts ajoutés à une seule session. Sans workspace, ⋯ › Add Repository… ajoute d’autres dépôts à cette session seulement (plusieurs à la fois), gardés avec elle quand tu la rouvres. L’agent peut les lire et les modifier, il l’apprend avec ton message suivant ; tu peux les marquer avec @, et le panneau de droite les liste avec leurs changements. Remove Repository en retire un. Dans une session de workspace, la même commande ajoute un dépôt extérieur au workspace, qui lui ne change pas.
Changements, commits et ton éditeur
- Commit : coche les changements qui partent (tous par défaut), écris un message ou laisse ✨ l’écrire depuis le diff, puis Commit, signé comme dans ton terminal.
- Push N Commits pousse vers la branche du même nom sur origin, jamais depuis main ou master : les changements y arrivent par une pull request.
- Stash met tous les changements de côté, nouveaux fichiers compris ; les stashs listés en dessous s’appliquent ou se suppriment.
- Rien de tout ça pendant que l’agent travaille.
- Fichiers en onglets : un fichier choisi à droite s’ouvre dans un onglet au-dessus de la session, lignes numérotées et colorées, et tu le modifies là. ⌘S (ou Save) le réécrit tel qu’il a été lu : un script reste exécutable, un fichier Latin-1 reste en Latin-1. Tant qu’il n’est pas enregistré, un point remplace le ✕ de l’onglet, et fermer l’onglet ou quitter te demande d’abord. Un fichier que l’agent modifie sur le disque suit dans l’onglet tant que tu n’y as rien changé ; sinon l’en-tête dit Changed on disk, avec Reload ou Keep Mine. ⌘F cherche dans le fichier (⌘G l’occurrence suivante). Un fichier Markdown s’ouvre mis en forme, Source à un clic. ⌘W ferme l’onglet, ⇧⌘T le rouvre.
- </> ouvre le dépôt et ses fichiers modifiés dans ton éditeur (Réglages › General › Code editor) ; l’onglet d’un fichier ouvre ce fichier-là.
Le terminal sous une session
⌃` (ou le bouton terminal) ouvre de vrais terminaux dans le dossier de la session, avec couleurs, complétion, vim ou top.
- Onglets : + ou ⌘T en ouvre un, ✕ ou ⌘W le ferme, ↺ relance son shell. Un onglet porte le nom de la commande qu’il exécute.
- zsh ou PowerShell : + te demande lequel pour chaque onglet. Le shell par défaut, celui de ⌘T et du premier onglet, se règle dans Réglages › Coding Agents › Terminal in Emsai Agents › Default shell, ou depuis Default Shell dans le menu +. PowerShell est proposé dès qu’il est installé.
- !commande dans le champ de message lance la commande dans ce terminal, en interactif (
sudopeut y demander ton mot de passe). L’agent n’en sait rien. - Marquer un terminal dans un message : @terminal (l’onglet affiché), @terminal-2 (l’onglet 2), ou le bouton @ du terminal. L’agent reçoit le texte que tu y as sélectionné ; sinon la commande en cours et sa sortie jusque-là ; sinon la dernière commande, son code de sortie et sa sortie. Pratique pour « corrige ce test qui échoue ».
Renommer, continuer ailleurs, fermer
- Rename… (clic droit sur une session de la liste) lui donne ton propre titre ; celui de l’agent ne le remplacera plus.
- Continue in a Terminal (menu ⋯, ou clic droit) arrête la session ici et reprend la même conversation dans un nouvel onglet de ton terminal.
- Les sessions qui tournent dans un terminal apparaissent dans la liste sous In a Terminal. Continue Here en reprend une dans la fenêtre une fois quittée dans son terminal ; tant qu’elle y tourne encore, Open Its Terminal t’emmène à son onglet.
- Close Session l’arrête ; elle reste dans les récentes.
Des questions auxquelles répondre depuis l’île
L’île affiche la question qui termine la réponse d’un agent, pour que tu répondes sans changer de fenêtre. Une question courte arrive avec ce qui a été dit juste avant. Emsai demande aussi à Claude Code et Codex, au début de chaque session, de finir par une question qui dit de quoi elle parle. Désactive-le dans Réglages › Coding Agents › Questions you can answer from the island. Pour Codex, approuve une fois le nouveau hook d’Emsai dans /hooks.
Un secret envoyé à un agent
Quand un token, une clé ou un mot de passe d’un format connu part vers un agent (collé dans un prompt, ou affiché par une commande comme cat .env), il est arrivé chez le fournisseur de l’agent : change-le. Emsai te prévient sans t’interrompre : une clé rouge attend dans l’île, repliée sous l’encoche, et ne l’ouvre jamais d’elle-même, même en call. Survole-la pour voir ce qui est parti et où, puis OK. Avec l’île désactivée, c’est une notification. Emsai ne stocke ni ne journalise jamais les valeurs.
Active-le ou coupe-le dans Réglages › Coding Agents › Secret alerts in Claude Code sessions. Il faut que Session notifications soit activé.
Les touches de la fenêtre
| Touche | Action |
|---|---|
| ⌘N | Nouvelle session |
| ⌘1 … ⌘9 | Les sessions ouvertes, dans l’ordre |
| ⌥⌘↓ / ⌥⌘↑ | Session suivante / précédente |
| ⌘L | Le champ de message |
| ⌘F | Chercher dans toutes les sessions ; dans l’onglet d’un fichier, chercher dans le fichier |
| ⌘S | Dans l’onglet d’un fichier, l’enregistrer |
| ⌃` | Le terminal |
| ⌥⌘0 | Le panneau des changements et fichiers |
| Esc | Refuser ce que demande l’agent, sinon arrêter son tour |
Pour faire relire la branche d’une session par les autres agents ou leur faire débattre d’une question, vois Revue et débat. Ce qui reste au forfait de chaque agent est dans Consommation des agents.