Documentación

Referencia de la CLI

Ollaya es un único binario: la CLI, el servidor y los ejecutores de modelos. Si has usado Ollama, los comandos te resultarán familiares.

Comando Qué hace
ollaya serve Inicia el servidor en 127.0.0.1:11435
ollaya run MODEL [STATE] Responde preguntas sobre un estado, o abre un prompt; descarga y carga el modelo según haga falta
ollaya pull MODEL Descarga un modelo desde el registry
ollaya list (ls) Lista los modelos de esta máquina
ollaya ps Lista los modelos cargados en memoria
ollaya show MODEL Muestra los detalles, las capacidades y la licencia de un modelo
ollaya stop MODEL Descarga de la memoria un modelo en ejecución
ollaya stop Detiene el servidor que inició la CLI
ollaya mcp [--http [ADDR]] Sirve los modelos a agentes de IA por MCP (Agents)
ollaya rm MODEL… Elimina uno o varios modelos
ollaya cp SOURCE DESTINATION Copia un modelo con un nombre nuevo
ollaya create NAME [-f Modelfile] Crea un modelo a partir de un Modelfile
ollaya update [--check] Instala la última versión sobre esta
ollaya -v Imprime la versión del servidor (y la del cliente)

Todos los comandos salvo serve y update se comunican con el servidor en OLLAYA_HOST. Cuando allí no responde nada y la dirección es local, la CLI (excepto ollaya stop sin modelo) inicia ollaya serve en segundo plano y registra en ~/.ollaya/logs/server.log (o server.log dentro de OLLAYA_LOG_DIR).

Nombres de modelos

Los modelos se referencian como name:tag; si no hay tag, se usa latest. Los nombres no distinguen mayúsculas de minúsculas.

ollaya run laya                 # same as laya:latest, a router
ollaya run laya:multilingual
ollaya pull laya:en-fp32

Un modelo como laya:en incluye un grafo fp16 y otro fp32 que comparten un mismo archivo de pesos. La precisión se elige al cargar el modelo: fp16 en una GPU CUDA y fp32 en la CPU. Las etiquetas -fp16 y -fp32 fijan una de las dos.

ollaya run

ollaya run laya --preset triage "Your app crashed during checkout and I was charged twice. Please refund one of the charges."

run se conecta al servidor (lo inicia si hace falta), descarga el modelo si no está en esta máquina, lo carga e imprime una fila por pregunta: la respuesta, una barra y su probabilidad.

Flag Efecto
--preset NAME Usa un preset: uno integrado (triage, email, guard, moderation, router o agent) o uno que hayas guardado con ollaya preset create
--questions FILE|@FILE|JSON Usa estas preguntas (id de pregunta → pregunta), sobrescribiendo las del propio modelo: una ruta de archivo, @file (@- para stdin) o JSON en línea que empieza por {
--format text|json text (predeterminado) imprime la tabla; json imprime la respuesta completa de /api/decide
--keepalive DURATION Cuánto tiempo mantener cargado el modelo después: 5m, 1h, 0 (descargar de la memoria ahora), -1 (mantener cargado)
--verbose Imprime también la probabilidad de cada opción, la decisión de enrutamiento y los tiempos
--state-json Analiza el estado como JSON. Un estado que parece un objeto o un array JSON se detecta de todos modos
--image FILE Una imagen PNG sobre la que decidir, para un modelo de visión (decider:2b-vision). Acompaña a cada estado, también en el REPL

Las preguntas pueden venir de varios sitios; gana la primera coincidencia: --questions, luego --preset, luego las preguntas integradas en el modelo (las de qwen3guard, o las añadidas con un Modelfile) y, por último, el preset triage. Cuando run recurre a triage, lo indica en stderr.

--questions también acepta el JSON directamente en la línea de comandos, como hace curl -d: un valor que empieza por { es JSON en línea y cualquier otra cosa es una ruta de archivo. @file siempre es un archivo (útil si el nombre de un archivo empieza por {), y @- lee las preguntas de stdin, en cuyo caso el estado va en la línea de comandos:

ollaya run winnow:e4b --questions '{"topic":{"type":"choice","criteria":["billing","access","other"]}}' "..."
ollaya run winnow:e4b --questions @questions.json "..."
cat questions.json | ollaya run winnow:e4b --questions @- "..."

El estado es el resto de la línea de comandos. Sin uno, run lee lo que llega por stdin:

cat ticket.txt | ollaya run laya --preset triage

En un terminal y sin estado, run abre un prompt. Escribe un estado y pulsa Enter; para varias líneas, enciérralas en """. Comandos:

Comando Efecto
/preset NAME Cambia a un conjunto de preguntas integrado
/set questions FILE Usa las preguntas de un archivo JSON
/show Muestra el modelo y las preguntas actuales
/clear Limpia la pantalla
/bye Sale (o Ctrl+D)
/?, /help Ayuda

ollaya serve

Inicia el servidor con el que se comunican la CLI y tus aplicaciones. Sirve la API nativa (/api/*) y la API compatible con TypeSafe (/v1/*); consulta la Referencia de la API. El instalador de Linux lo ejecuta como el servicio systemd ollaya.

ollaya serve

Rara vez lo necesitas: los otros comandos inician el servidor en segundo plano cuando no está en ejecución. Si ya hay un servidor en OLLAYA_HOST, ollaya serve lo dice y sale; detén ese primero con ollaya stop para ejecutar el servidor en primer plano.

Se configura con variables de entorno:

Variable Valor predeterminado Efecto
OLLAYA_HOST 127.0.0.1:11435 Dirección de enlace; el destino de la CLI
OLLAYA_MODELS ~/.ollaya/models Almacén de modelos
OLLAYA_KEEP_ALIVE 5m Cuánto tiempo permanece cargado un modelo tras su última solicitud
OLLAYA_MAX_LOADED_MODELS 3 Modelos que se mantienen cargados a la vez
OLLAYA_MAX_QUEUE 512 Solicitudes de decisión en curso antes de 503 QUEUE_FULL
OLLAYA_LOAD_TIMEOUT 5m Cuánto puede tardar un modelo en cargarse
OLLAYA_DEVICE auto auto (una GPU NVIDIA si el instalador añadió las bibliotecas CUDA; si no, la CPU), cpu, cuda o cuda:<n>
OLLAYA_API_KEY sin definir Exige Authorization: Bearer <key>; la CLI también la envía
OLLAYA_ORIGINS sin definir Orígenes de navegador adicionales permitidos, separados por comas
OLLAYA_REGISTRY ollaya.dev Host del registry predeterminado en los nombres de modelos
OLLAYA_LOG info Niveles de registro; debug registra cada solicitud con su estado y su duración
OLLAYA_LOG_DIR sin definir Registra en <dir>/server.log en lugar de stderr (se crea si falta; se añade al final, nunca se rota)

Para el servicio systemd, cámbialas con sudo systemctl edit ollaya y líneas Environment=.

ollaya pull

Descarga un modelo y verifica cada capa con su sha256. Descargar un router también descarga todos los modelos a los que enruta. Solo se descargan las capas que necesita esta máquina, y las descargas interrumpidas se reanudan.

ollaya pull laya

ollaya list y ollaya ps

list muestra los modelos de esta máquina con su ID, su tamaño y cuándo se descargaron. ps muestra los modelos cargados, el dispositivo en el que se ejecutan (cpu, cuda:0), la precisión y cuándo se descargarán de la memoria.

NAME                ID             SIZE     MODIFIED
laya:latest         b87ca1631b11   11 KB    13 seconds ago
laya:multilingual   ba7a334675b4   684 MB   13 seconds ago
laya:en             bf30e4654e94   854 MB   30 seconds ago

ollaya show

Imprime la arquitectura de un modelo, sus parámetros, la longitud de contexto, las precisiones, los idiomas, las capacidades y la licencia. Para un router, imprime las rutas.

Flag Imprime solo
--questions Las preguntas integradas en el modelo
--license La licencia
--modelfile Un Modelfile que recrea el modelo
--parameters Los parámetros, como una precisión fijada

ollaya stop

ollaya stop MODEL descarga de la memoria un modelo en ejecución en cuanto terminan sus solicitudes en curso, en lugar de esperar a que se agote el keep-alive.

ollaya stop sin modelo detiene el servidor en OLLAYA_HOST, lo que descarga de la memoria todos los modelos. Solo detiene un servidor que hayas iniciado tú, con ollaya serve o ejecutando otro comando. Nunca detiene el servidor de otro usuario, como el servicio systemd de Linux; detén ese con sudo systemctl stop ollaya.

ollaya rm y ollaya cp

ollaya cp laya:en my-guardrail
ollaya rm my-guardrail

rm también elimina los blobs que ningún otro modelo usa. Eliminar un router conserva los modelos a los que enruta. cp sobrescribe un destino existente.

ollaya preset

Un preset es un conjunto de preguntas con nombre que puedes reutilizar con cualquier modelo: ollaya run MODEL --preset NAME, o "preset": "NAME" en /api/decide. Hay seis integrados. Guarda el tuyo:

ollaya preset create billing-check --questions billing.json --description "Billing, and how upset the customer is"
ollaya run winnow:e4b --preset billing-check "I was charged twice this month."
Comando Efecto
ollaya preset list Presets integrados y personalizados, con sus ids de pregunta
ollaya preset show NAME Las preguntas de un preset, en JSON
ollaya preset create NAME --questions FILE|@FILE|JSON [--description TEXT] Guarda un preset personalizado, reemplazando uno con el mismo nombre. --questions acepta las mismas formas que en ollaya run
ollaya preset rm NAME... Elimina presets personalizados. Los presets integrados no se pueden eliminar

Los nombres son letras minúsculas, dígitos, - y _. El servidor guarda los presets personalizados (en presets/, junto a los modelos), así que la CLI, la API y el servidor MCP los ven todos. Un preset se diferencia de un modelo hecho con el QUESTIONS de un Modelfile: no está atado a un solo modelo y no copia nada.

ollaya update

Instala la última versión sobre esta: vuelve a ejecutar el script de instalación en el mismo prefijo, así que los modelos, los presets y el servicio systemd se quedan como están.

ollaya update --check   # only say whether a newer release exists
ollaya update

Un binario que vino con la aplicación de escritorio (la app de macOS, el instalador de Windows, un AppImage, o los paquetes .deb y .rpm) se actualiza instalando la nueva app, y un contenedor descargando la nueva imagen; ollaya update lo dice en lugar de modificarlo.

ollaya create

Construye un modelo a partir de un Modelfile, por ejemplo para incorporar un conjunto de preguntas, una calibración reajustada o una precisión fijada. -f es ./Modelfile de forma predeterminada.

ollaya create triage -f Modelfile