Saltar al contenido

OpenCode

Añada HopBase a OpenCode como proveedor personalizado compatible con OpenAI en opencode.json.

OpenCode es un agente de código de código abierto para la terminal. Se conecta a HopBase mediante un proveedor personalizado en opencode.json, basado en el paquete @ai-sdk/openai-compatible.

AjusteValor
npm@ai-sdk/openai-compatible
options.baseURLhttps://api.hop-base.com/v1
options.apiKey{env:HOPBASE_API_KEY} (una clave creada en la consola)
ID de modeloEl ID exacto que devuelve GET /v1/models con esa clave, por ejemplo deepseek-v4.1-flash-1017

Verificado en producción con OpenCode 1.19: opencode run responde a través de HopBase y las herramientas integradas del agente (como leer un archivo) funcionan.

Elija el grupo que contiene su modelo.

Una clave de HopBase solo llega a los modelos de los grupos que incluye. Al crear la clave en la consola, seleccione el grupo que sirve el modelo que quiere usar: por ejemplo DeepSeek para deepseek-v4.1-flash-1017, DeepSeek centro de datos de Singapur para deepseek-v4.1-flash-1017-sg o Gemini (todos los modelos, incl. imagen) para gemini-3.8-flash. Una clave sin el grupo del modelo devuelve 404 model_not_found.

Configurar OpenCode

Exporte la clave

export HOPBASE_API_KEY=sk-your-key

{env:HOPBASE_API_KEY} en la configuración de abajo lee la clave de esta variable, así la clave nunca queda en un archivo que pueda subir al repositorio.

Añada el proveedor a opencode.json

Cree o edite opencode.json en el directorio del proyecto, o ~/.config/opencode/opencode.json para usarlo en todos los proyectos:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "hopbase": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "HopBase",
      "options": {
        "baseURL": "https://api.hop-base.com/v1",
        "apiKey": "{env:HOPBASE_API_KEY}"
      },
      "models": {
        "deepseek-v4.1-flash-1017": { "name": "DeepSeek V4.1 Flash" }
      }
    }
  },
  "model": "hopbase/deepseek-v4.1-flash-1017"
}

Las claves de models deben ser ID de modelo de HopBase exactos. Incluya solo los modelos a los que llega su clave; name es solo la etiqueta que muestra OpenCode. model fija el modelo predeterminado con el formato <proveedor>/<ID de modelo>.

Confirme la lista de modelos

curl https://api.hop-base.com/v1/models \
  -H "Authorization: Bearer $HOPBASE_API_KEY"

Cada ID que haya puesto en models debe aparecer en esta respuesta. Si falta alguno, ninguno de los grupos de la clave lo sirve.

Envíe una primera solicitud

opencode run "Reply with exactly one word: pong"

opencode models hopbase lista los modelos que OpenCode cargó del proveedor. En la interfaz interactiva, /models cambia entre ellos.

Añadir más modelos

Añada una entrada por ID de modelo en models. Una clave puede incluir varios grupos, así que un mismo proveedor puede llevar modelos de todos ellos:

"models": {
  "deepseek-v4.1-flash-1017": { "name": "DeepSeek V4.1 Flash" },
  "deepseek-v4.1-flash-1017-sg": { "name": "DeepSeek V4.1 Flash (Singapore)" },
  "gemini-3.8-flash": { "name": "Gemini 3.8 Flash" }
}

Los modelos Claude usan el protocolo Anthropic en lugar de Chat Completions. Para Claude, añada un segundo proveedor con "npm": "@ai-sdk/anthropic" y el mismo baseURL (https://api.hop-base.com/v1; el paquete añade /messages por su cuenta), y use una clave que incluya un grupo de Claude.

Los precios de cada modelo están en la página de precios.

Solución de problemas

SíntomaCausa
401 en todas las solicitudesHOPBASE_API_KEY no está definida en la terminal que inició OpenCode
404 model_not_foundLa clave no incluye el grupo del modelo, o el ID en models está abreviado. Vuelva a consultar GET /v1/models
route_not_foundLa clave pertenece a un grupo de imagen o vídeo sin endpoint de chat
opencode run se queda esperando sin salida al llamarlo desde un scriptTambién lee la entrada estándar. Rediríjala, por ejemplo opencode run "…" < /dev/null

Próximos pasos