OpenCode
Apunta el proveedor de Anthropic de OpenCode a OneProvider con la misma clave y, si quieres, enruta también los modelos gpt-*. Ejemplo de config y modelo.
OpenCode enruta los modelos de Anthropic y OpenAI mediante proveedores intercambiables. Apunta el bloque anthropic a OneProvider y listo.
Todos los modelos, capacidades y precios Índice de la documentación para agentes de IA:https://oneprovider.dev/docs/llms.txt Antes de empezar: una clave de tu panel Abre tu panel: el bot de Telegram @oneprovider_robot (Panel) o app.oneprovider.dev . Pulsa “Emitir una clave”, ponle un nombre (por ejemplo, este cliente) y un límite de gasto, y copia la clave. El saldo se recarga en el mismo lugar. Más sobre el panel y las claves . Configuración
Ruta de la configuración: ~/.config/opencode/opencode.json (o opencode.jsonc). Crea el archivo si no existe.
{
"provider": {
"anthropic": {
"options": {
"baseURL": "https://api.oneprovider.dev/v1",
"apiKey": "sk-your-key-here"
},
"npm": "@ai-sdk/anthropic"
}
},
"$schema": "https://opencode.ai/config.json"
} La clave de API se puede definir en línea (como arriba) o mantener fuera del archivo: el comando /connect dentro de OpenCode (o opencode auth login en una terminal) la guarda por separado (en 1.x es ~/.local/share/opencode/auth.json), y la configuración conserva solo baseURL.
Formas más sencillas
- Por proyecto. Pon el mismo JSON en
opencode.jsonen la raíz del proyecto: se aplica solo ahí y se combina sobre el archivo global. - Clave desde una variable de entorno. Escribe
"apiKey": "{env:ONEPROVIDER_KEY}"y ejecutaexport ONEPROVIDER_KEY=sk-your-key-here. El archivo no contiene ningún secreto y se puede subir al repositorio. Si la variable no está definida, se sustituye por una cadena vacía.
Máquina remota, CI, contenedor
No hace falta copiar ~/.config por SSH. Guarda en el repositorio opencode.json con {env:ONEPROVIDER_KEY} y define ONEPROVIDER_KEY en esa máquina (un secreto de CI, docker run -e, export). En OpenCode 1.x también puedes pasar toda la configuración como una sola variable, OPENCODE_CONFIG_CONTENT: JSON en línea, aplicado después de todos los archivos de configuración, sin escribir nada en disco. OPENCODE_CONFIG=/path/to/config.json apunta a un archivo de configuración en otra ubicación.
export OPENCODE_CONFIG_CONTENT='{"provider":{"anthropic":{"npm":"@ai-sdk/anthropic","options":{"baseURL":"https://api.oneprovider.dev/v1","apiKey":"sk-your-key-here"}}}}'
opencode OpenCode 1.x y OpenCode 2
Comprueba tu versión con opencode --version: el número empieza por 1 ( OpenCode 1.x , lo que da el instalador por defecto) o por 2 ( OpenCode 2 ). La configuración de esta página usa el formato 1.x (provider, npm, options), y OpenCode 2 la lee sin cambios de los mismos lugares. El formato nativo de la versión 2 es opcional; escribe los mismos ajustes con providers, package, settings:
{
"providers": {
"anthropic": {
"package": "aisdk:@ai-sdk/anthropic",
"settings": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }
},
"openai": {
"package": "aisdk:@ai-sdk/openai",
"settings": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }
}
}
} No apuntes OpenCode 1.x a un archivo reescrito al formato 2: ambas versiones leen los mismos archivos. OPENCODE_CONFIG y OPENCODE_CONFIG_CONTENT están documentadas para 1.x; en OpenCode 2 usa opencode.json en el proyecto y la variable ONEPROVIDER_KEY en una máquina remota.
Enrutar también los modelos gpt-*
La misma clave también funciona con los modelos GPT: añade un segundo bloque de proveedor. Ambos van en el mismo archivo; elige un modelo como provider/model-id.
{
"provider": {
"anthropic": { "options": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }, "npm": "@ai-sdk/anthropic" },
"openai": { "options": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }, "npm": "@ai-sdk/openai" }
}
} Modelo por defecto Tras guardar, ejecuta /models dentro de OpenCode para fijar uno por defecto: claude-sonnet-5-5 para Anthropic, gpt-6.1-terra para OpenAI. Qué modelo elegir
Usa anthropic/claude-sonnet-5-5 como modelo de uso diario: precio y calidad equilibrados. Cambia a anthropic/claude-opus-5-5 para trabajo de arquitectura y refactorizaciones grandes, y usa anthropic/claude-haiku-5-5 donde importa más la velocidad que la profundidad. Para los modelos GPT usa el bloque openai: openai/gpt-6.1-terra es la opción equilibrada por defecto y openai/gpt-6.1-sol el nivel de gama alta. Abre /models para elegir uno; un modelo barato también encaja en el ajuste small_model de OpenCode, para títulos y tareas cortas. Los ID están en la página de modelos y las tarifas en la página de precios .
Errores frecuentes y soluciones
404 “The requested API endpoint does not exist”
En OpenCode el proveedor @ai-sdk/anthropic espera baseURL con /v1: https://api.oneprovider.dev/v1. No añadas /messages tú mismo y no uses aquí el host a secas.
401 Invalid API key
La clave de la configuración está truncada o entre comillas. También puedes ejecutar /connect y pegarla ahí (OpenCode 1.x la guarda en ~/.local/share/opencode/auth.json); después quita apiKey de la configuración.
La configuración no se carga
Las comillas tipográficas de una app de mensajería o de Notion rompen el JSON. Revisa el archivo con jq . ~/.config/opencode/opencode.json, o usa opencode.jsonc si quieres comentarios.
El modelo no aparece en la lista
Elígelo exactamente como provider/model-id, por ejemplo anthropic/claude-sonnet-5-5, y asegúrate de que el bloque de proveedor correspondiente exista en el archivo.
429 “Insufficient balance”
Se agotó el saldo o el límite de gasto de la clave. Recarga el saldo del panel; reintentar no ayuda.
Los flujos se cortan
Desactiva las VPN o los proxies VLESS: almacenan SSE en búfer y rompen HTTP/2.
Preguntas frecuentes
¿Dónde está el archivo de configuración?
~/.config/opencode/opencode.json (o opencode.jsonc). Un proyecto también puede tener su propio opencode.json.
¿Cómo mantengo la clave fuera del archivo?
OpenCode sustituye variables de entorno: escribe "apiKey": "{env:ONEPROVIDER_KEY}" y exporta la variable en tu shell.
¿Cómo lo uso en una máquina remota o en CI?
Sin copiar archivos por SSH: guarda en el repositorio opencode.json con {env:ONEPROVIDER_KEY} y define ONEPROVIDER_KEY en esa máquina, o (OpenCode 1.x) pasa toda la configuración en la variable OPENCODE_CONFIG_CONTENT. Consulta “Máquina remota, CI, contenedor” arriba.
¿Puedo usar Claude y GPT a la vez?
Sí. Añade el bloque openai de esta página junto al de anthropic; una sola clave sirve para ambos.
¿Necesito una cuenta de Claude o de OpenAI?
No, la clave de OneProvider es la única credencial.
Respuestas rápidas
¿Qué base URL uso?
Claude Code y los SDK de Anthropic usan https://api.oneprovider.dev. Los SDK de OpenAI y los clientes compatibles con OpenAI usan https://api.oneprovider.dev/v1. Una misma clave funciona con ambas; la lista de modelos está en la página de modelos y las tarifas, en la página de precios .
¿Cómo me autentico?
Envía la clave sk-… tal cual en x-api-key o en Authorization: Bearer: en uno de los dos, nunca en ambos. Guarda la clave en una variable de entorno, no en un archivo que se suba al repositorio. Más sobre la autenticación .
¿Dónde obtengo una clave?
Abre tu panel en el bot de Telegram @oneprovider_robot o en app.oneprovider.dev, recarga el saldo y pulsa “Emitir una clave”. Cada clave puede tener su propio límite de gasto. Panel y claves de API .
¿Qué significan 401, 404 y 429?
401: falta la clave, está mal escrita o se envió en un encabezado equivocado; pega la clave completa, sin comillas ni espacios. 404: casi siempre es una base URL incorrecta, por ejemplo con /v1 ausente o duplicado. 429 con “Insufficient balance”: se agotó el saldo del panel o el límite de gasto de la clave, así que recarga en lugar de reintentar; cualquier otro 429 es un límite de frecuencia, así que espera según Retry-After. Detalles: códigos de error y solución de problemas .
¿Por qué se cortan o se reinician los streams?
Las VPN y los proxies VLESS suelen almacenar SSE en búfer o romper la negociación de HTTP/2. OneProvider no tiene restricciones regionales y no almacena los streams en búfer: desactiva el proxy y reintenta.
¿Dónde pregunto si esto no basta?
Escribe a @Oneproviderhelpbot en Telegram o abre “Soporte” en el panel web, con el código de estado HTTP y el mensaje de error exacto. Cómo funciona el soporte .
Última actualización: 2026-11-08 ¿Encontraste un error? @Oneproviderhelpbot