
Ein Terminal in Rust: heute für macOS, Windows und Linux, iOS und Android sind geplant. Auf dem Mac läuft die KI mit Apple Intelligence komplett offline.

Ein Kern, fünf Plattformen
Terminal, Layout, Verbindungen und Sync stecken in einem Rust-Crate. Pakete für macOS, Windows und Linux gibt es heute, alle drei vom Autor getestet; iOS und Android sind geplant.
KI komplett offline
Auf einem Mac mit Apple Intelligence läuft der KI-Chat auf dem Gerät: ohne Konto, ohne Schlüssel, nichts verlässt den Mac.
Schnell, gemessen
Ein Raster von 160×50 zeichnet der WebGL2-Renderer in rund 1 ms, Canvas 2D braucht 4.5 bis 7.7 ms.
Eigener Sync
Über die eigene Nextcloud, Ende-zu-Ende verschlüsselt. Gebaut, noch nicht gegen eine echte Nextcloud ausprobiert.
Beta, Vorabversion (0.0.1-beta1). Die aktuelle Vorabversion ist ein GitHub-Prerelease mit Paketen für macOS (Apple Silicon), Windows (x64) und Linux (x86_64). Der Autor hat sie auf allen drei Systemen getestet. Nichts davon ist signiert oder notarisiert. Eine Beta ist in reger Entwicklung und kann kaputtgehen. Die Bilder auf dieser Seite zeigen das Design für das Release; die Tabelle weiter unten sagt, was heute gebaut ist. Der Quelltext liegt auf GitHub.
holzWave ist ein Terminal-Emulator mit gekachelten Panes, Tabs und Workspaces. Er verbindet sich per SSH und verbindet sich bei Abbruch wieder, öffnet Dateien und Vorschauen neben der Shell, gleicht seine Einstellungen über die eigene Nextcloud ab und hat einen KI-Chat, der dein Terminal erst sieht, wenn du dieses Pane freigibst. Auf einem Mac mit Apple Intelligence läuft dieser Chat komplett offline auf dem Gerät.
holzWave ist von Wave Terminal inspiriert, das für die Bedienung die Referenz ist. Es begann als Fork, ist heute ein eigenes Projekt und enthält keinen Code von Wave. Es ist unabhängig und weder mit dem Wave-Projekt verbunden noch von ihm empfohlen. Wer heute ein fertiges Terminal dieser Art will, nimmt Wave und kann es unterstützen.
Funktionen

Workspaces, Tabs und Kacheln
Drei Ebenen mit je eigener Form: Workspaces sind runde Pillen mit Raute in der Titelleiste, Tabs sind nummeriert und sitzen in einer Zeile darunter, Panes sind Kacheln mit verschiebbaren Trennern. Das Layout überlebt einen Neustart. Das läuft unter macOS, Windows und Linux. Das Bild zeigt dasselbe Fenster unter Linux. Die Fensterleiste zeichnet holzWave selbst, auf jeder Plattform mit denselben Werten.

Die Befehlspalette
Aktionen findet man per Name mit einer unscharfen Suche, die ein Kürzel öffnet (⌘K auf dem Mac). Das Bild zeigt die Gruppierung von Aktionen, Hosts und Workspaces.

Tastenkürzel, die man ändern kann
Jede Aktion hat für jede Plattform eine Vorgabe und lässt sich in einem Editor neu belegen, der die Taste aufnimmt und Konflikte zeigt, bevor er etwas ersetzt. Einfaches Ctrl+Buchstabe bleibt bei der Shell.

Dateien und Vorschauen
Ein Dateibrowser für lokale Dateien und für SSH-Hosts (SFTP), mit Bildern, PDF, Video, Audio und Markdown als eigenen Panes, dazu ein Code-Editor, der lokal und über SFTP speichert. Gebaut und gegen einen Testserver geprüft; noch nicht gegen echte Hosts.
SSH, Sync und Seitenleiste
Ein Pane kann eine Shell auf einem anderen Rechner per SSH ausführen, mit Jump-Host, Prüfung des Host-Schlüssels und einer Wiederverbindung, die das Pane erhält; auch WSL und Docker öffnen sich als Panes. Passwörter und Schlüssel liegen nur im Schlüsselbund des Systems. Ein kleiner Befehl wsh in der Shell öffnet Dateien und Vorschauen im Fenster. Die Seitenleiste zeigt gespeicherte Hosts, einen durchsuchbaren Verlauf deiner Befehle und Widgets (Notizen, einen Timer, eigene Befehlslisten), und ein Systemmonitor zeigt diesen Rechner und Linux-Hosts über SSH. Einstellungen, Themes und Layouts können über die eigene Nextcloud abgeglichen werden, verschlüsselt, bevor sie den Rechner verlassen. Das alles ist gebaut und gegen Testserver geprüft; an echten Hosts und an einer echten Nextcloud ist es noch nicht ausprobiert.
Ein KI-Chat, der erst fragt, und auf dem Mac komplett offline
Ein Chat in einem Pane, in der Seitenleiste, in der Palette und in der Shell mit wsh ai. Auf einem Mac mit macOS 26 und Apple Intelligence läuft er mit dem Modell auf dem Gerät komplett offline: ohne Konto, ohne Schlüssel, und nichts verlässt den Mac. Daneben arbeitet er mit Anthropic, OpenAI und Gemini, mit lokalen Servern wie Ollama, LM Studio und llama.cpp und mit KI-Gateways. Er sieht Terminal-Ausgabe erst, wenn du dieses Pane freigibst, jede Nachricht zeigt, was hinausgeht, jede Aktion, die eine Datei ändert oder einen Befehl ausführt, braucht deine Freigabe, und Schlüssel bleiben im Schlüsselbund des Systems. Die Anbieter sind gegen Testserver und Test-Anbieter geprüft; noch nicht gegen echte Anbieter.

Auf dem Telefon
Ein Pane pro Bildschirm. Workspaces und Tabs wandern in ein Blatt von unten, über der Systemtastatur sitzt eine Zeile mit esc tab ctrl alt ← ↑ ↓ →. Unter iOS ist SSH vorgesehen, eine lokale Shell lässt das Betriebssystem nicht zu. Unter Android sind lokale Shell und SSH geplant. Beides ist noch nicht gebaut.
Was heute funktioniert und was kommt
✅ gebaut und vom Autor ausgeführt · 🧪 gebaut, gegen Testserver geprüft, noch nicht gegen echte Hosts oder Anbieter · 🔜 geplant, nicht gebaut
| Stand | |
|---|---|
| Lokale Shell in einem Pane, Grössenänderung, Unicode mit breiten Zeichen, unter macOS, Windows und Linux | ✅ |
| Gekachelte Panes, verschiebbare Trenner, Tabs, Workspaces, gespeichertes Layout | ✅ |
| Scrollback, Auswahl, Kopieren, Einfügen | ✅ |
| WebGL2-Renderer mit Canvas-2D-Rückfall | ✅ |
| Befehlspalette, änderbare Tastenkürzel, Themes | ✅ |
| Komplett offline: KI-Modell auf dem Gerät (macOS 26 oder neuer mit Apple Intelligence), ohne Konto und Schlüssel | ✅ |
| SSH mit Wiederverbindung, Jump-Host und Schlüsselbund, WSL- und Docker-Panes, Verbindungsverwaltung | 🧪 |
| Dateibrowser, Vorschauen und Code-Editor, lokal und über SFTP | 🧪 |
wsh-Befehl, Seitenleiste mit Hosts, Verlauf und Widgets |
🧪 |
| Systemmonitor dieses Rechners und von Linux-Hosts über SSH | 🧪 |
| Verschlüsselter Sync über WebDAV/Nextcloud | 🧪 |
| KI-Chat mit Anthropic, OpenAI, Gemini, lokalen Servern und Gateways | 🧪 |
| Kubernetes, Talos, Azure CLI und GAM7 als Blöcke | 🔜 |
| iOS und Android | 🔜 |
| Signierte Pakete, Kitty-Grafik, Hyperlinks | 🔜 |
Bewusst nicht enthalten: ein Webbrowser-Block. Die Versionen laufen 0.0.1-alpha3 → 0.0.1-beta1 (jetzt) → 0.0.1, Alpha und Beta sind GitHub-Prereleases. Der ganze Plan steht in der Roadmap.
So ist es gebaut
Ein Rust-Crate hält den ganzen Zustand, das Webview spiegelt ihn. Als Terminal-Engine dient libghostty-vt hinter einem TerminalEngine-Trait, mit alacritty_terminal als Rückfallebene; die Engine liest rund 290 MiB/s. Die Hülle ist Tauri 3 (Alpha), die Oberfläche TypeScript ohne Framework und ohne Bundler. Lokale Shells laufen über portable-pty, SSH über russh, Geheimnisse nur im Schlüsselbund des Systems. Sicherheitskritischer Code wie VT-Parser und SSH kommt aus etablierten Bibliotheken. holzWave schickt von sich aus nichts irgendwohin: keine Telemetrie, kein Konto. Mehr in der Architektur.
Installieren
holzWave 0.0.1-beta1 ist eine Vorschau zum Ausprobieren und um zu melden, was kaputtgeht. Alle Dateien, jeweils mit einer .sha256-Prüfsumme, liegen auf der Release-Seite.
macOS (Apple Silicon), vom Autor getestet
Mit Homebrew, aus den Casks im Repository:
brew tap holzcloud/holzwave https://github.com/holzcloud/holzWave
brew trust --cask holzcloud/holzwave/holzwave@preview
brew install --cask holzcloud/holzwave/holzwave@preview
brew trust ist einmal pro Cask nötig. Es gibt zwei Kanäle: holzwave@preview (die neueste Alpha, Beta oder reguläre Version) und holzwave (die neueste reguläre Version, ab 0.0.1; es gibt noch keine). Oder das DMG holzWave_0.0.1-beta1_aarch64.dmg nehmen, holzWave in „Programme“ ziehen und einmal per Rechtsklick und „Öffnen“ starten. Die App ist nur ad hoc signiert (keine Developer ID, keine Notarisierung); der Cask entfernt das Quarantäne-Attribut, damit sie sich öffnet.
Windows (x64), vom Autor getestet
holzWave_0.0.1-beta1_x64-setup.exe: ein Installer pro Benutzer, unsigniert (SmartScreen warnt: Weitere Informationen, Trotzdem ausführen). Er wird auf einem Mac cross-gebaut und vom Autor unter Windows getestet. Er braucht die WebView2-Laufzeit (Teil von Windows 11).
Linux (x86_64), vom Autor getestet
holzWave_0.0.1-beta1_x86_64.rpm, holzWave_0.0.1-beta1_amd64.deb und holzWave_0.0.1-beta1_x86_64.AppImage. Sie werden in einem amd64-Container auf einem Mac gebaut und vom Autor unter Linux getestet. Sie brauchen glibc 2.39 oder neuer und WebKitGTK 4.1 (Ubuntu 24.04+, Debian 13+, Fedora 40+). Bekanntes Problem: Das AppImage gibt seinen eigenen Bibliothekspfad an die Shell weiter, deshalb können Programme wie grep oder flatpak in einem holzWave-Pane Bibliothekswarnungen ausgeben. Bis das behoben ist, das rpm oder das deb nehmen.
Aus dem Quelltext bauen
Wer es selbst bauen will, statt die Vorschau zu installieren. Auf macOS (Apple Silicon):
brew install rustup zig@0.16 node
export PATH="/opt/homebrew/opt/zig@0.16/bin:$PATH" # exakt Zig 0.16.0
rustup default stable
git clone https://github.com/holzcloud/holzWave
cd holzWave
npm --prefix app ci && npm --prefix app run build
cargo run -p holzwave-app
Es muss genau Zig 0.16.0 sein: libghostty-vt wird von Ghosttys eigenem build.zig gebaut, und Zig 0.17 hat eine API entfernt, die es nutzt. Aus demselben Grund ist das Crate per Git-Revision festgelegt. Tests: cargo test --workspace. Bauanleitungen für Windows und Linux liegen im Repository.
Wo holzWave steht
- Vorschauqualität. Der Autor hat es unter macOS (Apple Silicon), Windows und Linux getestet.
- Vieles ist nur gegen Testserver und Test-Anbieter geprüft, nicht gegen echte Hosts, eine echte Nextcloud oder echte KI-Anbieter.
- Keine Signatur: die macOS-App ist nur ad hoc signiert, ohne Developer ID und Notarisierung, der Windows-Installer ist unsigniert. Signierte Pakete sind geplant.
- Tauri 3 und
libghostty-vtsind Vorabversionen, ihre Schnittstellen ändern sich. - Ein einzelner Betreuer und absichtlich keine CI: alles wird lokal gebaut und getestet.
Dokumentation: Architektur, Design, Roadmap, Sync-Format.
Dank und Lizenz
Wave Terminal für die Idee und das Bedienmodell; wer kann, unterstützt Wave. Ghostty für libghostty-vt und libghostty-rs für die Rust-Anbindung. Die Schriften Plus Jakarta Sans, Manrope und JetBrains Mono stehen unter der SIL Open Font License 1.1.
holzWave steht unter der GPL-3.0. Unterstützen kann man das Projekt über GitHub Sponsors.
Weitere Projekte
holzkube-manager, die Verwaltung für Talos-Kubernetes-Cluster, holzcloud-CMS, das CMS ohne JavaScript, und holzBar, der Menüleisten-Manager für macOS. Zur Startseite.