Referencia completa de configuración
Todas las claves que acepta ~/.opencli/config.toml. Para el puñado que toca
casi todo el mundo, el archivo de configuración
es más corto.
La vía más rápida: deja que OpenCLI encuentre tus modelos
Si ya ejecutas Ollama, LM Studio, vLLM o llama.cpp en local:
opencli provider scan
Sondea los puertos habituales de localhost, pregunta a cada servidor que
encuentra qué modelos sirve y escribe las secciones [model_providers.*] y
[[models]] correspondientes en tu config.toml — se conservan los
comentarios y ajustes existentes. Añade --dry-run para ver antes qué
escribiría.
Para proveedores alojados, instala uno del catálogo y pon su clave:
opencli provider list # el catálogo, más lo ya configurado
opencli provider add openrouter
export OPENROUTER_API_KEY=...
El catálogo solo lleva datos de conexión: no se distribuye ninguna clave con el binario, y nada está activo hasta que tú lo añades. Para configurar algo que no esté en el catálogo, escribe las secciones a mano como se describe abajo.
Rellenar las capacidades de un modelo
La ventana de contexto de un modelo local y su soporte de llamada a herramientas no están publicados en ninguna parte, y adivinarlos es peor que dejarlos sin poner: una ventana de contexto demasiado grande hace que el proveedor rechace los turnos en lugar de auto-compactar. Pregúntaselo al modelo:
opencli model probe <slug> # añade --dry-run para previsualizar
Lee los metadatos del propio runtime cuando los hay (Ollama informa de la
longitud de contexto real y de la lista de capacidades) y además hace una
petición en vivo para ver si el modelo llama a una herramienta que se le ofrece
y si devuelve su razonamiento en un campo reasoning aparte. Lo hallado se
escribe en la entrada [[models]] del modelo.
Los modelos que no pueden conversar —los de embeddings, por ejemplo— los
salta provider scan, así que nunca llegan al selector /model.
Elegir modelos y proveedores
Esta compilación trae ajustes preestablecidos para varias pasarelas, pero
cualquier modelo alcanzable por una API compatible con OpenAI se puede
configurar en ~/.opencli/config.toml sin recompilar.
Añadir un proveedor
Las entradas de [model_providers.<id>] sustituyen a un proveedor integrado
con el mismo id, así que esta es también la forma de reapuntar una pasarela
incluida a un proxy o a un espejo:
[model_providers.my-gateway]
name = "My Gateway"
base_url = "https://gateway.example.com/v1"
env_key = "MY_GATEWAY_API_KEY"
wire_api = "chat"
# Opcional: súbelo si esta pasarela tarda en producir el primer token.
stream_idle_timeout_ms = 90000
Las claves de API se leen siempre del entorno; nunca se guardan en el archivo de configuración.
Añadir un modelo
Declara modelos con [[models]]. Aparecen en el selector /model junto a los
preestablecidos, y una entrada cuyo model coincide con un preestablecido lo
reemplaza:
[[models]]
model = "qwen3-max"
provider = "my-gateway"
display_name = "Qwen3 Max" # opcional, por defecto el slug
description = "Autoalojado." # opcional
show_in_picker = true # opcional, por defecto true
provider es obligatorio y debe nombrar a un proveedor definido arriba o a uno
integrado; un modelo que apunte a un proveedor no definido se rechaza al
arrancar en lugar de fallar más tarde con un error que no viene a cuento.
Para elegir un modelo sin añadirlo al selector, pon model y model_provider
directamente:
model = "qwen3-max"
model_provider = "my-gateway"
Si model nombra algo que no es ni un preestablecido ni una entrada [[models]]
y model_provider está sin poner, las peticiones caen al proveedor openai y
se registra un aviso.
Ventanas de contexto
Los modelos de los que esta compilación no tiene metadatos empiezan con una
ventana conservadora de 131.072 tokens y aprenden la real del primer rechazo
por ventana de contexto que devuelva la pasarela. Pon model_context_window
para fijarla explícitamente.
Conectar con servidores MCP
OpenCLI puede conectarse a servidores MCP declarados en
~/.opencli/config.toml.
[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]
[mcp_servers.internal]
url = "https://mcp.example.com/mcp"
env_vars nombra las variables que el servidor necesita; los valores se
guardan con tus otras claves y no en este archivo, que se comparte. Un servidor
declarado aquí arranca con el siguiente chat que abras, no con el que tienes
delante.
La aplicación de escritorio escribe la misma tabla desde Abilities → Connectors, que además prueba el saludo y lista las herramientas que ofrece cada servidor.
Apps (Connectors)
Usa $ en el campo de escritura para insertar un conector de ChatGPT; el
desplegable lista las apps accesibles. El comando /apps lista las apps
disponibles e instaladas. Las conectadas aparecen primero y se marcan como
conectadas; las demás se marcan como instalables.
Notificaciones
OpenCLI puede ejecutar un gancho de notificación cuando el agente termina un turno.
notify = ["/path/to/your/script.sh"]
El programa se llama con un argumento: un objeto JSON que describe lo que ha pasado. Se ejecuta desacoplado, así que un script lento no retrasa el siguiente turno, y un script que falla se registra en lugar de saltar a la cara.
Esquema JSON
El esquema JSON generado para config.toml vive en
opencli-rs/core/config.schema.json,
y se sube con cada versión como config-schema.json. Apunta tu editor ahí
para tener autocompletado y validación mientras editas el archivo a mano.
Se genera a partir de los tipos de Rust, y CI falla si se desvía de ellos — así que es la única descripción de este archivo que no puede quedarse obsoleta.
Avisos
OpenCLI guarda las marcas de «no volver a mostrar» de algunos avisos de la
interfaz bajo la tabla [notice].
Salir con Ctrl+C/Ctrl+D usa una pista de doble pulsación de ~1 segundo
(ctrl + c again to quit).