Assistant IA¶
Un assistant intégré à l'éditeur qui pilote l'agent IA en ligne de commande que vous avez déjà installé — expliquer, refactoriser, corriger, écrire des tests, résumer, traduire et discuter, chaque modification proposée s'affichant comme un diff à examiner que vous appliquez volontairement.
Apportez votre propre agent¶
L'assistant ne demande pas de clé API et ne vous connecte à rien. Il exécute un agent CLI IA installé localement comme auxiliaire et diffuse sa sortie dans l'éditeur. L'authentification, votre abonnement et le choix du modèle appartiennent entièrement à cet outil.
- Aujourd'hui : Claude Code
(
claude) et Codex CLI (codex). Installez-en un et connectez-vous une fois (pour queclaudeoucodexfonctionne depuis un terminal) ; l'éditeur le détecte automatiquement. Gemini est proposé aussi, mais son intégration en ligne de commande n'est pas encore vérifiée. - La détection est automatique et non bloquante. L'éditeur sonde l'agent en arrière-plan juste après le démarrage — la fenêtre ne l'attend jamais. Pendant la sonde, Affichage → Chat IA est brièvement désactivé avec l'infobulle Détection du moteur d'IA… ; quelques secondes plus tard il s'active (agent trouvé) ou reste grisé avec une indication de ce qu'il faut installer.
L'agent est un programme séparé que vous installez
L'éditeur n'embarque ni ne télécharge aucun agent IA et n'envoie lui-même votre texte nulle part — la requête est faite par l'agent CLI que vous avez installé, avec son propre compte et sa propre connexion réseau. Si l'agent n'est pas installé ou connecté, les fonctions IA restent simplement désactivées et rien d'autre dans l'éditeur n'est affecté.
Prérequis¶
L'assistant a un seul prérequis strict : un agent CLI IA pris en charge,
installé et connecté, présent dans le PATH du système.
- Installez un agent pris en charge. Aujourd'hui, c'est
Claude Code (
claude) ou Codex CLI (codex). - Connectez-vous une fois. Lancez l'agent depuis un terminal et effectuez sa propre connexion, afin qu'il fonctionne ensuite sans intervention. L'éditeur ne demande ni ne stocke jamais de clé API — votre abonnement et votre connexion vivent entièrement dans cet outil.
- Vérifiez qu'il est dans le
PATH. Si l'éditeur ne peut pas le lancer, Affichage → Chat IA est grisé avec une infobulle explicative.
Le panneau Chat IA¶
Il n'y a pas de menu IA dédié — tout vit dans un panneau inférieur, basculé via Affichage → Chat IA. Si le panneau était ouvert à la dernière fermeture de l'éditeur, il se rouvre au prochain démarrage (une fois le moteur détecté).
De haut en bas, le panneau affiche :
- une liste Moteur (votre choix est mémorisé entre les sessions) et la case Autoriser la modification de fichiers (voir ci-dessous) ;
- une ligne d'état — le moteur détecté et sa version, une note de
sonde/progression, ou l'indication « installez et connectez-vous ». Après la
première réponse, elle nomme aussi le modèle réellement utilisé par
l'agent, p. ex.
Moteur : Claude (2.1.200) · claude-sonnet-5— cela vaut un coup d'œil, car c'est le modèle qui décide du coût d'une exécution (voir Choisir le modèle) ; - une fine barre d'activité avec un bouton Arrêter pendant que l'agent travaille ;
- la console — toute la conversation dans une seule vue ;
- une ligne d'aide listant les commandes disponibles sous forme de liens cliquables.
La console¶
La conversation fonctionne comme un terminal : l'historique au-dessus, et vous
tapez à la fin, après l'invite ›.
- Entrée envoie ; Maj+Entrée insère un saut de ligne, les invites multilignes fonctionnent donc.
- Cliquer ou taper n'importe où dans l'historique ramène le curseur à l'invite — l'historique est sélectionnable et copiable mais jamais modifiable.
- Échap annule la requête en cours ; quand rien ne tourne, il efface ce
que vous avez tapé après
›. Échap fonctionne quel que soit le focus dans le panneau. - Ctrl+A ne sélectionne que la question que vous êtes en train d'écrire : le caractère suivant la remplace donc ; si rien n'est tapé, c'est tout l'historique de la conversation qui est sélectionné, prêt à être copié.
- Haut et Bas rappellent vos questions précédentes, comme dans un shell. Haut sur la première ligne de ce que vous tapez remonte parmi vos questions antérieures ; Bas redescend, et dépasser la plus récente vous rend la ligne à moitié tapée par laquelle vous aviez commencé. À l'intérieur d'une invite multiligne, ces touches déplacent simplement le curseur entre ses lignes, et dès que vous modifiez une question rappelée elle devient votre nouveau brouillon. L'historique appartient au panneau et n'est pas conservé d'une session à l'autre.
- Pendant qu'une réponse arrive, la vue suit si vous êtes en bas ; remontez pour lire et elle reste en place. Une fois la réponse terminée, la vue la place délibérément : une réponse courte défile jusqu'en bas pour que vous la voyiez ainsi que l'invite en dessous, tandis qu'une longue aligne son en-tête Assistant sur le haut du panneau afin que vous lisiez depuis le début.
- Le Markdown de chaque réponse est rendu à part : les listes numérotées repartent donc de 1 à chaque fois au lieu de poursuivre la numérotation de la réponse précédente.
Commandes¶
Tapez une commande à l'invite, ou cliquez-la dans la ligne d'aide (les commandes à argument reçoivent une espace finale et attendent que vous terminiez la ligne) :
| Commande | Effet | Résultat |
|---|---|---|
.explain |
Expliquer le code sélectionné | réponse dans le chat |
.summarize |
Résumer le texte sélectionné | réponse dans le chat |
.refactor <how> |
Refactoriser selon l'instruction (p. ex. .refactor extract a helper) |
modification à examiner |
.fix |
Corriger le code sélectionné | modification à examiner |
.tests |
Écrire des tests unitaires pour la sélection | modification à examiner |
.translate <language> |
Traduire la sélection (p. ex. .translate German) |
modification à examiner |
.model <id> |
Épingler le modèle que cet éditeur demande (voir Choisir le modèle) | réponse immédiate, sans lancer l'agent |
Tout le reste est traité naturellement :
- Du texte libre est une question ouverte à l'agent, envoyée avec ce que vous avez à l'écran (voir ci-dessous).
- Une ligne commençant par
/est l'une des commandes propres à l'agent (comme/helpde Claude) et lui est transmise exactement telle que vous l'avez tapée — rien de l'éditeur n'y est ajouté, et aucun consentement n'est requis puisque rien de vôtre n'est envoyé. Cela vaut pour les moteurs dont le jeu de commandes a été vérifié — aujourd'hui Claude ; sur les autres, une ligne/est traitée comme une question ordinaire. - Un
.motinconnu n'est pas une erreur ; il est transmis comme invite.
Toutes les commandes de la CLI n'ont pas ici le même sens que dans son propre
terminal : certaines exigent une session interactive dont les exécutions de
l'éditeur ne disposent pas, d'autres portent sur des conversations que
l'éditeur gère déjà lui-même, et d'autres encore — comme /model — ne
survivent tout simplement pas à une requête. Si vous en envoyez une, l'éditeur
la transmet quand même et ajoute une courte note expliquant pourquoi elle
risque de ne pas faire ce que vous attendez. Chaque note n'apparaît qu'une fois
par session.
Le /model propre à l'agent ne persiste pas — utilisez .model
Chaque question relance l'agent, et une nouvelle exécution repart toujours
du modèle configuré dans votre CLI. /model … répond « Set model to … for
this session only », mais cette session s'achève avec la réponse : la
question suivante — même si elle poursuit la même conversation — repart sur
le modèle configuré. Utilisez plutôt .model <id> ; c'est la commande
propre à l'éditeur et elle épingle le modèle pour toutes les questions
suivantes. Voir Choisir le modèle.
La correspondance ignore la casse, et la ligne d'aide se réduit pendant la
frappe (.r → .refactor …).
Sélection ou document entier¶
Les commandes travaillent sur la sélection courante. Sans sélection, elles opèrent sur le document entier — et comme cela envoie tout le fichier à l'agent, l'éditeur demande d'abord : Aucune sélection. Envoyer le document entier « … » à Claude ? La question est posée une fois par document et par session d'éditeur ; refuser interrompt l'envoi et conserve votre saisie. La question peut être désactivée dans Préférences → Assistant IA, avec l'option Demander avant d'envoyer un document entier au moteur d'IA ; lorsqu'elle est désactivée, le document entier est envoyé sans demander.
Ce que l'assistant sait de votre document¶
L'agent lit les fichiers sur le disque. Livré à lui-même, il répondrait donc aux questions portant sur un fichier que vous avez modifié sans l'enregistrer à partir de l'ancien texte, et ne verrait pas du tout un document jamais enregistré. Une question libre lui dit donc ce que vous avez réellement ouvert :
- Enregistré, sans modification en attente — l'assistant se contente de nommer le fichier et laisse l'agent le lire. Rien ne quitte l'éditeur, donc rien n'est demandé.
- Modifications non enregistrées, ou document jamais enregistré — le texte courant part avec votre question. Les petits documents voyagent dans la question elle-même ; les plus gros sont écrits dans une copie temporaire vers laquelle l'agent est dirigé. La copie est supprimée dès la fin de l'échange.
- Avec un dossier ouvert — tout autre document ouvert comportant des modifications non enregistrées est inclus de la même façon, afin que l'agent voie le projet tel que vous le voyez et non tel qu'il a été enregistré la dernière fois.
Comme cela fait sortir du texte, l'éditeur demande d'abord — une fois par document et par session d'éditeur, et une seule fois pour toute la requête même lorsque plusieurs documents sont concernés : Le contenu actuel, non enregistré, de ces documents sera envoyé à Claude : …. Continuer ? Refuser abandonne la requête et conserve votre saisie.
Une sélection reste prioritaire en tant que ce que vous désignez : elle est envoyée comme Relevant selection à côté du document, et non à sa place.
En mode lecture seule par défaut, il est également indiqué à l'agent qu'il ne
peut pas modifier votre document et qu'une modification doit être proposée via
les commandes .refactor, .fix, .tests et .translate — celles-ci vous
montrent une comparaison.
Examiner et appliquer les modifications¶
Les commandes de modification ne réécrivent jamais votre texte en silence. Quand l'agent termine, une boîte d'examen s'ouvre avec un groupe de changements cochable et colorisé par modification — lignes supprimées en rouge, ajoutées en vert :
- décochez les changements dont vous ne voulez pas ;
- Appliquer remplace la sélection (ou le document entier, dans le cas sans sélection) par les seuls changements acceptés ;
- Abandonner laisse le tampon exactement tel qu'il était.
Les changements appliqués sont des éditions ordinaires : Ctrl+Z les annule
comme le reste. Le style de fins de ligne du fichier (CRLF/LF) est préservé.
Si l'agent refuse de faire une modification, son explication apparaît comme une
réponse normale du chat au lieu d'un faux diff.
Si vous avez continué d'éditer pendant que l'agent travaillait, l'éditeur ne colle jamais une modification périmée sur votre texte plus récent. Ce qu'il fait à la place dépend de ce qu'il peut encore affirmer avec certitude :
- votre frappe a déplacé la cible mais l'a laissée intacte → la modification est appliquée là où le texte se trouve maintenant ;
- la commande portait sur le document entier et celui-ci a changé depuis → la proposition est comparée à votre texte actuel et vous examinez ce diff, la réponse n'est donc pas perdue ;
- le texte d'origine a disparu, ou apparaît désormais à plusieurs endroits → l'éditeur refuse plutôt que de deviner, et vous invite à relancer la commande.
Les couleurs du diff suivent votre thème de couleurs : les thèmes peuvent définir des couleurs dédiées Texte ajouté (diff) / Texte supprimé (diff) (modifiables dans Préférences → Coloration syntaxique → Thèmes) ; à défaut, l'éditeur choisit des valeurs lisibles pour les interfaces claires et sombres.
Conversations¶
Les questions libres forment une conversation continue : l'agent se
souvient de vos questions et réponses précédentes. Il y a une conversation par
dossier ouvert (ou par fichier, quand aucun dossier n'est ouvert), les projets
sans rapport ne partagent donc pas de contexte. Les commandes de modification
(.refactor, .fix, …) s'exécutent volontairement en un coup et ne polluent
pas le contexte du chat. Les conversations ne sont pas conservées — redémarrer
l'éditeur en démarre de nouvelles.
Claude et Codex poursuivent tous deux les conversations. Codex nomme lui-même
chaque conversation et en annonce le nom au démarrage ; les questions suivantes
la reprennent à partir de là. Si une exécution de Codex se termine sans en
annoncer un, le chat affiche [impossible de poursuivre la conversation — le
moteur n'a annoncé aucun identifiant de session ; le prochain message en
démarrera une nouvelle] — la réponse obtenue reste valable, mais votre
question suivante démarre une nouvelle conversation, sans le contexte
précédent.
Une conversation survit aussi à ce qui tourne mal. Arrêter une réponse ne la détruit pas : une question interrompue peut simplement être reprise — demandez « continue la tâche précédente » et l'agent sait encore ce qu'il faisait, même si vous l'avez arrêté avant qu'il ait dit un mot. Un échec ponctuel (une limite de débit, une connexion coupée) ne jette pas non plus l'historique ; seul un second échec consécutif démarre une nouvelle conversation.
Arrêter une exécution¶
Pendant que l'agent travaille, une barre d'activité apparaît avec un bouton
Arrêter — cliquez-le (ou appuyez sur Échap n'importe où dans le panneau)
pour annuler. Ce qui était déjà arrivé reste dans la conversation, l'exécution
est marquée [Annulé] et aucune modification n'est appliquée. La
conversation est conservée : votre question suivante la poursuit (voir
Conversations). Appuyer sur Entrée en cours d'exécution ne met
rien en file ; la ligne d'état rappelle que l'agent travaille encore.
Autoriser l'agent à modifier des fichiers¶
Par défaut, l'assistant est en lecture seule : chaque exécution lance l'agent avec ses outils de modification de fichiers, l'accès au shell et les sous-agents désactivés, si bien que les changements ne vous parviennent que comme propositions à examiner. Pour les moteurs aux drapeaux de permission vérifiés, c'est un blocage dur imposé par l'agent lui-même, quelle que soit la configuration de votre CLI :
- Claude s'exécute avec ses outils de modification de fichiers, l'accès au shell et les sous-agents désactivés.
- Codex s'exécute dans son bac à sable en lecture seule
(
-s read-only). Ce bac à sable fonctionne autrement : il ne désactive pas les commandes shell, il les confine — Codex peut toujours lancer des commandes pour explorer, mais elles ne peuvent rien écrire. Pour l'instant, l'éditeur demande en outre explicitement à Codex de rester en lecture.
La lecture seule n'est pas garantie pour tous les moteurs
Le blocage dur repose sur les drapeaux de permission du moteur. Gemini n'a pas encore de drapeaux vérifiés : l'éditeur ne peut que lui demander — en instruction de principe — de rester en lecture ; il ne peut pas l'imposer. Considérez la lecture seule comme non garantie pour Gemini : il peut toujours écrire sur le disque, et son comportement dépend en dernier ressort de la configuration de votre CLI. Gardez ce type de travail dans un dossier sous contrôle de version si cela compte pour vous.
La case Autoriser la modification de fichiers (à côté de la liste des moteurs, décochée par défaut, mémorisée entre les sessions) active l'édition côté agent :
- les modifications de fichiers de l'agent sont acceptées automatiquement et il peut modifier des fichiers du dossier ouvert pendant une exécution ;
- chaque écriture est signalée dans la conversation par
[the agent modified a file: …], et les documents ouverts récupèrent les changements via la surveillance de fichiers normale de l'éditeur ; - à la fin de l'exécution, une ligne de résumé unique liste l'ensemble des
fichiers touchés avec un compteur, p. ex.
[modified files (3): …]; - l'accès au shell et les sous-agents de Claude restent bloqués même avec l'option activée.
Avec Codex, l'option fait passer son bac à sable à -s workspace-write :
Codex peut alors modifier des fichiers, et lancer des commandes shell, dans le
dossier ouvert et le répertoire temporaire. Codex ne signale pas ses
modifications à l'éditeur, si bien que le chat ne liste pas les fichiers
qu'il a modifiés et qu'il n'y a pas de ligne de résumé ; les documents
ouverts récupèrent tout de même les changements via la surveillance de
fichiers. Les écritures elles-mêmes sont effectuées par le bac à sable propre
à Codex : si Codex répond qu'il n'a pas pu démarrer son exécuteur de
commandes, ce bac à sable ne fonctionne pas sur votre machine — consultez ses
propres diagnostics (codex doctor), pas l'éditeur.
Le même interrupteur figure aussi dans Préférences → Assistant IA, sous le nom Autoriser le moteur d'IA à modifier des fichiers. Il s'agit d'un seul réglage, pas de deux : l'appliquer dans les Préférences coche ou décoche aussitôt la case du panneau, et ce que vous réglez dans le panneau est ce que les Préférences affichent à leur prochaine ouverture.
Les documents comportant des modifications non enregistrées sont pris en charge pour vous. L'agent ne doit pas modifier le fichier sur le disque d'un document que vous avez changé sans l'enregistrer — cette copie est périmée, et y écrire ferait diverger le fichier et votre éditeur. L'agent reçoit donc la copie temporaire de votre texte courant à modifier, et à la fin de l'exécution l'éditeur ramène le résultat dans votre document ouvert sous la forme d'une édition ordinaire, annulable. Les documents jamais enregistrés fonctionnent de la même façon, bien qu'ils n'aient aucun fichier. Si vous avez justement modifié le document vous-même pendant que l'agent travaillait, l'éditeur ne vous écrase pas : il ouvre la boîte d'examen habituelle face à votre texte actuel, pour que vous décidiez changement par changement. Fermer le document pendant l'exécution abandonne simplement le travail de l'agent, avec une note dans la conversation.
« Autoriser la modification de fichiers » peut écraser ou supprimer votre travail
Avec l'option activée, l'agent écrit directement sur le disque et ces écritures sont acceptées automatiquement — il n'y a pas de boîte d'examen par changement. L'agent peut écraser, supprimer ou corrompre des fichiers du dossier ouvert, et les modifications de fichiers que vous n'avez pas ouverts ne vous sont pas montrées en diff. N'activez cela que pour un dossier sous contrôle de version (Git, SVN, …) : committez ou remisez d'abord votre travail, puis inspectez chaque changement avec le diff du VCS et annulez l'indésirable — considérez le contrôle de version comme votre « annuler » pour les modifications de l'agent. Gemini, dont les drapeaux de permission ne sont pas encore vérifiés, ignore totalement cette option : ses modifications ne dépendent que de la configuration de votre CLI.
Changer de moteur¶
Au démarrage, l'éditeur recherche chaque moteur qu'il connaît, et la liste Moteur ne propose que ceux installés sur cette machine. Si le moteur choisi la dernière fois n'est plus là, le premier moteur installé prend automatiquement sa place. Un moteur installé pendant que l'éditeur tourne apparaît après un redémarrage. Si aucun moteur n'est installé, la liste propose tous les moteurs que l'éditeur connaît, et le panneau reste grisé avec l'indication d'installer l'agent et de s'y connecter.
Choisissez à tout moment un autre agent dans la liste Moteur (désactivée pendant une exécution active). Le changement annule la détection du moteur précédent, sonde le nouveau en arrière-plan et démarre des conversations neuves — un chat commencé avec un moteur ne peut pas être poursuivi par un autre. Le changement efface aussi la transcription, puisque cette conversation appartenait à l'autre moteur ; ce que vous aviez tapé dans l'invite est conservé.
Choisir le modèle¶
Par défaut, l'éditeur n'impose aucun modèle : chaque exécution utilise donc
celui pour lequel votre agent CLI est configuré — pour Claude Code, le model
de votre ~/.claude/settings.json personnel. Ce n'est souvent pas ce que
l'on veut pour l'éditeur : c'est une préférence globale, elle peut changer sans
que vous le remarquiez, et le modèle détermine le coût de chaque requête.
La ligne d'état vous dit ce qui a réellement été utilisé, vous pouvez donc toujours vérifier. Pour fixer un modèle pour l'éditeur lui-même, tapez-le dans le chat :
| Vous tapez | Ce qui se passe |
|---|---|
.model claude-sonnet-5 |
chaque question suivante demande ce modèle |
.model |
indique le modèle épinglé et le dernier modèle réellement utilisé |
.model default |
retire l'épinglage ; le modèle par défaut de l'agent s'applique de nouveau |
.model est traitée par l'éditeur lui-même — elle ne lance jamais l'agent, la
réponse est donc immédiate et ne coûte rien. Un épinglage prend effet dès votre
question suivante, et la ligne d'état le confirme une fois la réponse
arrivée.
La même chose peut se régler à la main, par moteur, dans le fichier de réglages d'OctoEdit :
| Clé | Valeur | Effet |
|---|---|---|
ai/model/<engine> |
un identifiant de modèle, p. ex. claude-sonnet-5 |
chaque exécution utilise ce modèle |
ai/model/<engine> |
vide / absente (défaut) | le modèle par défaut de l'agent CLI |
<engine> est l'identifiant du moteur tel qu'il apparaît dans la liste, en
minuscules — p. ex. ai/model/claude ou ai/model/codex. Effectif dès la
requête suivante du panneau ; confirmez-le ensuite dans la ligne d'état.
Gemini, dont l'option de modèle n'est pas encore vérifiée, ignore ce réglage.
Réglage avancé apparenté
ai/programPath/<engine> fait la même chose pour l'exécutable :
indiquez un chemin absolu quand l'agent est installé là où la recherche
PATH de l'éditeur ne le voit pas. Ces deux clés sont délibérément des
portes de sortie réservées au fichier de réglages — une valeur erronée
échoue bruyamment au lieu d'être ignorée en silence.
Quand une exécution échoue¶
Si l'agent se termine sur une erreur, le chat affiche [agent exited with code
N suivi des propres lignes d'erreur de l'agent et d'un ] final — pour Codex,
sa bannière de démarrage et ses lignes ERROR: …, comme le
401 Unauthorized que vous obtenez quand vous n'êtes pas connecté. Cela suffit
généralement pour comprendre ce qui n'a pas fonctionné ; lancer une fois
l'agent depuis un terminal vous dira le reste.
Le journal de l'éditeur (mte.log, voir
Journalisation & diagnostics) consigne chaque
exécution dans des lignes commençant par AI: — les moteurs trouvés, le
programme et les arguments de chaque exécution, son code de sortie et les
dernières lignes d'erreur de l'agent quand une exécution échoue ; démarrer
l'éditeur avec --log=debug ajoute le reste de la sortie de diagnostic de
l'agent. Votre question et la réponse n'apparaissent jamais dans le message
d'erreur et ne sont jamais écrites dans le journal : celui-ci n'indique que la
taille de la question en octets.
Confidentialité et coût¶
Les requêtes sont envoyées par l'agent CLI que vous avez choisi, avec son propre compte et sa propre connexion réseau — l'éditeur n'ajoute ni télémétrie ni points de terminaison séparés. (Codex répète tout l'échange dans sa sortie de diagnostic ; l'éditeur écarte cette copie et ne l'écrit jamais dans son journal.) Ce qui est envoyé (votre instruction, votre sélection ou votre document, ainsi que le texte non enregistré des documents ouverts lorsqu'une question l'exige) et ce que cela coûte relèvent de l'abonnement ou du forfait de cet agent. Rien ne quitte l'éditeur sans la demande de consentement décrite plus haut, et la ligne d'état nomme le modèle réellement utilisé par chaque requête.
Ce qui est livré aujourd'hui
Les commandes travaillent sur la sélection courante (ou le document entier, avec consentement) et, une fois acceptées, la remplacent. Il y a deux niveaux d'autorité : le flux propositions uniquement en lecture seule ci-dessus, ou l'option explicite Autoriser la modification de fichiers. Il n'y a pas d'examen séparé dans l'éditeur des écritures disque de l'agent — avec Autoriser la modification de fichiers activé, fiez-vous à votre contrôle de version.