Documentação

Referência da CLI

Ollaya é um único binário: a CLI, o servidor e os executores de modelos. Se você já usou o Ollama, os comandos vão parecer familiares.

Comando O que faz
ollaya serve Inicia o servidor em 127.0.0.1:11435
ollaya run MODEL [STATE] Responde perguntas sobre um estado, ou abre um prompt; baixa e carrega o modelo conforme necessário
ollaya pull MODEL Baixa um modelo do registro
ollaya list (ls) Lista os modelos desta máquina
ollaya ps Lista os modelos carregados na memória
ollaya show MODEL Mostra os detalhes, as capacidades e a licença de um modelo
ollaya stop MODEL Descarrega um modelo em execução
ollaya stop Para o servidor que a CLI iniciou
ollaya mcp [--http [ADDR]] Serve os modelos para agentes de IA via MCP (Agents)
ollaya rm MODEL… Remove um ou mais modelos
ollaya cp SOURCE DESTINATION Copia um modelo com um novo nome
ollaya create NAME [-f Modelfile] Cria um modelo a partir de um Modelfile
ollaya update [--check] Instala a versão mais recente por cima desta
ollaya -v Imprime a versão do servidor (e do cliente)

Todos os comandos, exceto serve e update, conversam com o servidor em OLLAYA_HOST. Quando nada responde ali e o endereço é local, a CLI (exceto ollaya stop sem modelo) inicia ollaya serve em segundo plano, registrando em ~/.ollaya/logs/server.log (ou server.log em OLLAYA_LOG_DIR).

Nomes de modelos

Os modelos são referenciados como name:tag; sem tag, latest é usado. Os nomes não diferenciam maiúsculas de minúsculas.

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

Um modelo como laya:en carrega um grafo fp16 e um fp32 que compartilham um mesmo arquivo de pesos. A precisão é escolhida quando o modelo carrega: fp16 em uma GPU CUDA, fp32 na CPU. As tags -fp16 e -fp32 fixam uma delas.

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 ao servidor (iniciando-o se necessário), baixa o modelo se ele não estiver nesta máquina, carrega-o e imprime uma linha por pergunta: a resposta, uma barra e a sua probabilidade.

Flag Efeito
--preset NAME Usa um preset: integrado (triage, email, guard, moderation, router ou agent) ou um que você salvou com ollaya preset create
--questions FILE|@FILE|JSON Usa estas perguntas (id da pergunta → pergunta), substituindo as do próprio modelo: um caminho de arquivo, @file (@- para stdin), ou JSON embutido começando com {
--format text|json text (padrão) imprime a tabela; json imprime a resposta completa de /api/decide
--keepalive DURATION Por quanto tempo manter o modelo carregado depois: 5m, 1h, 0 (descarregar agora), -1 (manter carregado)
--verbose Também imprime a probabilidade de cada opção, a decisão de roteamento e os tempos
--state-json Interpreta o estado como JSON. Um estado que parece um objeto ou array JSON é detectado de qualquer forma
--image FILE Uma imagem PNG sobre a qual decidir, para um modelo de visão (decider:2b-vision). Ela acompanha todo estado, inclusive no REPL

De onde vêm as perguntas, a primeira correspondência vence: --questions, depois --preset, depois as perguntas embutidas no modelo (as do qwen3guard, ou as adicionadas com um Modelfile), depois o preset triage. Quando run recorre a triage, ele avisa em stderr.

--questions também aceita o JSON direto na linha de comando, como o curl -d: um valor que começa com { é JSON embutido, e qualquer outra coisa é um caminho de arquivo. @file é sempre um arquivo (útil se um nome de arquivo começar com {), e @- lê as perguntas da stdin, caso em que o estado vai na linha de comando:

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 @- "..."

O estado é o resto da linha de comando. Sem um, run lê a stdin canalizada:

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

Em um terminal sem um estado, run abre um prompt. Digite um estado e pressione Enter; envolva várias linhas em """. Comandos:

Comando Efeito
/preset NAME Muda para um conjunto de perguntas integrado
/set questions FILE Usa as perguntas de um arquivo JSON
/show Mostra o modelo e as perguntas atuais
/clear Limpa a tela
/bye Sai (ou Ctrl+D)
/?, /help Ajuda

ollaya serve

Inicia o servidor com o qual a CLI e os seus aplicativos conversam. Ele serve a API nativa (/api/*) e a API compatível com a TypeSafe (/v1/*); veja a referência da API. O instalador do Linux o executa como o serviço systemd ollaya.

ollaya serve

Você raramente precisa dele: os outros comandos iniciam o servidor em segundo plano quando ele não está rodando. Se um servidor já roda em OLLAYA_HOST, ollaya serve avisa e sai; pare esse primeiro com ollaya stop para rodar o servidor em primeiro plano.

Ele é configurado com variáveis de ambiente:

Variável Padrão Efeito
OLLAYA_HOST 127.0.0.1:11435 Endereço para escutar; o alvo da CLI
OLLAYA_MODELS ~/.ollaya/models Repositório de modelos
OLLAYA_KEEP_ALIVE 5m Por quanto tempo um modelo fica carregado após a última requisição
OLLAYA_MAX_LOADED_MODELS 3 Modelos mantidos carregados ao mesmo tempo
OLLAYA_MAX_QUEUE 512 Requisições de decisão em andamento antes de 503 QUEUE_FULL
OLLAYA_LOAD_TIMEOUT 5m Quanto tempo um modelo pode levar para carregar
OLLAYA_DEVICE auto auto (uma GPU NVIDIA quando o instalador adicionou as bibliotecas CUDA, senão a CPU), cpu, cuda ou cuda:<n>
OLLAYA_API_KEY não definido Exige Authorization: Bearer <key>; a CLI também o envia
OLLAYA_ORIGINS não definido Origens de navegador extras permitidas, separadas por vírgula
OLLAYA_REGISTRY ollaya.dev Host de registro padrão nos nomes de modelos
OLLAYA_LOG info Níveis de log; debug registra cada requisição com o seu status e duração
OLLAYA_LOG_DIR não definido Registra em <dir>/server.log em vez de stderr (criado se faltar; acrescentado, nunca rotacionado)

Para o serviço systemd, altere-as com sudo systemctl edit ollaya e linhas Environment=.

ollaya pull

Baixa um modelo e verifica cada camada pelo seu sha256. Baixar um roteador também baixa cada modelo para o qual ele roteia. Só as camadas de que esta máquina precisa são baixadas, e downloads interrompidos retomam.

ollaya pull laya

ollaya list e ollaya ps

list mostra os modelos desta máquina com o seu ID, tamanho e quando foram baixados. ps mostra os modelos carregados, o dispositivo em que rodam (cpu, cuda:0), a precisão e quando serão descarregados.

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 a arquitetura de um modelo, os parâmetros, o comprimento de contexto, as precisões, os idiomas, as capacidades e a licença. Para um roteador, imprime as rotas.

Flag Imprime apenas
--questions As perguntas embutidas no modelo
--license A licença
--modelfile Um Modelfile que recria o modelo
--parameters Os parâmetros, como uma precisão fixada

ollaya stop

ollaya stop MODEL descarrega um modelo em execução assim que as suas requisições em andamento terminam, em vez de esperar o keep-alive acabar.

ollaya stop sem modelo para o servidor em OLLAYA_HOST, o que descarrega todos os modelos. Ele só para um servidor que você iniciou, com ollaya serve ou rodando outro comando. Ele nunca para o servidor de outro usuário, como o serviço systemd do Linux; pare esse com sudo systemctl stop ollaya.

ollaya rm e ollaya cp

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

rm também exclui os blobs que nenhum outro modelo usa. Remover um roteador mantém os modelos para os quais ele roteia. cp sobrescreve um destino existente.

ollaya preset

Um preset é um conjunto de perguntas nomeado que você pode reutilizar com qualquer modelo: ollaya run MODEL --preset NAME, ou "preset": "NAME" em /api/decide. Seis são integrados. Salve os seus:

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 Efeito
ollaya preset list Presets integrados e personalizados, com os seus ids de perguntas
ollaya preset show NAME As perguntas de um preset, como JSON
ollaya preset create NAME --questions FILE|@FILE|JSON [--description TEXT] Salva um preset personalizado, substituindo um de mesmo nome. --questions aceita as mesmas formas que em ollaya run
ollaya preset rm NAME... Exclui presets personalizados. Presets integrados não podem ser excluídos

Os nomes são letras minúsculas, dígitos, - e _. Os presets personalizados são armazenados pelo servidor (em presets/ ao lado dos modelos), então a CLI, a API e o servidor MCP todos os veem. Um preset difere de um modelo feito com o QUESTIONS de um Modelfile: ele não é vinculado a um modelo e não copia nada.

ollaya update

Instala a versão mais recente por cima desta: ele roda o script de instalação de novo no mesmo prefixo, então os modelos, os presets e o serviço systemd ficam como estão.

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

Um binário que veio com o aplicativo de desktop (o app do macOS, o instalador do Windows, um AppImage, ou os pacotes .deb e .rpm) é atualizado instalando o novo aplicativo, e um contêiner baixando a nova imagem; ollaya update avisa isso em vez de alterá-lo.

ollaya create

Constrói um modelo a partir de um Modelfile, por exemplo para embutir um conjunto de perguntas, uma calibração reajustada ou uma precisão fixada. -f tem como padrão ./Modelfile.

ollaya create triage -f Modelfile