Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/content/docs-es/agent-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Cada página de esta sección tiene la misma forma: qué necesitas, la configura
name: 'CLI de NaN',
href: '/es/docs/nan-cli',
kind: 'Terminal',
note: 'Configura OpenCode, Codex, Pi y droid por ti, y te enseña tu consumo.',
note: 'Configura OpenCode, Codex, Pi, droid y Hermes por ti, y te enseña tu consumo.',
},
{
name: 'Servidor MCP',
Expand Down
4 changes: 3 additions & 1 deletion src/content/docs-es/choose-a-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ Si no sabes cuál coger, busca en la primera columna lo que quieres hacer.
Las fichas completas, con parámetros, licencias y modos de razonamiento, están en [Modelos](/es/docs/models).

> **`glm5.3` es el único que no entra con la suscripción normal**
> Necesita una clave en el tier premium. Si lo pides sin él, la respuesta es un **`401`**, no un `403`: "This API key does not have access to the requested model". Parece una clave rota y no lo es, así que mira el tier antes de ponerte a rotar credenciales. Tampoco aparece en `GET /v1/models`. Todos los demás los puede llamar cualquier miembro.
> Necesita una clave en el tier premium. Si lo pides sin él, la respuesta es un **`401`**, no un `403`: "This API key does not have access to the requested model". Parece una clave rota y no lo es, así que mira el tier antes de ponerte a rotar credenciales. Tampoco aparece en `GET /v1/models`.
>
> Todos los demás **de la tabla de arriba** los puede llamar cualquier miembro. Guíate por esa tabla y no por `GET /v1/models`: ese endpoint contesta con lo que el clúster tiene levantado, que no es la misma pregunta que qué puede llamar tu clave, así que un id puede salir ahí y aun así devolver un `401`.

## Cómo se leen los ids

Expand Down
15 changes: 13 additions & 2 deletions src/content/docs-es/hermes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ Además tienes terminal web, subida de ficheros, logs y métricas, y puedes expo

Si prefieres correrlo tú, Hermes trae un proveedor llamado **`custom`**, pensado para cualquier endpoint compatible con OpenAI. Es el que usa NaN.

<Callout title="O deja que lo haga el CLI">
El [CLI de NaN](/es/docs/nan-cli) te lo configura: encuentra tu Hermes, le
pone los tres valores de abajo con `hermes config set` y no toca nada más de
tu configuración. Los pasos de aquí son lo que hace, por si prefieres hacerlo
tú o quieres saber qué ha cambiado.
</Callout>

<Steps>

### Instálalo
Expand All @@ -55,7 +62,11 @@ Elige el proveedor **`custom`** (aparece también como `local`, `ollama` o `vllm
| API key | tu clave, la que empieza por `sk-` |
| Modelo | `glm5.3-flash` |

A diferencia de los proveedores que Hermes trae preconfigurados, el `custom` **no tiene variable de entorno fija**: la dirección y la clave se las das tú aquí, y las guarda en `~/.hermes/config.yaml`.
A diferencia de los proveedores que Hermes trae preconfigurados, el `custom` **no tiene variable de entorno fija**: la dirección y la clave se las das tú aquí, y las guarda en su fichero de configuración.

Ese fichero es `~/.hermes/config.yaml` en macOS y Linux. En Windows es
`%LOCALAPPDATA%\hermes\config.yaml`. `hermes config path` te dice cuál es el
tuyo, y `HERMES_HOME` manda sobre los dos.

### Comprueba que funciona

Expand All @@ -69,7 +80,7 @@ Te dice si el proveedor responde. Después arranca el agente y mándale un mensa

## Cambiar de modelo

El modelo por defecto vive en `~/.hermes/config.yaml`, en `model.default`. No se toca a mano:
El modelo por defecto vive en ese mismo fichero, en `model.default`. No se toca a mano:

```bash
hermes model
Expand Down
30 changes: 28 additions & 2 deletions src/content/docs-es/nan-cli.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: CLI de NaN
description: "La herramienta oficial de terminal: consumo, costes y configuración automática de OpenCode, Codex, Pi y droid."
description: "La herramienta oficial de terminal: consumo, costes y configuración automática de OpenCode, Codex, Pi, droid y Hermes."
order: 4
group: Configurar tu agente
---
Expand All @@ -23,9 +23,20 @@ Es un atajo, no un requisito. Todo lo que hace se puede hacer a mano siguiendo l
| [Codex](/es/docs/codex) | Sí |
| Pi | Sí |
| Factory AI (`droid`) | Sí |
| [Hermes](/es/docs/hermes) | Sí |

Para Claude Code, Cursor, VS Code, Cline y Zed sigue haciendo falta la configuración manual de sus páginas.

Solo lista las herramientas que tienes instaladas, y solo toca la parte de NaN
de cada fichero: lo demás se queda como estaba, y desmarcar una herramienta
vuelve a sacar lo nuestro. Hermes es la excepción a «escribe el fichero»: el
CLI usa `hermes config set`, que es la forma que tiene Hermes de escribir su
configuración, así que los comentarios del fichero sobreviven.

La key que pegas se comprueba contra el clúster antes de escribir nada, así que
una mal copiada se ve ahí y no más tarde como un `401` dentro de cada
herramienta.

## Qué más te da

El CLI abre un panel con pestañas que se mueve con las flechas:
Expand Down Expand Up @@ -64,7 +75,22 @@ INSTALL_DIR="$HOME/.local/bin" curl -fsSL https://nan.builders/install | bash

Si la carpeta que elijas no está en tu `PATH`, el propio instalador te lo dice y te da la línea que hay que añadir a tu `~/.zshrc` o a tu `~/.bashrc`.

Hay binarios para macOS y Linux, en Intel y en ARM. En Windows, de momento, hay que compilar desde el código, y el bloque de abajo explica cómo.
En Windows, desde PowerShell:

```powershell
irm https://nan.builders/install.ps1 | iex
```

Hace el mismo trabajo: resuelve la última release, descarga el `.zip` de tu arquitectura, **verifica su checksum** y deja `nan.exe` en `%LOCALAPPDATA%\Programs
an`, añadiendo esa carpeta a tu `PATH` de usuario si no estaba. Las terminales que ya tuvieras abiertas no lo verán hasta que las reinicies.

Instala para tu usuario y no para toda la máquina, a propósito: el equivalente en Windows del `sudo` es un diálogo de elevación saliendo de un script por tubería, que es peor. Para ponerlo en otro sitio:

```powershell
& ([scriptblock]::Create((irm https://nan.builders/install.ps1))) -InstallDir "C: ools"
```

Hay binarios para macOS, Linux y Windows, en Intel y en ARM.

### Comprueba que ha ido bien

Expand Down
56 changes: 51 additions & 5 deletions src/content/docs-es/pi.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ import Callout from '../../components/docs/Callout.astro';

# 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.
[Pi](https://pi.dev) 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"`.

<Callout title="Puedes saltarte todo esto">
El [CLI de NaN](/es/docs/nan-cli) escribe esta configuración por ti: pestaña Setup, `e` para pegar tu clave, `espacio` para marcar Pi, `c` para aplicar.
Expand All @@ -31,9 +33,17 @@ En `~/.pi/agent/models.json`:
"nan": {
"baseUrl": "https://api.nan.builders/v1",
"api": "openai-completions",
"apiKey": "sk-tu-clave",
"apiKey": "sk-your-key",
"compat": { "supportsDeveloperRole": true },
"models": [
{
"id": "deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1048575,
"maxTokens": 32768
},
{
"id": "glm5.3-flash",
"name": "GLM 5.3 Flash",
Expand All @@ -43,11 +53,43 @@ En `~/.pi/agent/models.json`:
"maxTokens": 32768
},
{
"id": "deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"id": "qwen3.8-flash",
"name": "Qwen 3.8 Flash",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1048575,
"contextWindow": 262144,
"maxTokens": 32768
},
{
"id": "mimo-v2.5",
"name": "Xiaomi MiMo V2.5",
"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"],
"contextWindow": 1048576,
"maxTokens": 32768
}
]
Expand All @@ -56,6 +98,8 @@ En `~/.pi/agent/models.json`:
}
```

Esta es la configuración de los 7 modelos LLM que sirve NaN: `deepseek-v4-flash`, `glm5.3-flash`, `qwen3.8-flash`, `mimo-v2.5`, `gemma4`, `qwen3.6` y `glm5.3`. Es el mismo conjunto que escribe el [CLI de NaN](/es/docs/nan-cli), y el mismo que publica la página de [OpenCode](/es/docs/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](/es/docs/opencode) publica como `limit.output`, porque responde a la misma pregunta.

### Ponlo por defecto
Expand Down Expand Up @@ -92,5 +136,7 @@ Pídele algo corto. Si contesta, está saliendo por el clúster. Puedes cambiar
- **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.5` entra sin su audio.** 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. El modelo sigue oyendo audio 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](/es/docs/choose-a-model).

</Details>
2 changes: 1 addition & 1 deletion src/content/docs/agent-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Yours is not here? If it accepts an OpenAI base URL and an API key, it works. Co
name: 'NaN CLI',
href: '/docs/nan-cli',
kind: 'Terminal',
note: 'It configures OpenCode, Codex, Pi and droid for you, and shows you your usage.',
note: 'It configures OpenCode, Codex, Pi, droid and Hermes for you, and shows you your usage.',
},
{
name: 'MCP server',
Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/choose-a-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ If you do not know which one to pick, look for what you want to do in the first
The full spec sheets, with parameters, licenses and reasoning modes, are in [Models](/docs/models).

> **`glm5.3` is the only one the normal subscription does not cover**
> It needs a key on the premium tier. If you ask for it without one, the answer is a **`401`**, not a `403`: "This API key does not have access to the requested model". It reads like a broken key and it is not, so check the tier before you go rotating credentials. It does not show up in `GET /v1/models` either. Every other model can be called by any member.
> It needs a key on the premium tier. If you ask for it without one, the answer is a **`401`**, not a `403`: "This API key does not have access to the requested model". It reads like a broken key and it is not, so check the tier before you go rotating credentials. It does not show up in `GET /v1/models` either.
>
> Every other model **in the table above** can be called by any member. Go by that table rather than by `GET /v1/models`: that endpoint answers with what the cluster is running, which is not the same question as what your key can call, so an id can appear there and still come back `401`.

## How to read the ids

Expand Down
15 changes: 13 additions & 2 deletions src/content/docs/hermes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ You also get a web terminal, file uploads, logs and metrics, and you can expose

If you would rather run it yourself, Hermes ships a provider called **`custom`**, meant for any OpenAI-compatible endpoint. That is the one NaN uses.

<Callout title="Or let the CLI do it">
The [NaN CLI](/docs/nan-cli) configures this for you: it finds your Hermes,
fills in the three values below through `hermes config set` and leaves the
rest of your config alone. The steps here are what it does, if you would
rather do it yourself or want to know what changed.
</Callout>

<Steps>

### Install it
Expand All @@ -55,7 +62,11 @@ Choose the **`custom`** provider (it also shows up as `local`, `ollama` or `vllm
| API key | your key, the one that starts with `sk-` |
| Model | `glm5.3-flash` |

Unlike the providers Hermes ships preconfigured, `custom` **has no fixed environment variable**: you give it the address and the key here, and it keeps them in `~/.hermes/config.yaml`.
Unlike the providers Hermes ships preconfigured, `custom` **has no fixed environment variable**: you give it the address and the key here, and it keeps them in its config file.

That file is `~/.hermes/config.yaml` on macOS and Linux. On Windows it is
`%LOCALAPPDATA%\hermes\config.yaml`. `hermes config path` prints whichever
one is yours, and `HERMES_HOME` overrides both.

### Check that it works

Expand All @@ -69,7 +80,7 @@ It tells you whether the provider answers. Then start the agent and send it a me

## Switching models

The default model lives in `~/.hermes/config.yaml`, under `model.default`. You do not edit it by hand:
The default model lives in that same file, under `model.default`. You do not edit it by hand:

```bash
hermes model
Expand Down
30 changes: 28 additions & 2 deletions src/content/docs/nan-cli.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: NaN CLI
description: "The official terminal tool: usage, costs and automatic setup for OpenCode, Codex, Pi and droid."
description: "The official terminal tool: usage, costs and automatic setup for OpenCode, Codex, Pi, droid and Hermes."
order: 4
group: Set up your agent
---
Expand All @@ -23,9 +23,20 @@ It is a shortcut, not a requirement. Everything it does can be done by hand by f
| [Codex](/docs/codex) | Yes |
| Pi | Yes |
| Factory AI (`droid`) | Yes |
| [Hermes](/docs/hermes) | Yes |

Claude Code, Cursor, VS Code, Cline and Zed still need the manual configuration from their pages.

It only lists tools you actually have installed, and it only touches the NaN
part of each file: everything else in them is left as it was, and unticking a
tool takes ours back out again. Hermes is the exception to "writes the file":
the CLI drives `hermes config set`, which is Hermes' own way of writing its
config, so the comments in it survive.

The key you paste is checked against the cluster before anything is written,
so a mistyped one is caught there instead of turning up later as a `401`
inside each tool.

## What else you get

The CLI opens a panel with tabs you move through with the arrow keys:
Expand Down Expand Up @@ -64,7 +75,22 @@ INSTALL_DIR="$HOME/.local/bin" curl -fsSL https://nan.builders/install | bash

If the directory you choose is not in your `PATH`, the installer says so and hands you the line to add to your `~/.zshrc` or your `~/.bashrc`.

There are binaries for macOS and Linux, on Intel and on ARM. On Windows you have to build from source for now, and the block below explains how.
On Windows, from PowerShell:

```powershell
irm https://nan.builders/install.ps1 | iex
```

It does the same work: resolves the latest release, downloads the `.zip` for your architecture, **verifies its checksum** and puts `nan.exe` in `%LOCALAPPDATA%\Programs
an`, adding that directory to your user `PATH` if it is not there already. Terminals you already had open will not see it until you restart them.

It installs for your user and not for the whole machine, deliberately: the Windows equivalent of the `sudo` prompt is an elevation dialog out of a piped script, which is worse. To put it elsewhere:

```powershell
& ([scriptblock]::Create((irm https://nan.builders/install.ps1))) -InstallDir "C: ools"
```

There are binaries for macOS, Linux and Windows, on Intel and on ARM.

### Check that it worked

Expand Down
Loading
Loading