---
title: "Comandos — Docs de zenit Zig UI"
description: "Comandos de build, ejemplos, tests, codegen y calidad en un solo lugar."
url: https://zenit.z.express/es/docs/reference/commands
language: es
alternate_en: https://zenit.z.express/docs/reference/commands.md
alternate_zh: https://zenit.z.express/zh/docs/reference/commands.md
alternate_ja: https://zenit.z.express/ja/docs/reference/commands.md
alternate_ko: https://zenit.z.express/ko/docs/reference/commands.md
alternate_fr: https://zenit.z.express/fr/docs/reference/commands.md
alternate_de: https://zenit.z.express/de/docs/reference/commands.md
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# Comandos

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

## Tu app

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

```sh
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.

| Step | Nombre del .app | Qué es |
| --- | --- | --- |
| `hello-button` | Hello Button | Ventana mínima con botón |
| `counter-reactive` | Reactive Counter | Demo de Signal / Memo / Effect |
| `virtual-list-perf` | 100k Virtual List | Prueba de estrés de VirtualList con 100k filas |
| `text-input` | Text Input Demo | Input / Textarea con text\_core |
| `multi-window` | Multi Window | Dos ventanas nativas, enrutamiento por ventana |
| `storybook` | zenit Storybook | Showcase de todos los componentes y objetivo e2e |
| `devtools-probe` | DevTools Probe | Validación en ventana real del panel de rendimiento de DevTools |
| `interop-probe` | zenit Interop Probe | Verificación a nivel de sistema del portapapeles enriquecido / arrastrar hacia fuera |
| `console-probe` | Console Probe | Verificación en ventana real de Console + DevTools |
| `design-probe` | Design Probe | Objetivo para comparar con maquetas de diseño |

```sh
zig build run-hello-button
zig build run-counter-reactive
zig build run-storybook
```

## Tests

### Suites

| Comando | Qué hace |
| --- | --- |
| `test` | Alias de test-headless |
| `test-headless` | Tests deterministas; no requieren un dispositivo Metal real |
| `test-all` | Tests deterministas más tests de Metal en dispositivo real |
| `test-null-backend` | Compila y ejecuta los tests deterministas con el backend GPU Null para validar la abstracción RHI |

### UI y reactividad

| Comando | Qué hace |
| --- | --- |
| `test-ui` | Tests del sistema de UI; -Dtest-filter=<substring> ejecuta solo los nombres que coinciden |
| `test-ui-core` | Tests de integración de ui\_core (src/ui/core/tests.zig) |
| `test-reactive` | Tests del sistema reactivo |
| `test-allocation-campaign` | Recorre puntos de fallo del asignador en los límites transaccionales del framework |

### Renderizado y GPU

| Comando | Qué hace |
| --- | --- |
| `test-render` | Tests del módulo render |
| `test-gpu` | Tests de la abstracción GPU |
| `test-metal` | Tests que requieren un dispositivo Metal real |
| `test-svg` | Tests del parser / rasterizador SVG |
| `test-timing-ring` | Tests del anillo de tiempos de frame |

### Texto e i18n

| Comando | Qué hace |
| --- | --- |
| `test-text` | Tests del módulo text (catálogo de fuentes / pesos) |
| `test-text-core` | Tests del módulo text\_core |
| `test-text-properties` | Tests de propiedades de coordenadas de texto, deterministas y con semilla |
| `test-i18n` | Tests del módulo i18n |
| `test-bidi-conformance` | Datos completos de conformidad UAX #9 de Unicode 17.0.0 |

### Plataforma, ventanas y empaquetado

| Comando | Qué hace |
| --- | --- |
| `test-window-lifecycle` | Tests deterministas de ciclo de vida y enrutamiento multiventana |
| `test-text-hook-owners` | Pila 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-scale` | Propagación de escala de FontSelector en HiDPI |
| `test-system-sdk` | Tests de System SDK |
| `test-system-sdk-backends` | Tests deterministas de backends nativos |
| `check-system-sdk-cross` | Compila los tests de System SDK para Linux / Windows (sin ejecutarlos) |
| `test-harness` | Tests de test\_harness (file-RPC) |
| `test-package-consumer` | Compila y lanza una app downstream con paquetes directos y filtrados por Zig |

## Codegen y herramientas

| Comando | Qué hace |
| --- | --- |
| `bench` | Líneas base de rendimiento: zig build bench \[-- filter\] \[-- json=path\] |
| `gen-icons` | Regenera el módulo elegido con -Dicon-set (lucide por defecto) |
| `gen-icons-lucide` | Regenera el módulo público de iconos Lucide |
| `gen-icons-common` | Regenera el módulo de iconos common, independiente del provider |
| `gen-icons-untitled / gen-icons-all` | Set de iconos interno; solo en checkouts internos |
| `gen-component-index` | Escanea el AST de src/ui y regenera component\_index\_generated.zig |
| `capability-matrix` | Imprime la matriz de capacidades de macOS generada |
| `text-corpus-dump` | Imprime el corpus T0 de coordenadas de texto versionado |

## Opciones de build

| Opción | Por defecto | Efecto |
| --- | --- | --- |
| `-Dtest-mode=true` | `false` | Activa el harness e2e (servidor file-RPC) |
| `-De2e-port=<n>` | `19816` | Puerto 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>` | `lucide` | Provider de iconos integrado: lucide o untitled (solo interno) |
| `-Dgpu-backend=<name>` | `metal` | Backend GPU: metal o null |

> NOTE
> 
> **Reenvía las opciones de la dependencia de forma explícita.** Zig aísla las opciones de build de las dependencias. Una app downstream debe reenviar `.@"test-mode"` y `.@"e2e-port"` en `b.dependency("zenit", ...)` para que `zig build -Dtest-mode=true` llegue a zenit; la plantilla ya lo hace.

## Scripts de calidad

| Script | Qué comprueba |
| --- | --- |
| `./scripts/check_oss_boundary.sh` | Revisa 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.sh` | Hace 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 lucide` | Ejecuta test-headless y el build de storybook con un set de iconos, sin tocar el worktree |

> TIP
> 
> **Sobrescribe con ZIG.** Los scripts del repo usan el `zig` del PATH. Para fijar una toolchain concreta, define `ZIG=/absolute/path/to/zig`.

## 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.

```sh
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"
```
