Software nativo, documentado para agentes.
Nyx compila a código nativo con LLVM, hospeda su propio compilador y entrega cada proyecto con lo que un agente de IA necesita para escribirlo bien.
Instalación
$curl -sSf https://nyxlang.com/install.sh | sh
Linux · x86_64 / aarch64 / armv7l · Termux
01 Instalación
Un comando para instalarlo. Uno para empezar un proyecto.
| Requisitos | clang, make y git, más las cabeceras de desarrollo de libgc, OpenSSL y zlib. El instalador instala lo que falte con el gestor de paquetes que encuentre: apt, dnf, pacman, apk, xbps, o pkg en Termux. |
|---|---|
| Instala en | ~/.nyx, con un enlace en ~/.local/bin/nyx (en Termux, $PREFIX/bin/nyx). Si ese directorio no está en tu PATH, el instalador lo agrega a tu perfil de shell y te avisa. |
| Verificar | nyx --version — imprime la versión instalada. |
| Actualizar | nyx update — trae la versión más reciente, la recompila e imprime qué cambió. |
| Desinstalar | nyx uninstall — borra la toolchain y el enlace que creó. |
Primer proyectoterminal
$ nyx init my-app crea nyx.toml, src/main.nx, AGENTS.md y docs/nyx/$ cd my-app$ nyx run compila el proyecto y lo ejecuta
Muestra
Cómo se lee el lenguaje.
sample.nxnyx
enum Shape { Circle(int), Square(int), Rect(int, int) } fn area(s: Shape) -> int { return match s { // exhaustive: every variant must be covered Shape.Circle(r) => 3 * r * r, Shape.Square(l) => l * l, Shape.Rect(w, h) => w * h } } fn main() { let rect: Shape = Shape.Rect(3, 7) print("area = ${area(rect)}") }
| Muestra | Un enum con match exhaustivo sobre cada variante, interpolación de strings y tipos explícitos en cada binding. |
|---|---|
| Verificado con | nyx check — analiza y chequea tipos, sin linkear y sin ejecutar. |
| Ejecútalo | nyx sample.nx |
02 Documentación
La guía, paso a paso.
- 01Instalaciónrequisitos, qué queda dónde, cómo actualizar y cómo desinstalar.
- 02Primer programade un solo archivo .nx a un binario nativo que puedes distribuir.
- 03Proyectosnyx.toml, src/, tests/ y dependencias.
- 04AgentesAGENTS.md, CAPABILITIES.md y docs/nyx/: el contexto que lee un asistente.
- 05Línea de comandoscada subcomando: build, run, check, vet, fmt, test, add, update.
- 06Sintaxistipos, enums, match exhaustivo, Result y el operador ?.
03 Desarrolla con agentes
Cada proyecto lleva el contexto que un agente necesita para escribirlo.
Lo que siembra nyx init
| AGENTS.md | El manual de campo: cómo se construye un programa acá, los rieles duros y las trampas que arruinan un primer intento. Neutral respecto del proveedor, según la convención agents.md. |
|---|---|
| CAPABILITIES.md | Índice generado de la biblioteca estándar — lo que ya existe, para que nadie lo reinvente. Se regenera en cada build. |
| docs/nyx/ | La referencia densa más tres guías: escribir un programa, arreglar un error de compilación y reportar fricción. |
Herramientas
- nyx vetNombra las trampas grep-ables en lugar de dejar un error del parser:
warning[W101] src/main.nx:12 - nyx init --agent=claude,cursor,copilotUn archivo adaptador corto y opcional por herramienta. AGENTS.md sigue siendo la única fuente de verdad; el adaptador solo apunta ahí.
- nyx init --sddSiembra el andamiaje orientado a especificación: constitución, glosario, plantilla de ADR y specs/ — así el agente pregunta en vez de inventar.
- nyx reportDeja un FRICTION.md en el proyecto. No se envía nada por su cuenta.
AGENTS.md — sembrado por nyx initextracto
> **REGLA DE ORO — NO leas el fuente del compilador ni de la biblioteca estándar** > (`std/`, `compiler/`, ni nada bajo tu instalación de Nyx) «para entender cómo funciona». > No hace falta y te vas a perder. Si buscas una función, búscala en `CAPABILITIES.md`. … ## Rieles duros (NO hagas esto) - **NO inventes sintaxis.** Si dudas de que una palabra clave o una feature exista, probablemente no exista — revisa `CAPABILITIES.md` (o <https://nyxlang.com/by-example/>) en vez de adivinar. - **NO reinventes lo que ya hace la stdlib.** Si `CAPABILITIES.md` lo lista, úsalo. - **NO parches una limitación.** Repórtala con `nyx report` y detente. …
04 Fuente
Abierto, versionado y honesto sobre ser 0.x.
| Licencia | Apache-2.0 |
|---|---|
| Repositorio | https://github.com/nyxlang-dev/nyx |
| Changelog | CHANGELOG.md — cada versión, con qué cambió y por qué. |
| Estado | 0.x: en desarrollo activo. La API puede cambiar y no se garantiza la compatibilidad entre versiones minor. |