Añade un proveedor personalizado compatible con OpenAI a Zed.
Updated 2026-07-29
Zed lee los proveedores personalizados directamente desde settings.json. Declara un bloque language_models.openai_compatible con api_url apuntando a https://api.apisrouter.com/v1, lista los IDs de modelo que quieras, y todos aparecen en el selector de modelos del panel de agente bajo una sola clave.
Respuesta rápida: un bloque en settings.json.
Zed admite proveedores personalizados compatibles con OpenAI de forma nativa. Añade una entrada de proveedor bajo language_models.openai_compatible en settings.json, pon api_url en https://api.apisrouter.com/v1, y declara cada modelo que quieras bajo available_models con su nombre y tamaño de contexto. Los modelos aparecen de inmediato en el menú desplegable de modelos del panel de agente. La clave de API deliberadamente no va en settings.json. Zed la guarda en el llavero del sistema cuando la introduces a través de la interfaz de ajustes del proveedor, o la lee de una variable de entorno derivada del nombre de tu proveedor: un proveedor llamado apisrouter lee APISROUTER_API_KEY. Las variables de entorno tienen prioridad sobre los valores del llavero.
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000
}
]
}
}
}
}Cómo resuelve Zed los proveedores y modelos personalizados.
Zed (zed-industries en GitHub, unas 87K estrellas) es un editor de alto rendimiento con un panel de agente que planifica, edita archivos y ejecuta herramientas. Su tipo de proveedor openai_compatible habla el protocolo estándar /v1/chat/completions, que es exactamente lo que sirve un gateway multiproveedor, así que ningún plugin ni extensión se interpone entre el editor y el endpoint. La clave de proveedor que elijas ("apisrouter" arriba) cumple una doble función. Nombra al proveedor en los ajustes del panel de agente, y genera la variable de entorno que Zed busca para la clave, en mayúsculas con guiones bajos y sufijo _API_KEY. Vale la pena interiorizar esta regla de nomenclatura antes de depurar nada: si renombras el proveedor, el nombre de variable esperado cambia con él. available_models es una lista de permitidos. Zed no puede enumerar un endpoint personalizado por sí solo, así que solo los IDs que declares se vuelven seleccionables, cada uno como una cadena exacta, incluido cualquier sufijo de versión. Cuando el endpoint detrás de api_url sirve IDs de Claude, GPT, Gemini y Kimi lado a lado, un solo bloque de proveedor convierte el selector del panel de agente en una centralita multiproveedor detrás de una sola clave. Una nota de alcance: la función de predicciones de edición de Zed usa sus propios modelos dedicados y se configura por separado; un proveedor personalizado alimenta el panel de agente y el asistente en línea, no las predicciones de edición.
Configuración completa: modelos, tamaños de contexto y capacidades.
Cada entrada de available_models lleva más que un nombre. max_tokens declara la ventana de contexto del modelo, y max_output_tokens limita la longitud de generación; Zed usa estas cifras para gestionar hilos de agente largos, así que declarar un modelo de contexto largo con un max_tokens pequeño desperdicia en silencio el margen del modelo. El objeto capabilities le dice a Zed qué admite el modelo: pon tools en true para todo lo que planees usar para impulsar el panel de agente, y habilita images solo en modelos que de verdad acepten entrada de imágenes. Para la clave, la ruta fiable en un editor de escritorio es la interfaz de ajustes del proveedor, que guarda el valor en el llavero del sistema. La ruta de variable de entorno también funciona, con una salvedad cubierta en la sección de depuración: las aplicaciones gráficas lanzadas desde el dock no heredan tu perfil de shell.
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000,
"max_output_tokens": 64000,
"capabilities": { "tools": true, "images": false }
},
{
"name": "claude-opus-4-7",
"display_name": "Claude Opus 4.7",
"max_tokens": 200000,
"capabilities": { "tools": true }
},
{ "name": "gpt-5.5", "display_name": "GPT-5.5", "max_tokens": 200000 },
{ "name": "kimi-k2.7-code", "display_name": "Kimi K2.7 Code", "max_tokens": 200000 }
]
}
}
}
}Elegir modelos para el panel de agente.
Como todo modelo declarado vive en el mismo selector, el flujo de trabajo práctico es la comparación sobre trabajo real en vez de benchmarks: ejecuta el mismo tipo de tarea con dos candidatos en días distintos y deja que el registro de uso por clave le ponga precio a cada uno. Cambiar de modelo en Zed es una selección en un menú desplegable, así que el coste del experimento es configuración cero.
- El panel de agente carga con ingeniería real: leer archivos, planificar ediciones de varios pasos, ejecutar herramientas en hilos largos. Un modelo de codificación de vanguardia (claude-sonnet-4-6, claude-opus-4-7, gpt-5.5) pertenece a esta posición.
- IDs afinados para codificación como kimi-k2.7-code merecen declararse incluso cuando no son tu opción por defecto; cambiar para una sesión cargada de refactorización es una sola selección en el selector, no una edición de configuración.
- Los modelos de contexto largo como gemini-3.1-pro-preview se ganan su lugar cuando los hilos habitualmente meten archivos grandes o contexto de módulos enteros en una sola conversación.
- El asistente en línea (inline assist) tiene una vida más corta que los hilos de agente, así que un ID rápido de nivel medio mantiene las transformaciones de un solo disparo ágiles sin quemar tokens de vanguardia en reescrituras de una línea.
Pago por uso · por debajo del precio oficial
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Modelo | Precio oficial | Nuestro precio |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Kimi K2.7 Code | $0.95 / $4.00 per M | $1.00 / $4.00 per M |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
Modos de fallo específicos de los proveedores personalizados de Zed.
La clave está en settings.json y nada funciona. Por diseño, Zed no lee claves de API desde settings.json. Introduce la clave en la interfaz de ajustes del proveedor, o exporta la variable de entorno derivada; una clave pegada en el JSON se ignora. La variable de entorno está definida pero Zed sigue pidiendo una clave. El nombre de la variable se deriva de la clave de proveedor, en mayúsculas con guiones bajos y con _API_KEY añadido, así que un proveedor llamado apisrouter necesita APISROUTER_API_KEY, no OPENAI_API_KEY. Y en macOS, una app lanzada desde el dock nunca carga tu perfil de shell, así que las exportaciones del perfil le son invisibles. Lanza Zed desde una terminal con el comando zed, o usa la ruta del llavero y evita el problema por completo. Falta un modelo en el selector. available_models es una lista de permitidos; un ID que asumiste pero nunca declaraste simplemente no existe. Los IDs son cadenas exactas, incluidos los sufijos de versión, y el listado /v1/models del gateway es la grafía autorizada de la que copiar. El agente no puede usar herramientas. Si el bloque capabilities de un modelo dice que tools es false, Zed no ofrecerá uso de herramientas con él. Declara las capacidades para que coincidan con lo que el modelo realmente admite. api_url sin /v1. El cliente añade rutas como /chat/completions a la base que le des, así que https://api.apisrouter.com/v1 es correcto y el host desnudo no lo es. Un fallo con forma de 404 en un bloque por lo demás correcto casi siempre es esto.
Quién enruta Zed a través de un gateway.
- Desarrolladores que viven en el editor y quieren Claude, GPT y Kimi en un solo selector del panel de agente en vez de mantener credenciales de proveedor separadas por cada vendor.
- Ingenieros que comparan modelos de codificación en ediciones reales. Cada candidato es una entrada declarada y una selección en el desplegable; sin cuentas nuevas por experimento.
- Equipos que estandarizan un solo secreto. Una única APISROUTER_API_KEY en la documentación de onboarding reemplaza una lista de claves por proveedor, y el uso por clave muestra cuánto gasta cada puesto.
- Usuarios que combinan un modelo de agente de vanguardia con un modelo rápido de asistencia en línea de un proveedor distinto, algo que las configuraciones de un solo proveedor no pueden expresar.
- Desarrolladores sin acceso a la facturación de determinado proveedor. El acceso basado en recargas sin requisito de tarjeta elimina la dependencia de registrarse en cada proveedor.
Verifica el endpoint y depura el primer hilo.
Antes de iniciar un hilo de agente, lista lo que sirve el gateway. Los IDs que devuelve /v1/models son exactamente las cadenas que deben usar tus entradas de available_models. Los fallos en el primer hilo son consistentes. Un 401 significa que la clave que resolvió Zed es incorrecta o está ausente: revisa la entrada del llavero en los ajustes del proveedor, o confirma que la variable de entorno derivada es visible para el proceso de Zed y no solo para tu terminal. Un error de modelo no encontrado del gateway significa que un nombre declarado no coincide con un ID servido, sufijo de versión incluido. Si el bloque de proveedor no aparece para nada en los ajustes, valida el JSON; settings.json tolera comentarios pero no errores estructurales. Una vez que las peticiones fluyen, la consola de APIsRouter muestra el modelo, el recuento de tokens y el gasto por petición. Los hilos de agente son cargas de trabajo de contexto largo y muchos turnos, y ver qué hilos y qué modelos consumen los tokens es cómo decides si tu modelo por defecto se está ganando su lugar.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Preguntas frecuentes
¿Puede Zed usar modelos de Claude, GPT y Kimi a través de un solo proveedor personalizado?
Sí. Un proveedor personalizado es un api_url más una lista de permitidos available_models. Cuando el endpoint sirve a varios proveedores, declara una entrada por ID y cada modelo declarado aparece en el selector del panel de agente bajo el mismo proveedor y clave, cambiable por hilo.
¿Dónde va la clave de API para un proveedor personalizado de Zed?
No en settings.json. Introdúcela en la interfaz de ajustes del proveedor, que la guarda en el llavero del sistema, o exporta la variable de entorno derivada de tu clave de proveedor: un proveedor llamado apisrouter lee APISROUTER_API_KEY. Las variables de entorno tienen prioridad sobre los valores del llavero.
¿Por qué Zed ignora la clave de API que exporté en mi perfil de shell?
Las apps gráficas lanzadas desde el dock nunca cargan tu perfil de shell, así que la exportación les es invisible. Lanza Zed desde una terminal con el comando zed para que herede la variable, o usa la interfaz de ajustes y deja que el llavero guarde la clave.
¿Por qué falta mi modelo en el selector del panel de agente?
Los modelos de un proveedor personalizado deben declararse explícitamente; Zed no puede enumerar un endpoint personalizado. Comprueba que available_models contenga la cadena exacta del ID, incluidos los sufijos de versión, y copia los IDs de la respuesta /v1/models del gateway en vez de escribirlos de memoria.
¿Qué controlan max_tokens y max_output_tokens en available_models?
max_tokens declara la ventana de contexto del modelo y max_output_tokens limita la longitud de generación. Zed usa estos valores para gestionar hilos de agente largos, así que fija max_tokens en lo que el modelo realmente admite; subestimarlo desperdicia contexto que el modelo sí tiene.
¿Un proveedor personalizado cambia las predicciones de edición de Zed?
No. Las predicciones de edición corren sobre los propios modelos dedicados de Zed y se configuran por separado. Un proveedor personalizado compatible con OpenAI alimenta el panel de agente y el asistente en línea, que es adonde va el tráfico de /v1/chat/completions.