---
title: "Befehle — zenit Zig UI Doku"
description: "Build-, Beispiel-, Test-, Codegen- und Qualitätsbefehle an einem Ort."
url: https://zenit.z.express/de/docs/reference/commands
language: de
alternate_en: https://zenit.z.express/docs/reference/commands.md
alternate_zh: https://zenit.z.express/zh/docs/reference/commands.md
alternate_es: https://zenit.z.express/es/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
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# Befehle

Build-, Beispiel-, Test-, Codegen- und Qualitätsbefehle an einem Ort.

## Ihre App

Diese Steps stammen aus `templates/minimal-app/build.zig` der Vorlage. Der Step `app` wird nur für macOS-Ziele registriert.

```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)
```

## Beispiele im zenit-Repo

Jedes Beispiel hat zwei Steps: `zig build <name>` erzeugt ein ad-hoc-signiertes `.app`, und `zig build run-<name>` startet das Executable direkt.

| Step | .app-Name | Inhalt |
| --- | --- | --- |
| `hello-button` | Hello Button | Minimales Fenster mit Button |
| `counter-reactive` | Reactive Counter | Signal / Memo / Effect-Demo |
| `virtual-list-perf` | 100k Virtual List | VirtualList-Stresstest mit 100k Zeilen |
| `text-input` | Text Input Demo | Input / Textarea mit text\_core |
| `multi-window` | Multi Window | Zwei native Fenster, Routing pro Fenster |
| `storybook` | zenit Storybook | Showcase aller Komponenten und e2e-Ziel |
| `devtools-probe` | DevTools Probe | Abnahme des DevTools-Performance-Panels im echten Fenster |
| `interop-probe` | zenit Interop Probe | Systemweite Prüfung von Rich-Clipboard / Drag-out |
| `console-probe` | Console Probe | Console + DevTools-Prüfung im echten Fenster |
| `design-probe` | Design Probe | Ziel für den Abgleich mit Design-Mockups |

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

## Tests

### Suites

| Befehl | Funktion |
| --- | --- |
| `test` | Alias für test-headless |
| `test-headless` | Deterministische Tests; kein echtes Metal-Gerät nötig |
| `test-all` | Deterministische Tests plus Metal-Tests auf echtem Gerät |
| `test-null-backend` | Deterministische Tests auf dem Null-GPU-Backend bauen und ausführen, um die RHI-Abstraktion zu belegen |

### UI und Reaktivität

| Befehl | Funktion |
| --- | --- |
| `test-ui` | UI-Systemtests; -Dtest-filter=<substring> führt nur passende Namen aus |
| `test-ui-core` | ui\_core-Integrationstests (src/ui/core/tests.zig) |
| `test-reactive` | Tests des reaktiven Systems |
| `test-allocation-campaign` | Allocator-Fehlerpunkte an transaktionalen Framework-Grenzen durchspielen |

### Rendering und GPU

| Befehl | Funktion |
| --- | --- |
| `test-render` | Tests des render-Moduls |
| `test-gpu` | Tests der GPU-Abstraktion |
| `test-metal` | Tests, die ein echtes Metal-Gerät brauchen |
| `test-svg` | Tests für SVG-Parser / -Rasterizer |
| `test-timing-ring` | Tests des Frame-Timing-Rings |

### Text und i18n

| Befehl | Funktion |
| --- | --- |
| `test-text` | Tests des text-Moduls (Font-Katalog / Schriftstärken) |
| `test-text-core` | Tests des text\_core-Moduls |
| `test-text-properties` | Deterministische, seedbare Property-Tests für Textkoordinaten |
| `test-i18n` | Tests des i18n-Moduls |
| `test-bidi-conformance` | Vollständige Unicode 17.0.0 UAX #9-Konformitätsdaten |

### Plattform, Fenster und Packaging

| Befehl | Funktion |
| --- | --- |
| `test-window-lifecycle` | Deterministische Tests für Multi-Window-Lebenszyklus und Routing |
| `test-text-hook-owners` | Prozessweiter Ownership-Stack für Textmessungs-Hooks (Schließen eines Fensters erhält die Hooks der anderen) |
| `test-selector-scale` | HiDPI-Skalierungsweitergabe für FontSelector |
| `test-system-sdk` | System-SDK-Tests |
| `test-system-sdk-backends` | Deterministische Tests der nativen Backends |
| `check-system-sdk-cross` | System-SDK-Tests für Linux / Windows kompilieren (ohne Ausführung) |
| `test-harness` | Tests für test\_harness (file-RPC) |
| `test-package-consumer` | Eine Downstream-App gegen direkte und Zig-gefilterte Pakete bauen und starten |

## Codegen und Tools

| Befehl | Funktion |
| --- | --- |
| `bench` | Performance-Baselines: zig build bench \[-- filter\] \[-- json=path\] |
| `gen-icons` | Das per -Dicon-set gewählte Modul neu generieren (standardmäßig lucide) |
| `gen-icons-lucide` | Das öffentliche Lucide-Icon-Modul neu generieren |
| `gen-icons-common` | Das provider-neutrale common-Icon-Modul neu generieren |
| `gen-icons-untitled / gen-icons-all` | Internes Icon-Set; nur in internen Checkouts |
| `gen-component-index` | src/ui per AST scannen und component\_index\_generated.zig neu generieren |
| `capability-matrix` | Die generierte macOS-Fähigkeitsmatrix ausgeben |
| `text-corpus-dump` | Das eingecheckte T0-Textkoordinaten-Korpus ausgeben |

## Build-Optionen

| Option | Standard | Wirkung |
| --- | --- | --- |
| `-Dtest-mode=true` | `false` | Aktiviert den e2e-Harness (file-RPC-Server) |
| `-De2e-port=<n>` | `19816` | E2E-Port, verwendet im Standardnamen des RPC-Verzeichnisses |
| `-Dtest-filter=<s>` | — | Nur test-ui-Tests ausführen, deren Name den Teilstring enthält |
| `-Dicon-set=<name>` | `lucide` | Eingebauter Icon-Provider: lucide oder untitled (nur intern) |
| `-Dgpu-backend=<name>` | `metal` | GPU-Backend: metal oder null |

> NOTE
> 
> **Abhängigkeitsoptionen explizit weiterreichen.** Zig isoliert die Build-Optionen von Abhängigkeiten. Eine Downstream-App muss `.@"test-mode"` und `.@"e2e-port"` in `b.dependency("zenit", ...)` weiterreichen, damit `zig build -Dtest-mode=true` bei zenit ankommt; die Vorlage tut das bereits.

## Qualitätsskripte

| Skript | Was es prüft |
| --- | --- |
| `./scripts/check_oss_boundary.sh` | Prüft die Imports in src/ui statisch und baut dann hello-button, um sicherzustellen, dass kein verbotenes Modul erreichbar ist |
| `./scripts/check_style_literals.sh` | Senkt nackte Farb- / Schriftgrößen-Literale in Beispielen nur ab, nie auf (ui.arb-Ausnahmen sind erlaubt) |
| `bash scripts/switch_icon_set.sh lucide` | Führt test-headless und den storybook-Build mit einem Icon-Set aus, ohne den Worktree zu ändern |

> TIP
> 
> **Mit ZIG überschreiben.** Die Repo-Skripte verwenden das `zig` aus dem PATH. Um eine bestimmte Toolchain festzulegen, setzen Sie `ZIG=/absolute/path/to/zig`.

## Bundle-Prüfung

Beispiel-Bundles sind ad-hoc signiert, das quarantine-Attribut ist entfernt. Diese Befehle prüfen die Signatur und listen verbliebene erweiterte Attribute auf.

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