Docs

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 url va completa, con /chat/completions al 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: true es lo que habilita el modo agente. Sin eso, el modelo aparece en el chat pero no puede usar herramientas ni editar ficheros.
  • maxInputTokens es 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 son contexto - 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.customOAIModels que ya está obsoleto: si lo tienes puesto, quítalo y usa el proveedor.
  • Si el modelo aparece pero no edita ficheros, casi siempre es toolCalling sin poner o a false.
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.

nan.builders © 2026
Copied to clipboard