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.
| Ajuste | Valor |
|---|---|
npm | @ai-sdk/openai-compatible |
options.baseURL | https://api.hop-base.com/v1 |
options.apiKey | {env:HOPBASE_API_KEY} (una clave creada en la consola) |
| ID de modelo | El 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.
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íntoma | Causa |
|---|---|
401 en todas las solicitudes | HOPBASE_API_KEY no está definida en la terminal que inició OpenCode |
404 model_not_found | La clave no incluye el grupo del modelo, o el ID en models está abreviado. Vuelva a consultar GET /v1/models |
route_not_found | La 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 script | También lee la entrada estándar. Rediríjala, por ejemplo opencode run "…" < /dev/null |
Próximos pasos
- Modelos disponibles: consulte los ID de modelo disponibles para una clave
- Vercel AI SDK: el mismo paquete de proveedor usado directamente en su código
- Solución de problemas: busque un mensaje de error