OpenCode con UberLLM: un proveedor más barato en opencode.json
Añade un proveedor "uberllm" a ~/.config/opencode/opencode.json con npm "@ai-sdk/openai-compatible", baseURL https://api.uberllm.dev/v1 y los modelos que quieras, dale tu clave de UberLLM (variable de entorno o /connect), luego selecciona uberllm/<model id> con /models.
Pasos
- Crea una clave en tu página de claves y añade crédito.
- Abre (o crea)
~/.config/opencode/opencode.json. Solo para un proyecto, usaopencode.jsonen la carpeta del proyecto en su lugar. - Añade el proveedor:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"uberllm": {
"npm": "@ai-sdk/openai-compatible",
"name": "UberLLM",
"options": {
"baseURL": "https://api.uberllm.dev/v1",
"apiKey": "{env:UBERLLM_API_KEY}"
},
"models": {
"moonshotai/kimi-k3": { "name": "moonshotai/kimi-k3" },
"deepseek/deepseek-v4.1-flash": { "name": "deepseek/deepseek-v4.1-flash" },
"deepseek/deepseek-v4.1-flash": { "name": "deepseek/deepseek-v4.1-flash" }
}
}
},
"model": "uberllm/moonshotai/kimi-k3",
"small_model": "uberllm/deepseek/deepseek-v4.1-flash"
}
- Dale a OpenCode la clave. O bien, establece la variable que lee la configuración:
export UBERLLM_API_KEY=ull_your_key
o ejecuta /connect dentro de OpenCode, desplázate a Otros, introduce uberllm como el provider id y pega la clave. El id debe coincidir exactamente con el nombre en provider. Si usas /connect, puedes eliminar la línea apiKey.
- Inicia
opencode, escribe/modelsy elige uno de los modelos de UberLLM.
¿Por qué el ID del modelo tiene dos barras?
OpenCode nombra un modelo <provider>/<model>, y los ID de UberLLM ya contienen una barra (deepseek/…). OpenCode divide solo por la primera barra, así que uberllm/moonshotai/kimi-k3 significa proveedor uberllm, modelo moonshotai/kimi-k3. La clave bajo models debe ser el ID de UberLLM exactamente como aparece en uberllm.dev/models](uberllm.dev/models](/models)).
Indica a OpenCode el tamaño del contexto
OpenCode utiliza el tamaño del contexto para saber cuándo compactar una sesión larga. Añade un limit a cada modelo, usando los números de su página de modelo:
"moonshotai/kimi-k3": {
"name": "moonshotai/kimi-k3",
"limit": { "context": 1000000, "output": 64000 }
}
Los números anteriores son un ejemplo; copia los reales para el modelo que elijas.
Usa el paquete adecuado
Mantén "npm": "@ai-sdk/openai-compatible". Ese paquete llama a /v1/chat/completions, la ruta en la que se prueba cada modelo de UberLLM.
Solución de problemas
ProviderModelNotFoundError: el modelo que elegiste no está en la listamodels, o la clave allí difiere del ID en"model". Añádelo con el ID exacto de UberLLM.- 401 / no answer:
{env:UBERLLM_API_KEY}se queda vacío cuando la variable no está configurada en la shell que inició OpenCode. Expórtala, o usa/connect. /connectkey not used: el ID de proveedor que escribiste allí no esuberllm. Ejecutaopencode auth listpara ver qué está almacenado.- 404: verifica que
baseURLtermine en/v1, y que el paquete npm sea el compatible con openai. - 402 insufficient credits: añade crédito en la página de créditos.
Sigue leyendo
- Página de referencia: Documentación de OpenCode
- Configuración de Kilo Code (mismo formato de configuración)
- Claude Code en UberLLM
- API de Claude más barata