OneProvider

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.

json
{
"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.json en 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 ejecuta export 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.

bash
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:

json
{
"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.

json
{
"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