Un solo comando hace todo: ejecuta un archivo, administra un proyecto, revisa tu trabajo y mantiene la toolchain. Esta página lo lista completo, en el orden en que lo imprime nyx --help.
Ejecutar un archivo
$ nyx <archivo.nx> [args...]
Compila el archivo a un binario nativo en un directorio temporal, lo ejecuta con los argumentos que le diste, y limpia. También funciona como shebang: un archivo .nx que empieza con #!/usr/bin/env nyx es un script ejecutable.
Proyectos
| nyx init [nombre] | Crea un proyecto: nyx.toml, src/main.nx, .gitignore, AGENTS.md, CAPABILITIES.md y docs/nyx/. |
|---|---|
| --lang en|es | Idioma de los documentos sembrados. Por defecto toma NYX_LANG, y en si esa variable no está. |
| --agent=… | --agent=claude,cursor,copilot — siembra además un archivo adaptador corto por cada herramienta nombrada. |
| --sdd | Siembra además el andamiaje orientado a especificación que describe el paso 04. |
| nyx sdd init | Siembra ese mismo andamiaje en un proyecto que ya existe: constitución, glosario, evidencia, plantilla de ADR, specs/, el test de constitución y la guía. |
| nyx sdd evidence | Regenera docs/evidence/ para la toolchain instalada en este momento. |
| nyx add <pkg> | Agrega una dependencia. --from <url> indica desde dónde clonarla. |
| nyx build | Compila el proyecto a un binario con el nombre de [package].name. |
| nyx run [args…] | Compila y ejecuta. Los argumentos van a tu programa; usa -- antes de cualquiera que se pueda confundir con una bandera del propio nyx. nyx run archivo.nx ejecuta ese archivo directamente. |
| nyx info | Imprime el nombre, la versión, el punto de entrada y el modo de memoria del proyecto. |
| nyx capabilities [salida.md] | Regenera el índice de la biblioteca estándar. nyx build lo hace solo cuando el archivo falta o lo escribió otra versión, así que rara vez hace falta a mano. |
Auto-verificación
Ninguno de estos linkea ni ejecuta nada, y todos salen con código distinto de cero ante un problema, así que se encadenan con &&. Sin archivo, usan src/main.nx dentro de un proyecto y script.nx fuera de uno.
| nyx check [f.nx] | Analiza y chequea tipos. La retroalimentación más rápida que hay. |
|---|---|
| nyx fmt [f.nx] | Imprime el archivo en su forma canónica por la salida estándar. Nunca edita en el lugar. |
| nyx vet [f.nx] | Variables sin usar, código muerto, imports sin usar, y las trampas conocidas del lenguaje como warning[W1NN] archivo:línea. |
| nyx test | Corre todos los tests/*.nx. Las pruebas son bloques test "nombre" { … }; un archivo con funciones test_* se saltea en silencio. |
Toolchain
| nyx update | Trae la versión más reciente a ~/.nyx, recompila el compilador y las cinco herramientas, y después imprime qué cambió y qué trampas se corrigieron. |
|---|---|
| nyx update --sync-docs | Corrido dentro de un proyecto: refresca AGENTS.md, la referencia y las guías desde la toolchain instalada, regenera CAPABILITIES.md, y deja un .bak de todo lo que reemplaza. |
| nyx report [f.md] | Crea un FRICTION.md en el proyecto para un bug, una limitación o un hueco de documentación. Es local; --send es un paso aparte y explícito. |
| nyx uninstall | Borra ~/.nyx y ~/.local/bin/nyx. |
| nyx --version | Imprime la versión instalada, como nyx 0.31.0. |
| nyx --help | Imprime esta lista. nyx help también funciona. |
Una vez por día — después de ubicar la toolchain y el binario del compilador, y antes de despachar tu subcomando — el wrapper compara tu commit local contra el remoto y lo menciona por la salida de error si hay una versión más nueva. Nunca actualiza por su cuenta.
Variables de entorno
| NYX_LANG | es pasa los diagnósticos del compilador al español y hace que nyx init siembre los documentos en español. Cualquier otro valor significa inglés. |
|---|---|
| NYX_HOME | Dónde vive la toolchain. Configúrala para usar una instalación distinta de ~/.nyx — por ejemplo, el compilador construido desde un clon. |
| NYX_DIAG | json agrega una línea NDJSON por diagnóstico, además de la salida legible para personas. |
| NYX_PROJECT_DIR | La raíz del proyecto con la que se resuelve import "src/…". El wrapper la encuentra subiendo desde el directorio actual; ponerla explícitamente tiene prioridad. |
Con NYX_LANG=es, el diagnóstico del paso 02 sale así:
$ NYX_LANG=es nyx greet.nx ✗ error [NYX1002] en 'main' (línea 7): 'greeting' no declarado (¿quisiste decir 'greet'?)
Y con NYX_DIAG=json, el mismo fallo produce además una línea pensada para que la lea un programa:
$ NYX_DIAG=json nyx greet.nx {"code":"NYX1002","severity":"error","phase":"semantic","line":7,"column":19,"function":"main","message":"'greeting' not declared (did you mean 'greet'?)","suggestion":"greet"}