05 / 06

Línea de comandos

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|esIdioma 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.
  --sddSiembra además el andamiaje orientado a especificación que describe el paso 04.
nyx sdd initSiembra 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 evidenceRegenera docs/evidence/ para la toolchain instalada en este momento.
nyx add <pkg>Agrega una dependencia. --from <url> indica desde dónde clonarla.
nyx buildCompila 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 infoImprime 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 testCorre todos los tests/*.nx. Las pruebas son bloques test "nombre" { … }; un archivo con funciones test_* se saltea en silencio.

Toolchain

nyx updateTrae 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-docsCorrido 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 uninstallBorra ~/.nyx y ~/.local/bin/nyx.
nyx --versionImprime la versión instalada, como nyx 0.31.0.
nyx --helpImprime 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_LANGes 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_HOMEDónde vive la toolchain. Configúrala para usar una instalación distinta de ~/.nyx — por ejemplo, el compilador construido desde un clon.
NYX_DIAGjson agrega una línea NDJSON por diagnóstico, además de la salida legible para personas.
NYX_PROJECT_DIRLa 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"}