Ir al contenido

Referencia CLI

Para qué sirve. Con el binario eyas arrancas, paras y diagnosticas una instalación nativa o en contenedor, y conmutas módulos. No es un segundo producto — el mismo proceso, el mismo EYAS_HOME. En cuanto bin/ está en el PATH (instalador nativo) o estás dentro de la imagen (docker compose exec), estos comandos se aplican.

  • Arrancar en primer plano (serve) para ver los logs, o en segundo plano (start + pidfile).
  • doctor antes de un informe de error: una CLI que falta, qué binario de Claude Code corre y si tiene la sesión iniciada, si cada CLI de IA instalada es una versión que la comprobación de aislamiento de EYAS ya ha demostrado, si su home de EYAS está intacto, si el sandbox de archivos del kernel de las CLIs está disponible, dónde está el vault, qué embedder de memoria usa el recall, raíces de importación omitidas, puerto ocupado, dist de docs/web.
  • Conmutar un módulo sin editar YAML a mano.
  • Buscar una versión más nueva en GitHub (familia eyas update, el mismo servicio que Ajustes → Actualizaciones).
  1. Instala en nativo o con Docker.
  2. eyas doctor — corrige lo que señale.
  3. eyas serve (primer plano) o eyas start (segundo plano). Confirma con eyas status.
  4. Tras editar YAML, eyas config validate y luego eyas restart: default.yaml y local.yaml se leen una sola vez al arrancar.
  5. eyas stop / eyas restart según haga falta.
ComandoDescripción
eyas serveServidor HTTP en primer plano
eyas startEn segundo plano (pidfile + log)
eyas stopParar el proceso en segundo plano
eyas restartReiniciar
eyas statusHealth + PID
eyas doctorDiagnóstico
eyas versionVersión
eyas config validateValidar YAML
eyas config reloadNo recarga default.yaml / local.yaml — reinicia en su lugar
eyas module listListar módulos
eyas module enable/disable <id>Conmutar un módulo
eyas update checkBuscar en GitHub (eyssen/eyas) una versión más nueva; para aplicarla, la copia de seguridad debe estar lista
eyas migrate …Migración única v1→v2 de prompts/workspace (run / rollback / drop-cols) — no es operación diaria

Qué comprueba doctor

Cada línea es ok (✓), un aviso (⚠) o un fallo (✗). Doctor termina con el número de problemas o avisos, y sale con estado 1 si alguna línea falló; los avisos por sí solos no cambian el estado de salida. Solo lee: no repara, no copia ni crea nada, y arranca las CLIs instaladas solo para leer su versión (--version) y, en Claude Code, si tiene la sesión iniciada (claude auth status).

Una selección de sus líneas:

LíneaSignificado
Claude Code runtimeQué binario de Claude Code ejecuta EYAS: el origen (EYAS_CLAUDE_CODE_BIN / claude on PATH / SDK-bundled), su ruta y versión, si su versión difiere de aquella para la que se construyó el cliente SDK de EYAS (version skew) y signed in sí/no. Un EYAS_CLAUDE_CODE_BIN inválido es un fallo. El último recurso incluido en el SDK, el desfase de versión y un runtime sin sesión iniciada son avisos. Un claude en el PATH que el override tapa se muestra como información (not used by EYAS). Ver Proveedores — Runtime de Claude Code.
CLI isolation (Claude Code), CLI isolation (Grok CLI), CLI isolation (Kimi Code CLI)Una línea por proveedor CLI. Muestra el binario que ejecuta EYAS — cómo se encontró (EYAS_CLAUDE_CODE_BIN / EYAS_GROK_BIN / EYAS_KIMI_BIN, claude on PATH / grok on PATH / kimi on PATH, o SDK-bundled), su ruta y su versión — y si la comprobación de aislamiento de EYAS previa a cada versión ha demostrado esa versión: ok isolation proven on this version (<fecha>). Avisa cuando la versión difiere de la última demostrada, cuando el binario no informa de ninguna versión y cuando la CLI nunca se ha demostrado en un equipo (por ahora, Kimi Code CLI); el aviso añade que EYAS sigue comprobando cada sesión al arrancar. Una CLI que no está instalada muestra not installed (ok). Un EYAS_*_BIN inválido es un fallo, con el remedio. Para Grok CLI y Kimi Code CLI, la línea también comprueba su home de EYAS, <data dir>/cli-homes/<proveedor> — ver la tabla siguiente. Las últimas versiones demostradas, y cómo: Seguridad y privacidad — Cómo se demuestra el aislamiento.
CLI sandboxEl modo de security.cliSandbox y, para cada CLI instalada (Claude Code, Grok CLI, Kimi Code CLI), si sus propias herramientas se ejecutan en el sandbox de archivos del kernel: active, unavailable con el motivo y el remedio (instalar bubblewrap; instalar socat — Claude Code lo necesita junto a bubblewrap; permitir los user namespaces sin privilegios, también en un contenedor), o none para Kimi, que no tiene sandbox del kernel. Un sandbox ausente es un aviso, no un fallo: con auto la CLI se ejecuta sin él, con required sus turnos con herramientas se rechazan. Ver Proveedores — Sandbox de archivos del kernel.
VaultLa ruta del vault de memoria, <data dir>/vault (ok). Avisa cuando unas notas de un antiguo <EYAS home>/data/vault se van a copiar en el siguiente arranque y — con un remedio — cuando esa carpeta antigua ya no se usa porque el vault del directorio de datos ya tiene notas. Doctor nunca copia nada por sí mismo. Ver Configuración — Directorio de datos y vault.
SQLiteUn autotest en vivo sobre una base de datos temporal en memoria — tu archivo de datos no se abre nunca. Informa de la versión de SQLite, de si está FTS5 (sin él es un fallo: la búsqueda de memoria, de conversaciones y del vault lo necesitan) y de si carga la extensión sqlite-vec, insertando de verdad una fila y lanzando una consulta de vecino más cercano en vez de limitarse a preguntar la versión. Que falte la extensión es un aviso, con el remedio para tu plataforma, no un fallo.
Import rootsSi skills.importRoots / agent.importRoots se pueden usar: ok cuando no hay nada configurado o cada raíz es una carpeta normal; un aviso que nombra el ajuste y la carpeta cuando una raíz está dentro de, o contiene, las carpetas propias de otro asistente o app de notas (~/.claude, ~/.grok, una bóveda de Obsidian, …) y por eso no se escanea. Ver Configuración — Raíces adicionales de skills y personas.
Memory embedderQué embedder usa el recall de memoria. Ok: multilingual-e5-small, local (weights in <carpeta>) cuando @huggingface/transformers está instalado y los pesos están en data/models. Aviso: el embedder hash de raíces (stem5-fnv-384) porque @huggingface/transformers no está instalado — remedio: ejecuta bun add @huggingface/transformers (o bun install) en la carpeta de EYAS y reinicia. Aviso: el paquete está instalado pero los pesos aún no se han descargado — el siguiente arranque los descarga (unos 130 MB) de Hugging Face a data/models, y hasta entonces el recall usa el embedder de reserva. Ver Memoria — La búsqueda vectorial siempre corre en local.
zstdQué implementación de compresión usará el registro en bruto: la nativa de Bun, la de Node (22.15 o posterior) o el fallback WASM incluido. El fallback es un aviso — funciona y es unas dos veces más lento. No tener ninguna implementación es un fallo, y entonces EYAS no graba nada en vez de llenar un búfer que nunca podrá escribir.

La comprobación del home de EYAS en las líneas CLI isolation (Grok CLI) y CLI isolation (Kimi Code CLI):

Lo que doctor encuentra en <data dir>/cli-homes/<proveedor>Resultado
Aún no se ha creadook — la primera ejecución lo crea
Un enlace simbólico, o algo que no es una carpetafallo — EYAS se niega a ejecutar la CLI desde ahí. Remedio: elimínalo; la siguiente ejecución lo vuelve a crear
Una carpeta que otros usuarios pueden leeraviso — contiene el inicio de sesión de la CLI. Remedio: chmod 700 <carpeta>
Un archivo que EYAS gestiona ahí falta o ha cambiado desde que EYAS lo escribió (Grok: config.toml, requirements.toml, trusted_folders.toml; Kimi: mcp.json y los ajustes de EYAS en config.toml)aviso — EYAS reescribe esos archivos antes de la siguiente ejecución, así que un cambio entre ejecuciones significa que otra cosa edita esa carpeta
Todo tal como lo escribió EYASok — EYAS home and managed files intact

Entorno

EYAS_PORT, EYAS_HOST, EYAS_HOME, EYAS_DATA_DIR, EYAS_WORKSPACES_DIR, EYAS_CLAUDE_CODE_BIN, EYAS_GROK_BIN, EYAS_KIMI_BIN, EYAS_INSTALL_ROOT, EYAS_SKIP_WEB_BUILD, EYAS_SKIP_DOCS_BUILD, EYAS_FORCE_WEB_BUILD, EYAS_FORCE_DOCS_BUILD. Qué hacen las variables de rutas y de runtime: Configuración.

El puerto por defecto es 3100. Con EYAS_SKIP_DOCS_BUILD=1, /docs devuelve 404 — ver FAQ.