Docs

Pi.

Pi es un agente de terminal deliberadamente pequeño: un armazón mínimo que se adapta a tu forma de trabajar en vez de imponerte la suya. Habla el formato de OpenAI, así que NaN entra como un proveedor más.

Se instala con curl -fsSL https://pi.dev/install.sh | sh, o en Windows con powershell -c "irm https://pi.dev/install.ps1 | iex".

Puedes saltarte todo esto

El CLI de NaN escribe esta configuración por ti: pestaña Setup, e para pegar tu clave, espacio para marcar Pi, c para aplicar.

Configuración

Declara el proveedor

En ~/.pi/agent/models.json:

{
  "providers": {
    "nan": {
      "baseUrl": "https://api.nan.builders/v1",
      "api": "openai-completions",
      "apiKey": "sk-your-key",
      "compat": { "supportsDeveloperRole": true },
      "models": [
        {
          "id": "deepseek-v4-flash",
          "name": "DeepSeek V4 Flash",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 32768
        },
        {
          "id": "glm5.3-flash",
          "name": "GLM 5.3 Flash",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 32768
        },
        {
          "id": "qwen3.8-flash",
          "name": "Qwen 3.8 Flash",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 32768
        },
        {
          "id": "mimo-v2.6-flash",
          "name": "Xiaomi MiMo V2.6 Flash",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 32768
        },
        {
          "id": "gemma4",
          "name": "Gemma 4",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 262144,
          "maxTokens": 65536
        },
        {
          "id": "qwen3.6",
          "name": "Qwen 3.6",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 262144,
          "maxTokens": 65536
        },
        {
          "id": "glm5.3",
          "name": "GLM 5.3 (premium)",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 32768
        }
      ]
    }
  }
}

Esta es la configuración de los 7 modelos LLM que sirve NaN: deepseek-v4-flash, glm5.3-flash, qwen3.8-flash, mimo-v2.6-flash, gemma4, qwen3.6 y glm5.3. Es el mismo conjunto que escribe el CLI de NaN, y el mismo que publica la página de OpenCode.

api: "openai-completions" es lo que le dice a Pi con qué formato hablar. maxTokens es el techo de una respuesta, no el contexto. Es la misma cifra que el bloque de OpenCode publica como limit.output, porque responde a la misma pregunta.

Ponlo por defecto

En ~/.pi/agent/settings.json:

{
  "defaultProvider": "nan",
  "defaultModel": "glm5.3-flash"
}

Este paso no es opcional

Sin defaultProvider y defaultModel, Pi sigue usando su proveedor de fábrica y lo que recibes es un 401. Es el fallo más habitual al conectarlo, y el mensaje de error no dice que el problema sea este fichero.

Pruébalo

pi

Pídele algo corto. Si contesta, está saliendo por el clúster. Puedes cambiar de modelo a mitad de sesión sin salir del agente.

Modelo recomendado

glm5.3-flash para trabajo de código. deepseek-v4-flash para lo demás, que además tiene la cuota más amplia del clúster.

Problemas conocidos
  • La clave va escrita en el fichero. models.json vive en tu carpeta personal, así que no suele acabar en un repositorio, pero tenlo en cuenta si sincronizas tu configuración entre máquinas.
  • maxTokens no es el contexto. Es el techo de cada respuesta. El razonamiento sale de ese mismo presupuesto, así que si pides respuestas largas y razonadas, súbelo.
  • Los modelos que declares son los que verás. Pi no le pregunta al clúster qué hay disponible: muestra lo que haya en la lista.
  • mimo-v2.6-flash entra sin su audio, y glm5.3 sin su audio ni su vídeo. El esquema de Pi acepta "text" e "image" en input y nada más, y un tercer valor no tumba solo a ese modelo: Pi rechaza el fichero entero, con todos los demás proveedores que haya dentro. Los dos los siguen aceptando por la API, pero no desde Pi.
  • glm5.3 necesita una clave del tier premium. Está en la lista para que quien lo tenga lo vea. Sin ese tier la respuesta es un 401, explicado en Elige tu modelo.
nan.builders © 2026
Copied to clipboard