VS Code y Copilot.
En VS Code los modelos entran por Copilot Chat, así que configurar VS Code y configurar Copilot son la misma cosa. Copilot admite modelos propios a través de su proveedor Custom Endpoint, que habla el formato de OpenAI. Es justo lo que sirve NaN.
Qué cambia y qué no
Esto afecta al chat y al modo agente. El autocompletado en línea, esas sugerencias grises mientras escribes, sigue siendo de Copilot y no se puede redirigir. Lo mismo con la búsqueda semántica y lo que depende de los embeddings de GitHub: siguen necesitando tu cuenta.
Qué necesitas
Una versión de VS Code con el proveedor Custom Endpoint (llegó en la 1.122; antes existía un ajuste github.copilot.chat.customOAIModels que está obsoleto), la extensión de Copilot Chat instalada y tu API key de NaN.
Configuración
Abre el editor de modelos
En el selector de modelos del chat, pulsa el engranaje. O abre la paleta de comandos y busca Chat: Manage Language Models.
Añade un proveedor
Elige Add Models y después Custom Endpoint.
Te pedirá un nombre de grupo, un nombre visible y la API key. Pon NaN como nombre y pega tu clave, la que empieza por sk-.
Cuando pregunte el tipo de API, elige Chat Completions.
Declara los modelos
Se abre un fichero chatLanguageModels.json. Déjalo así:
[
{
"name": "NaN",
"vendor": "customendpoint",
"apiKey": "${input:nanApiKey}",
"apiType": "chat-completions",
"models": [
{
"id": "deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1015807,
"maxOutputTokens": 32768
},
{
"id": "glm5.3-flash",
"name": "GLM 5.3 Flash",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1015808,
"maxOutputTokens": 32768
},
{
"id": "qwen3.8-flash",
"name": "Qwen 3.8 Flash",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 229376,
"maxOutputTokens": 32768
},
{
"id": "mimo-v2.5",
"name": "Xiaomi MiMo V2.5",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1015808,
"maxOutputTokens": 32768
},
{
"id": "gemma4",
"name": "Gemma 4",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 196608,
"maxOutputTokens": 65536
},
{
"id": "qwen3.6",
"name": "Qwen 3.6",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 196608,
"maxOutputTokens": 65536
},
{
"id": "glm5.3",
"name": "GLM 5.3 (premium)",
"url": "https://api.nan.builders/v1/chat/completions",
"toolCalling": true,
"vision": false,
"maxInputTokens": 1015808,
"maxOutputTokens": 32768
}
]
}
]Elige el modelo y prueba
Abre el chat, despliega el selector de modelos y elige uno de los que acabas de añadir. Pídele algo corto. Si responde, está saliendo por el clúster.
Tres detalles que importan
- La
urlva completa, con/chat/completionsal final. No es como en el resto de herramientas, donde se pone solo la base. VS Code añade la ruta por su cuenta según el tipo de API, y dársela entera evita que se equivoque. toolCalling: truees lo que habilita el modo agente. Sin eso, el modelo aparece en el chat pero no puede usar herramientas ni editar ficheros.maxInputTokenses la ventana menos el presupuesto de salida. VS Code SUMA los dos y trata el resultado como la ventana de contexto, así que las cifras de arriba soncontexto - maxOutputTokens. Publicar la ventana entera como entrada y un presupuesto de salida encima, que es lo que hacía esta documentación antes, hacía creer a VS Code que el modelo aguantaba un 25% más de lo que aguanta: enseñaba el consumo de contexto contra ese número y dejaba crecer la conversación hasta que el proxy devolvía un error de longitud a mitad de sesión, sin aviso de compactación y señalando al sitio equivocado.
La clave
"apiKey": "${input:nanApiKey}" hace que VS Code te la pida y la guarde en su almacén de secretos, en vez de dejarla escrita en el fichero. Es lo que quieres: ese fichero es fácil que acabe en un repositorio o en una copia de seguridad.
Modelo recomendado
glm5.3-flash para el modo agente, que es donde importa el contexto largo. deepseek-v4-flash para preguntas de chat. qwen3.8-flash si prefieres que conteste rápido.
glm5.3 solo responde si tienes el tier premium. Va en el bloque con "vision": false, que no es una preferencia: es el único modelo que no acepta imágenes.
Problemas conocidos
- El autocompletado no cambia. Es de Copilot y no se puede redirigir a otro proveedor. Si lo que quieres es que las sugerencias en línea salgan por NaN, la herramienta es Zed, que sí lo permite.
- Algunas funciones siguen pidiendo cuenta de GitHub, como la búsqueda semántica del repositorio. No es un problema de tu clave.
- El proveedor llegó en la 1.122. En versiones anteriores había un ajuste
github.copilot.chat.customOAIModelsque ya está obsoleto: si lo tienes puesto, quítalo y usa el proveedor. - Si el modelo aparece pero no edita ficheros, casi siempre es
toolCallingsin poner o afalse.
Copilot fuera de VS Code
Esta página cubre Copilot dentro de VS Code, que es donde vive el proveedor Custom Endpoint. Copilot en JetBrains, en Visual Studio o en su CLI no ofrece el mismo mecanismo de endpoint propio.
Si trabajas en JetBrains, la vía para usar NaN es otro plugin que acepte base URL de OpenAI, o Continue, que sí tiene versión para JetBrains.