Asistente de IA¶
Un asistente dentro del editor que maneja el agente de IA de línea de comandos que ya tienes instalado: explicar, refactorizar, corregir, escribir pruebas, resumir, traducir y conversar, con cada edición propuesta mostrada como un diff revisable que aplicas a conciencia.
Trae tu propio agente¶
El asistente no te pide una clave de API ni te registra en nada. En su lugar ejecuta como ayudante un agente de IA de línea de comandos instalado localmente y vuelca su salida en el editor. La autenticación, tu suscripción y la elección del modelo pertenecen todas a esa herramienta.
- Hoy: Claude Code (
claude) y Codex CLI (codex). Instala uno de ellos e inicia sesión una vez (de modo queclaudeocodexfuncione desde un terminal); el editor lo detecta automáticamente. También se ofrece Gemini, pero su integración de línea de comandos aún no está verificada. - La detección es automática y no bloquea. El editor sondea el agente en segundo plano justo después de arrancar; la ventana nunca lo espera. Mientras el sondeo se ejecuta, Ver → Chat de IA queda brevemente desactivado con la descripción emergente Detectando el motor de IA…; unos segundos después o bien se activa (agente encontrado) o se queda atenuado con una pista que te dice qué instalar.
El agente es un programa aparte que instalas tú
El editor no incluye ni descarga ningún agente de IA, y tampoco envía tu texto a ningún sitio por su cuenta: es el agente de línea de comandos que instalaste el que hace la petición con su propia cuenta y su propia conexión de red. Si el agente no está instalado o no ha iniciado sesión, las funciones de IA simplemente se quedan desactivadas y nada más del editor se ve afectado.
Requisitos¶
El asistente tiene un requisito imprescindible: un agente de IA de línea de
comandos admitido, instalado y con sesión iniciada, en el PATH de tu
sistema.
- Instala un agente admitido. Hoy es
Claude Code (
claude) o Codex CLI (codex). - Inicia sesión una vez. Ejecuta el agente desde un terminal y completa su propio inicio de sesión, para que después funcione sin interacción. El editor nunca pide ni almacena una clave de API: tu suscripción y tu sesión viven enteramente en esa herramienta.
- Asegúrate de que está en tu
PATH. Si el editor no puede ejecutarlo, Ver → Chat de IA aparece atenuado con una descripción emergente explicativa.
El panel Chat de IA¶
No hay un menú de IA de primer nivel: todo vive en un único panel inferior, que se activa desde Ver → Chat de IA. Si el panel estaba abierto la última vez que cerraste el editor, se vuelve a abrir en el siguiente arranque (una vez detectado el motor).
De arriba abajo, el panel muestra:
- un desplegable Motor (tu elección se recuerda entre sesiones) y la casilla Permitir ediciones de archivos (ver más abajo);
- una línea de estado: el motor detectado y su versión, una nota de sondeo o
progreso, o la pista de «instala e inicia sesión». Tras la primera respuesta
nombra además el modelo que el agente ha usado realmente, p. ej.
Engine: Claude (2.1.200) · claude-sonnet-5—merece un vistazo, ya que el modelo decide lo que te cuesta cada ejecución (consulta Elegir el modelo); - una fina barra de actividad con un botón Detener mientras el agente trabaja;
- la consola: toda la conversación en una sola vista;
- una línea de pistas que lista los comandos disponibles como enlaces en los que se puede hacer clic.
La consola¶
La conversación funciona como un terminal: el historial arriba, y tú escribes
al final, después del indicador ›.
- Intro envía; Shift+Intro inserta un salto de línea, así que las peticiones de varias líneas funcionan.
- Hacer clic o escribir en cualquier punto del historial devuelve el cursor al indicador: el historial se puede seleccionar y copiar, pero nunca editar.
- Esc cancela la petición en curso; cuando no hay nada en marcha, borra lo
que hayas escrito tras
›. Esc funciona con el foco en cualquier parte del panel. - Ctrl+A selecciona solo la pregunta que estás redactando, de modo que lo siguiente que escribas la sustituya; sin nada escrito, selecciona en cambio toda la transcripción, lista para copiar.
- Arriba y Abajo recuperan lo que preguntaste antes, como hace un intérprete de comandos. Arriba en la primera línea de lo que estás escribiendo retrocede por tus preguntas anteriores; Abajo avanza de nuevo, y pasar de la más reciente te devuelve la línea a medio escribir de la que partiste. Dentro de una petición de varias líneas simplemente se mueven entre sus líneas, y en cuanto editas una pregunta recuperada esta se convierte en tu nuevo borrador. El historial es por panel y no se conserva entre sesiones.
- Mientras una respuesta llega en flujo, la vista la acompaña si estás abajo del todo; desplázate hacia arriba para leer y se queda quieta. Cuando la respuesta está completa, la vista la coloca a conciencia: una respuesta corta se desplaza hasta el final para que la veas junto con el indicador de abajo, mientras que una larga alinea su encabezado Asistente con la parte superior del panel para que puedas leer desde el principio.
- El Markdown de cada respuesta se representa por su cuenta, así que las listas numeradas empiezan en 1 siempre, en lugar de continuar la numeración de la respuesta anterior.
Comandos¶
Escribe un comando en el indicador, o haz clic en él en la línea de pistas (los comandos que llevan un argumento reciben un espacio al final y esperan a que termines la línea):
| Comando | Qué hace | Resultado |
|---|---|---|
.explain |
Explica el código seleccionado | respuesta en el chat |
.summarize |
Resume el texto seleccionado | respuesta en el chat |
.refactor <how> |
Refactoriza según lo indicado (p. ej. .refactor extract a helper) |
edición revisable |
.fix |
Corrige el código seleccionado | edición revisable |
.tests |
Escribe pruebas unitarias para la selección | edición revisable |
.translate <language> |
Traduce la selección (p. ej. .translate German) |
edición revisable |
.model <id> |
Fija el modelo que este editor pide (consulta Elegir el modelo) | respuesta instantánea, sin ejecutar el agente |
Cualquier otra cosa que escribas se trata con naturalidad:
- El texto simple es una pregunta libre al agente, enviada junto con lo que tienes en pantalla (ver más abajo).
- Una línea que empieza por
/es uno de los comandos propios del agente (como el/helpde Claude) y se reenvía exactamente como se ha escrito: no se le añade nada del editor y no hace falta consentimiento porque no se envía nada tuyo. Esto se aplica a los motores cuyo conjunto de comandos se ha verificado —hoy, Claude—; en los demás, una línea con/se trata como una pregunta corriente. - Un
.palabrano reconocido no es un error: se envía tal cual como petición.
No todos los comandos de la línea de comandos significan aquí lo mismo que en el
propio terminal del agente: algunos necesitan una sesión interactiva que las
ejecuciones del editor no tienen, otros afectan a conversaciones que el editor ya
gestiona por su cuenta, y otros —como /model— sencillamente no pueden
sobrevivir a una única petición. Cuando envías uno de esos, el editor lo reenvía
igualmente y añade una nota breve que explica por qué puede que no haga lo que
esperas. Verás cada nota una vez por sesión.
El /model propio del agente no puede perdurar: usa .model
Cada pregunta ejecuta el agente de nuevo, y una ejecución nueva siempre parte
del modelo que tu herramienta de línea de comandos tenga configurado.
/model … responde «Modelo fijado en … solo para esta sesión», pero esa
sesión termina en el mismo momento que la respuesta: la siguiente pregunta
—incluso una que continúe la misma conversación— vuelve al modelo
configurado. Usa .model <id> en su lugar; es un comando del propio
editor y fija el modelo para todas las preguntas posteriores. Consulta
Elegir el modelo.
La coincidencia no distingue mayúsculas de minúsculas, y la línea de pistas se
acota mientras escribes (.r → .refactor …).
Selección o documento entero¶
Los comandos actúan sobre la selección actual. Sin selección, actúan sobre el documento entero; y como eso envía el archivo completo al agente, el editor pregunta primero: ¿Enviar el documento entero «…» a Claude? Se te pregunta una vez por documento y por sesión del editor; rechazar cancela el envío y conserva lo que habías escrito. La pregunta se puede desactivar en Preferencias → Asistente de IA, con la opción Preguntar antes de enviar un documento entero al motor de IA; con ella desactivada, el documento entero se envía sin preguntar.
Qué sabe el asistente de tu documento¶
El agente lee los archivos del disco. Por su cuenta, por tanto, respondería a preguntas sobre un archivo que has editado pero no guardado usando el texto antiguo, y no vería en absoluto un búfer sin título. Por eso una pregunta libre le cuenta lo que realmente tienes abierto:
- Guardado y sin cambios pendientes — el asistente se limita a nombrar el archivo y deja que el agente lo lea. Nada sale del editor, así que no se pregunta nada.
- Con cambios sin guardar, o un documento nunca guardado — el texto actual se envía junto con tu pregunta. Los documentos pequeños viajan en la propia pregunta; los más grandes se escriben en una copia temporal a la que se apunta al agente. La copia se borra en cuanto termina el intercambio.
- Con una carpeta abierta — todos los demás documentos abiertos con cambios sin guardar se incluyen de la misma forma, de modo que el agente vea el proyecto como lo ves tú y no como se guardó por última vez.
Como eso envía texto fuera, el editor pregunta primero —una vez por documento y por sesión del editor, y una sola vez para toda la petición aunque haya varios documentos implicados—: Se enviará a Claude el contenido actual, sin guardar, de estos documentos: …. ¿Continuar? Rechazar abandona la petición y conserva lo que habías escrito.
Una selección sigue teniendo prioridad como aquello a lo que estás apuntando: se envía como Selección relevante junto al documento, no en lugar de él.
En el modo de solo lectura predeterminado se le dice además al agente que no
puede cambiar tu documento y que un cambio debe proponerse a través de los
comandos .refactor, .fix, .tests y .translate, que sí te muestran un
diff.
Revisar y aplicar ediciones¶
Los comandos de edición nunca reescriben tu texto en silencio. Cuando el agente termina, se abre un diálogo de revisión con un grupo de cambios marcable y coloreado por cada modificación: líneas eliminadas en rojo, líneas añadidas en verde.
- desmarca los cambios que no quieras;
- Aplicar sustituye la selección (o el documento entero, en el caso sin selección) solo por los cambios aceptados;
- Descartar deja el búfer exactamente como estaba.
Los cambios aplicados son ediciones corrientes, así que Ctrl+Z los deshace como
cualquier otra cosa. El estilo de fin de línea de tu archivo (CRLF/LF) se
conserva. Si el agente se niega a hacer una edición, su explicación aparece como
una respuesta normal del chat en lugar de como un diff falso.
Si has seguido editando mientras el agente trabajaba, el editor nunca empalma un cambio obsoleto sobre tu texto más reciente. Lo que hace en su lugar depende de lo que aún pueda saber con certeza:
- lo que escribiste movió el objetivo pero lo dejó intacto → el cambio se aplica donde el texto está ahora;
- el comando abarcaba todo el documento y el documento ha cambiado desde entonces → la propuesta se compara con tu texto actual y revisas ese diff, de modo que la respuesta no se desperdicia;
- el texto original ha desaparecido, o ahora aparece varias veces → el editor se abstiene en vez de adivinar, y te dice que vuelvas a ejecutar el comando.
Los colores del diff siguen tu tema de color: los temas pueden definir colores dedicados de Texto añadido en el diff / Texto eliminado en el diff (editables en Preferencias → Coloreado de sintaxis → Temas), y sin ellos el editor elige valores predeterminados legibles para interfaces claras y oscuras.
Conversaciones¶
Las preguntas libres forman una conversación continua: el agente recuerda tus
preguntas y respuestas anteriores. Hay una conversación por carpeta abierta (o
por archivo, cuando no hay ninguna carpeta abierta), de modo que proyectos sin
relación no comparten contexto. Los comandos de edición (.refactor, .fix, …)
se ejecutan a propósito de una sola vez y no contaminan el contexto del chat. Las
conversaciones no se conservan: reiniciar el editor empieza conversaciones
nuevas.
Tanto Claude como Codex continúan las conversaciones. Codex pone nombre a cada
conversación por su cuenta y lo anuncia al empezar; las preguntas posteriores
la retoman a partir de ahí. Si una ejecución de Codex termina sin anunciar
ninguno, el chat muestra [no se pudo continuar la conversación — el motor no
indicó ningún identificador de sesión; el siguiente mensaje iniciará una
nueva]: la respuesta que recibiste sigue siendo válida, pero tu siguiente
pregunta empieza una conversación nueva, sin el contexto anterior.
Una conversación sobrevive además a lo que sale mal. Detener una respuesta la conserva, así que una pregunta que interrumpiste puede retomarse sin más: pide «continúa con la última tarea» y el agente todavía sabe qué estaba haciendo, aunque lo hayas detenido antes de que dijera una palabra. Un fallo puntual (un límite de tasa, una conexión caída) tampoco tira el historial; solo un segundo fallo seguido inicia una conversación nueva.
Detener una ejecución¶
Mientras el agente trabaja aparece una barra de actividad con un botón
Detener: haz clic en él (o pulsa Esc en cualquier punto del panel) para
cancelar. Todo lo que hubiera llegado en flujo hasta entonces se queda en la
transcripción, la ejecución se marca como [Cancelada] y no se aplica ninguna
edición. La conversación se conserva, así que tu siguiente pregunta la continúa
(consulta Conversaciones). Pulsar Intro en mitad de una
ejecución no encola nada; la línea de estado te recuerda que el agente sigue
trabajando.
Dejar que el agente edite archivos¶
De forma predeterminada el asistente es de solo lectura: cada ejecución lanza el agente con sus herramientas de edición de archivos, su acceso al intérprete de comandos y sus subagentes desactivados, de modo que los cambios te llegan solo como propuestas revisables. En los motores con indicadores de permisos verificados este es un bloqueo duro impuesto por el propio agente, sea cual sea la configuración de tu herramienta de línea de comandos:
- Claude se ejecuta con sus herramientas de edición de archivos, su acceso al intérprete de comandos y sus subagentes desactivados.
- Codex se ejecuta en su entorno aislado de solo lectura
(
-s read-only). Ese entorno aislado funciona de otra manera: no desactiva los comandos del intérprete, los confina; Codex puede seguir ejecutando comandos para echar un vistazo, pero no pueden escribir nada. Por ahora el editor, además, le pide a Codex expresamente que se mantenga en solo lectura.
El modo de solo lectura no está garantizado en todos los motores
El bloqueo duro depende de los propios indicadores de permisos del motor. Gemini aún no tiene indicadores verificados, así que el editor solo puede pedirle —como instrucción, en la medida de lo posible— que se mantenga en solo lectura; no puede obligarlo. Trata el modo de solo lectura como no garantizado en Gemini: aún puede escribir en el disco, y su comportamiento lo rige en último término la configuración de tu propia herramienta de línea de comandos. Si eso te importa, mantén ese trabajo en una carpeta bajo control de versiones.
La casilla Permitir ediciones de archivos (junto al desplegable de motor, desactivada de forma predeterminada, recordada entre sesiones) habilita la edición por parte del agente:
- las ediciones de archivos del agente se aceptan automáticamente y puede modificar archivos de la carpeta abierta durante una ejecución;
- cada escritura se informa en la conversación como
[el agente modificó un archivo: …], y los documentos abiertos recogen los cambios a través de la vigilancia de archivos normal del editor; - cuando la ejecución termina, una única línea de resumen lista el conjunto
completo de archivos tocados con un recuento, p. ej.
[archivos modificados (3): …]; - el acceso de Claude al intérprete de comandos y sus subagentes siguen bloqueados incluso con la opción activada.
Con Codex, la opción cambia su entorno aislado a -s workspace-write:
Codex puede entonces editar archivos, y ejecutar comandos del intérprete, dentro
de la carpeta abierta y del directorio temporal. Codex no le comunica sus
ediciones al editor, así que el chat no lista los archivos que ha cambiado y
no hay línea de resumen; los documentos abiertos recogen igualmente los cambios
a través de la vigilancia de archivos. Las escrituras en sí las lleva a cabo el
propio entorno aislado de Codex: si Codex responde que no pudo iniciar su
ejecutor de comandos, ese entorno aislado no funciona en tu equipo; revisa sus
propios diagnósticos (codex doctor), no el editor.
El mismo interruptor está también en Preferencias → Asistente de IA, como Permitir que el motor de IA edite archivos. Son un único ajuste, no dos: aplicarlo en Preferencias marca o desmarca la casilla del panel al instante, y lo que pongas en el panel es lo que muestra Preferencias la próxima vez que la abras.
Los documentos con cambios sin guardar se gestionan por ti. El agente no debe editar el archivo del disco correspondiente a un documento que has cambiado pero no guardado: esa copia está desfasada, y escribir en ella dejaría el archivo y tu editor en desacuerdo. Por eso se le da al agente la copia temporal de tu texto actual para que la edite, y cuando la ejecución termina el editor devuelve el resultado a tu documento abierto como una edición corriente y reversible. Los documentos sin título funcionan igual, aunque no tengan archivo alguno. Si diera la casualidad de que editaste el documento tú mismo mientras el agente trabajaba, el editor no te sobrescribe: abre el diálogo de revisión habitual contra tu texto actual para que decidas cambio a cambio. Cerrar el documento durante la ejecución simplemente descarta el trabajo del agente, con una nota en la conversación.
Permitir ediciones de archivos puede sobrescribir o borrar tu trabajo
Con la opción activada, el agente escribe directamente en el disco y esas escrituras se aceptan automáticamente: no hay un diálogo de revisión por cambio. El agente puede sobrescribir, borrar o corromper archivos de la carpeta abierta, y las ediciones de archivos que no tengas abiertos no se te muestran como diffs. Activa esto únicamente para una carpeta bajo control de versiones (Git, SVN, …): confirma o guarda tu trabajo primero y usa después el diff del control de versiones para inspeccionar cada cambio y revertir lo que no quieras; trata el control de versiones como tu deshacer para las ediciones del agente. Gemini, cuyos indicadores de permisos aún no están verificados, ignora esta opción por completo, así que sus ediciones las rige únicamente la configuración de tu propia herramienta de línea de comandos.
Cambiar de motor¶
Al arrancar, el editor busca todos los motores que conoce, y el desplegable Motor muestra solo los que están instalados en este equipo. Si el motor que elegiste la última vez ya no está, el primero instalado ocupa su lugar automáticamente. Un motor que instales mientras el editor está abierto aparece tras un reinicio. Si no hay ningún motor instalado, el desplegable muestra todos los motores que conoce el editor y el panel sigue atenuado con la pista de instalar e iniciar sesión.
Elige otro agente en el desplegable Motor cuando quieras (está desactivado mientras hay una ejecución en curso). Cambiar cancela la detección del motor anterior, sondea el nuevo en segundo plano e inicia conversaciones nuevas: un chat empezado con un motor no lo puede continuar otro. Cambiar también vacía la transcripción, porque esa conversación pertenecía al otro motor; lo que hubieras escrito en la línea de entrada se conserva.
Elegir el modelo¶
De forma predeterminada el editor no pide ningún modelo, así que cada ejecución
usa el que tu agente de línea de comandos tenga configurado; en Claude Code, el
model de tu ~/.claude/settings.json personal. A menudo eso no es lo que
quieres para el editor: es una preferencia global, puede cambiar sin que te des
cuenta y el modelo decide lo que cuesta cada petición.
La línea de estado te dice qué se ha usado realmente, así que siempre puedes comprobarlo. Para fijar un modelo para el propio editor, escríbelo en el chat:
| Escribes | Qué pasa |
|---|---|
.model claude-sonnet-5 |
todas las preguntas posteriores piden ese modelo |
.model |
informa del modelo fijado y del modelo usado realmente la última vez |
.model default |
quita la fijación; vuelve a aplicarse el valor predeterminado del propio agente |
De .model se encarga el editor: nunca lanza el agente, así que responde al
instante y no cuesta nada. Una fijación surte efecto a partir de tu siguiente
pregunta, y la línea de estado lo confirma cuando llega la respuesta.
Lo mismo se puede establecer a mano, por motor, en el archivo de ajustes de OctoEdit:
| Clave | Valor | Efecto |
|---|---|---|
ai/model/<engine> |
un id de modelo, p. ej. claude-sonnet-5 |
todas las ejecuciones usan ese modelo |
ai/model/<engine> |
vacío / ausente (predeterminado) | el valor predeterminado del propio agente de línea de comandos |
<engine> es el id del motor tal como aparece en el desplegable, en minúsculas,
p. ej. ai/model/claude o ai/model/codex. Hace falta que el panel lance su
siguiente petición para que surta efecto; confírmalo después en la línea de
estado. Gemini, cuyo indicador de modelo aún no está verificado, ignora el
ajuste.
Ajuste avanzado relacionado
ai/programPath/<engine> hace lo mismo con el binario: dale una ruta
absoluta cuando el agente esté instalado en un sitio donde la búsqueda por
PATH del editor no llega. Ambas claves son, a propósito, válvulas de escape
solo por archivo: un valor equivocado falla de forma ruidosa en vez de
ignorarse en silencio.
Cuando una ejecución falla¶
Si el agente termina con un error, el chat muestra [agent exited with code N
seguido de las propias líneas de error del agente y un ] de cierre; en el
caso de Codex, su banner de arranque y sus líneas ERROR: …, como el
401 Unauthorized que obtienes cuando no has iniciado sesión. Normalmente
basta con eso para saber qué ha fallado; ejecutar el agente una vez desde un
terminal te dice el resto.
El registro del editor (mte.log, consulta
Registro y diagnóstico) anota cada ejecución en
líneas que empiezan por AI:: qué motores se encontraron, el programa y los
argumentos de cada ejecución, su código de salida y las últimas líneas de error
del agente cuando una ejecución falla; arrancar el editor con --log=debug
añade el resto de la salida de diagnóstico del agente. Tu pregunta y la
respuesta nunca aparecen en el mensaje de error ni se escriben en el registro:
el registro solo indica el tamaño de la pregunta en bytes.
Privacidad y coste¶
Las peticiones las envía el agente de línea de comandos que hayas elegido, con su propia cuenta y su propia conexión de red; el editor no añade telemetría ni puntos de conexión propios. (Codex repite todo el intercambio en su salida de diagnóstico; el editor descarta esa copia y nunca la escribe en su registro.) Lo que se envía (tu instrucción, tu selección o tu documento, y el texto sin guardar de los documentos abiertos cuando una pregunta lo necesita) y lo que cuesta los rige la suscripción o el plan de ese agente. Nada sale del editor sin el aviso de consentimiento descrito arriba, y la línea de estado nombra el modelo que cada petición usó realmente.
Qué se incluye hoy
Los comandos actúan sobre la selección actual (o sobre el documento entero, con consentimiento) y, cuando se aceptan, la sustituyen. Hay dos niveles de autoridad: el flujo de solo lectura que solo propone, descrito arriba, o la adhesión explícita mediante Permitir ediciones de archivos. No existe una revisión aparte, dentro del editor, de las ediciones que el propio agente hace en el disco: con Permitir ediciones de archivos activado, confía en tu control de versiones. La única excepción es un documento abierto con cambios sin guardar, cuyas ediciones vuelven a través del editor.