docs/reference/commands
Referencia · CLI

Comandos

Comandos de build, ejemplos, tests, codegen y calidad en un solo lugar.

5 min de lectura

Tu app

Estos steps provienen de templates/minimal-app/build.zig de la plantilla. El step app solo se registra para destinos macOS.

Terminal
zig build                      # build the executable
zig build run                  # build and run
zig build app                  # package a macOS .app bundle (zig-out/)
zig build -Dtest-mode=true     # enable the automation harness (forwarded to zenit)

Ejemplos del repo de zenit

Cada ejemplo tiene dos steps: zig build <name> genera un .app con firma ad-hoc, y zig build run-<name> ejecuta el binario directamente.

StepNombre del .appQué es
hello-buttonHello ButtonVentana mínima con botón
counter-reactiveReactive CounterDemo de Signal / Memo / Effect
virtual-list-perf100k Virtual ListPrueba de estrés de VirtualList con 100k filas
text-inputText Input DemoInput / Textarea con text_core
multi-windowMulti WindowDos ventanas nativas, enrutamiento por ventana
storybookzenit StorybookShowcase de todos los componentes y objetivo e2e
devtools-probeDevTools ProbeValidación en ventana real del panel de rendimiento de DevTools
interop-probezenit Interop ProbeVerificación a nivel de sistema del portapapeles enriquecido / arrastrar hacia fuera
console-probeConsole ProbeVerificación en ventana real de Console + DevTools
design-probeDesign ProbeObjetivo para comparar con maquetas de diseño
Terminal
zig build run-hello-button
zig build run-counter-reactive
zig build run-storybook

Tests

Suites

ComandoQué hace
testAlias de test-headless
test-headlessTests deterministas; no requieren un dispositivo Metal real
test-allTests deterministas más tests de Metal en dispositivo real
test-null-backendCompila y ejecuta los tests deterministas con el backend GPU Null para validar la abstracción RHI

UI y reactividad

ComandoQué hace
test-uiTests del sistema de UI; -Dtest-filter=<substring> ejecuta solo los nombres que coinciden
test-ui-coreTests de integración de ui_core (src/ui/core/tests.zig)
test-reactiveTests del sistema reactivo
test-allocation-campaignRecorre puntos de fallo del asignador en los límites transaccionales del framework

Renderizado y GPU

ComandoQué hace
test-renderTests del módulo render
test-gpuTests de la abstracción GPU
test-metalTests que requieren un dispositivo Metal real
test-svgTests del parser / rasterizador SVG
test-timing-ringTests del anillo de tiempos de frame

Texto e i18n

ComandoQué hace
test-textTests del módulo text (catálogo de fuentes / pesos)
test-text-coreTests del módulo text_core
test-text-propertiesTests de propiedades de coordenadas de texto, deterministas y con semilla
test-i18nTests del módulo i18n
test-bidi-conformanceDatos completos de conformidad UAX #9 de Unicode 17.0.0

Plataforma, ventanas y empaquetado

ComandoQué hace
test-window-lifecycleTests deterministas de ciclo de vida y enrutamiento multiventana
test-text-hook-ownersPila de propiedad del hook de medición de texto a nivel de proceso (cerrar una ventana conserva los hooks de las demás)
test-selector-scalePropagación de escala de FontSelector en HiDPI
test-system-sdkTests de System SDK
test-system-sdk-backendsTests deterministas de backends nativos
check-system-sdk-crossCompila los tests de System SDK para Linux / Windows (sin ejecutarlos)
test-harnessTests de test_harness (file-RPC)
test-package-consumerCompila y lanza una app downstream con paquetes directos y filtrados por Zig

Codegen y herramientas

ComandoQué hace
benchLíneas base de rendimiento: zig build bench [-- filter] [-- json=path]
gen-iconsRegenera el módulo elegido con -Dicon-set (lucide por defecto)
gen-icons-lucideRegenera el módulo público de iconos Lucide
gen-icons-commonRegenera el módulo de iconos common, independiente del provider
gen-icons-untitled / gen-icons-allSet de iconos interno; solo en checkouts internos
gen-component-indexEscanea el AST de src/ui y regenera component_index_generated.zig
capability-matrixImprime la matriz de capacidades de macOS generada
text-corpus-dumpImprime el corpus T0 de coordenadas de texto versionado

Opciones de build

OpciónPor defectoEfecto
-Dtest-mode=truefalseActiva el harness e2e (servidor file-RPC)
-De2e-port=<n>19816Puerto E2E, usado en el nombre del directorio RPC por defecto
-Dtest-filter=<s>—Ejecuta solo los tests de test-ui cuyo nombre contiene la subcadena
-Dicon-set=<name>lucideProvider de iconos integrado: lucide o untitled (solo interno)
-Dgpu-backend=<name>metalBackend GPU: metal o null

Scripts de calidad

ScriptQué comprueba
./scripts/check_oss_boundary.shRevisa estáticamente los imports de src/ui y luego compila hello-button para confirmar que ningún módulo prohibido es alcanzable
./scripts/check_style_literals.shHace que los literales sueltos de color / tamaño de fuente en los ejemplos solo disminuyan, nunca aumenten (se permiten escapes con ui.arb)
bash scripts/switch_icon_set.sh lucideEjecuta test-headless y el build de storybook con un set de iconos, sin tocar el worktree

Comprobación del bundle

Los bundles de ejemplo se firman ad hoc y se les quita el atributo de cuarentena. Estos comandos verifican la firma y listan los atributos extendidos que queden.

Terminal
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"
zenit · Doble licenciaGratis para proyectos de código abierto bajo GPL-3.0-only; los productos cerrados o comerciales necesitan una licencia comercial.Contacta con el autor: zongyi.xzy#gmail.com (cambia # por @)zenit 5f9add5+wip 2026-09-30