Ir al contenido

Plato

Plato pone el agente que ya usas dentro de la página del navegador: una vista junto a lo que esté abierto, donde hablas con Claude Code, Codex o cualquier comando que hable el Agent Client Protocol, y la página le entrega lo que hay en pantalla como contexto. El agente se ejecuta en la raíz, lee las mismas instrucciones y el mismo me.md que cualquier agente, y trabaja bajo el mismo contrato de roles. Activado por defecto (eidos plugin disable plato lo desactiva); la página del plugin nombra el agente con el que habla esta máquina.

Nada propio de eidosmd está en el circuito: ni modelo, ni clave, ni endpoint. Nada sale de la máquina salvo a través del agente que configuraste, bajo sus propios permisos.

  • Una vista Plato en la barra lateral auxiliar: una conversación con el agente, iniciada en la raíz con el primer mensaje y con EIDOS_ROOT definido.
  • Contexto sin pedirlo. Lo que la página tiene abierto viaja con cada mensaje: un Blueprint (plano) por título, id y archivo; una página de lienzo; la tabla de una colección y su filtro; una pestaña de ajustes; un documento de nivel superior. Se muestra en el compositor como un chip que puedes quitar para un mensaje o al que añadir un Blueprint, y el plugin se lo redacta al agente. El primer mensaje de una sesión lleva una nota fija: dónde está el agente, qué leer primero, que su trabajo es la carpeta raíz y nada fuera de ella, que la documentación es eidos standard y eidos instructions, y la persona.
  • La respuesta llega en streaming mientras el agente contesta. Sus llamadas a herramientas y los archivos que cambió se listan bajo la respuesta, y el lector y las tablas se refrescan como con cualquier cambio en disco. Un mensaje se puede detener.
  • Los permisos son del agente. Una petición de permiso que el agente plantea se muestra tal como el agente la redactó y se responde en la vista; nada se aprueba en tu nombre, y estás en la vista en cada mensaje. Las lecturas y escrituras de archivos del agente se responden solo dentro de la raíz.
  • El interrogatorio. /grill en la caja de mensaje (ofrecido mientras escribes la barra, con lo que vaya después como tu apertura) empieza una conversación en la que Plato cuestiona lo que está abierto: lee el Blueprint, o el Framework (el marco), y hace una pregunta cada vez sobre lo que el texto deja sin decir, sin responder nunca por ti. Solo pregunta lo que tu rol puede responder, en sus palabras y a su profundidad: el rol del usuario elegido como tú en Users, si no el de .eidos/me.md, con su contrato, y tu calibración de me.md cuando su rol es el mismo. Elegir un usuario de otro rol es ponerte en su lugar: Plato te interroga como ese usuario, solo por su rol. What did we find? la cierra con cada hueco, lo que dijiste y en qué parte del Blueprint va, con los huecos de otro rol aparte y el rol que decide cada uno, y ofrece escribirlos a través del permiso habitual del agente.
  • Un mensaje de commit para Git. Con el plugin Git activo, Summarize en Source control y cada guardado automático le piden a Plato un mensaje de commit de una línea. Responde en una sesión propia, que no se guarda en ninguna conversación, sin permitir ninguna edición ni herramienta; mientras el agente responde a una conversación, el guardado automático usa en su lugar un mensaje simple. Commit messages, en la página del plugin, redacta lo que se le pide, con los cambios detrás; vacío, una línea de asunto en imperativo de menos de 100 caracteres.
  • Plato: Focus Plato, en la paleta, muestra la vista y pone el cursor en su caja de mensaje.
  • Las conversaciones se comparten con la raíz, para que cualquiera en ella pueda abrir y continuar una, o son privadas. Una conversación que sigue después de que el agente se reinicia continúa en la sesión del propio agente, recargada con session/load de ACP donde el agente lo ofrece; si no, a una sesión nueva se le cuentan los turnos hasta entonces, y nada de más aparece en la conversación.

Plato no trae un agente: arranca el de tu equipo mediante el adaptador ACP de ese agente, que npx descarga la primera vez. Así que un equipo necesita tres cosas: Node.js (que da npx), la sesión iniciada del propio agente y un modelo que la cuenta pueda usar.

  • Codex inicia sesión con npx -y @openai/codex login (una cuenta de ChatGPT) o con una clave de OpenAI en OPENAI_API_KEY, que Plato pasa al adaptador cuando no hay otra sesión iniciada. Lee su modelo de ~/.codex/config.toml; una línea model = con un modelo que la cuenta no puede usar convierte cada respuesta en un error.
  • Claude Code inicia sesión con /login en claude (o npx -y @anthropic-ai/claude-code).

La barra bajo el agente, en la página del plugin, prueba el agente elegido, y elegir uno lo prueba: Node.js encontrado, el agente arrancado, con la sesión iniciada y respondiendo a un mensaje breve, cada paso marcado, con qué hacer en el paso que falló y Copiar detalles para enviarlo a quien te ayude. La prueba arranca un agente propio, así que no toca ninguna conversación en curso.

Plato responde como Plato: curioso, llano, un poco seco, aficionado a una buena pregunta y a una respuesta corta. Eso es una voz y nada más; el contrato de roles de me.md y las instrucciones deciden qué muestra y quién tiene una decisión. La página del plugin ofrece la voz de Plato, tu propio texto o ninguna.

  • .eidos/plugins/plato/local.yaml, privado: el agent (claude-code, codex o custom), command (el comando ACP que ejecutar; sin definir, el adaptador del agente nombrado a través de npx, descargado en el primer uso), persona_mode (plato, own, off) y persona (tu propio texto). Nunca en commit: el agente con el que hablas no viaja con la raíz.
  • .eidos/plugins/plato/settings.yaml: commit_prompt, lo que se le pide para el mensaje de commit de Git, compartido con todos en la raíz; y Plato como usuario (as_user, activo por defecto) con Plato actúa como (acts_as): el usuario con el que se firman los comentarios de Plato, por defecto un usuario Plato (@plato, un agente sin rol) que el plugin añade a los usuarios de la raíz la primera vez que hace falta. Elige otro usuario (por ejemplo, Sammy) y Plato firma como él; apágalo y Plato no comenta como nadie, sus comentarios rechazados. Desde un shell, eidos plugin set plato as_user off o eidos plugin set plato acts_as sammy.
  • .eidos/plugins/plato/conversations/<id>.yaml: una conversación compartida, en commit. .eidos/plugins/plato/local/conversations/<id>.yaml: una privada, que nunca sale de la máquina. Cada una guarda los mensajes, el contexto que llevó cada uno tal como se redactó, los archivos que cambió una respuesta y el id de sesión del agente.

No hay eidos plato: pedirle a la CLI que le pregunte a tu agente, desde tu agente, es un bucle sin nada dentro. La página es la única superficie para hablarle. Sus ajustes se escriben desde la terminal como los de cualquier plugin:

Ventana de terminal
eidos plugin set plato agent codex # the agent, private, in local.yaml
eidos plugin set plato command "my-agent --acp" # a command of your own that speaks ACP
eidos plugin set plato agent --unset # back to Claude Code, the default

Nada. Desactivado o sin configurar, no hay proceso, no se envía nada a ninguna parte, y la página del plugin dice cuál de los dos casos es.