
Un terminale scritto in Rust: oggi per macOS, Windows e Linux, iOS e Android sono previsti. Su un Mac con Apple Intelligence l’IA funziona completamente offline.

Un nucleo, cinque piattaforme
Terminale, layout, connessioni e sincronizzazione stanno in un crate Rust. Oggi esistono pacchetti per macOS, Windows e Linux e l’autore li ha provati tutti e tre; iOS e Android sono previsti.
IA completamente offline
Su un Mac con Apple Intelligence la chat IA gira sul dispositivo: senza account, senza chiave, niente lascia il Mac.
Veloce, misurato
Il renderer WebGL2 disegna una griglia di 160×50 in circa 1 ms; Canvas 2D impiega da 4,5 a 7,7 ms.
Sincronizzazione propria
Tramite la propria Nextcloud, cifrata end-to-end. Costruita; non ancora provata con una Nextcloud reale.
Beta, anteprima (0.0.1-beta1). L’anteprima attuale è una prerelease su GitHub con pacchetti per macOS (Apple Silicon), Windows (x64) e Linux (x86_64). L’autore l’ha provata su tutti e tre i sistemi. Niente è firmato né notarizzato. Una beta è in pieno sviluppo e può rompersi. Le immagini di questa pagina mostrano il design della versione prevista; la tabella qui sotto dice cosa è costruito oggi. Il codice sorgente è su GitHub.
holzWave è un emulatore di terminale con pannelli affiancati, schede e spazi di lavoro. Si collega via SSH e si riconnette, apre file e anteprime accanto alla shell, sincronizza le impostazioni tramite la propria Nextcloud e ha una chat IA che vede il terminale solo dopo che si condivide quel pannello. Su un Mac con Apple Intelligence questa chat funziona completamente offline, sul dispositivo.
holzWave si ispira a Wave Terminal, che è il riferimento per l’uso. È nato come fork, oggi è un progetto a sé e non contiene codice di Wave. È indipendente, né collegato al progetto Wave né raccomandato da esso. Chi oggi vuole un terminale finito di questo tipo prende Wave e può sostenerlo.
Funzioni

Spazi di lavoro, schede e pannelli
Tre livelli, ciascuno con la sua forma: gli spazi di lavoro sono pillole rotonde con un rombo nella barra del titolo, le schede sono numerate e stanno in una riga sotto, i pannelli sono riquadri con divisori spostabili. Il layout sopravvive a un riavvio. Funziona su macOS, Windows e Linux. L’immagine mostra la stessa finestra su Linux. holzWave disegna da sé la barra della finestra, con gli stessi valori su ogni piattaforma.

La palette dei comandi
Le azioni si trovano per nome con una ricerca sfocata che si apre con una scorciatoia (⌘K sul Mac). L’immagine mostra il raggruppamento di azioni, host e spazi di lavoro.

Scorciatoie modificabili
Ogni azione ha un valore predefinito per ogni piattaforma e si può riassegnare in un editor che registra il tasto e mostra i conflitti prima di sostituire qualcosa. Ctrl+lettera semplice resta alla shell.

File e anteprime
Un browser di file per file locali e per host SSH (SFTP), con immagini, PDF, video, audio e Markdown come pannelli a sé, più un editor di codice che salva in locale e via SFTP. Costruito e provato con un server di prova; non ancora con host reali.
SSH, sincronizzazione e barra laterale
Un pannello può eseguire una shell su un altro computer via SSH, con jump host, controllo della chiave dell’host e una riconnessione che mantiene il pannello; anche WSL e Docker si aprono come pannelli. Password e chiavi stanno solo nel portachiavi del sistema. Un piccolo comando wsh nella shell apre file e anteprime nella finestra. La barra laterale mostra host salvati, una cronologia dei comandi in cui si può cercare e widget (note, un timer, elenchi di comandi propri), e un monitor di sistema mostra questo computer e host Linux via SSH. Impostazioni, temi e layout possono sincronizzarsi tramite la propria Nextcloud, cifrati prima di lasciare il computer. Tutto questo è costruito e provato con server di prova; non è ancora stato provato con host reali o con una Nextcloud reale.
Una chat IA che prima chiede, e completamente offline sul Mac
Una chat in un pannello, nella barra laterale, nella palette e nella shell con wsh ai. Su un Mac con macOS 26 e Apple Intelligence funziona con il modello sul dispositivo completamente offline: senza account, senza chiave, e niente lascia il Mac. Funziona anche con Anthropic, OpenAI e Gemini, con server locali come Ollama, LM Studio e llama.cpp e con gateway IA. Vede l’output del terminale solo dopo che si condivide quel pannello, ogni messaggio mostra cosa esce, ogni azione che modifica un file o esegue un comando richiede la tua approvazione, e le chiavi restano nel portachiavi del sistema. I fornitori sono provati con server di prova e fornitori simulati; non ancora con fornitori reali.

Sul telefono
Un pannello per schermo. Spazi di lavoro e schede passano in un foglio dal basso, e sopra la tastiera di sistema c’è una riga con esc tab ctrl alt ← ↑ ↓ →. Su iOS è previsto SSH, perché il sistema non permette una shell locale. Su Android sono previsti shell locale e SSH. Entrambi non sono ancora costruiti.
Cosa funziona oggi e cosa arriva
✅ costruito ed eseguito dall’autore · 🧪 costruito, provato con server di prova, non ancora con host o fornitori reali · 🔜 previsto, non costruito
| Stato | |
|---|---|
| Shell locale in un pannello, ridimensionamento, Unicode con caratteri larghi, su macOS, Windows e Linux | ✅ |
| Pannelli affiancati, divisori spostabili, schede, spazi di lavoro, layout salvato | ✅ |
| Scrollback, selezione, copia, incolla | ✅ |
| Renderer WebGL2 con ripiego su Canvas 2D | ✅ |
| Palette dei comandi, scorciatoie modificabili, temi | ✅ |
| Completamente offline: il modello IA sul dispositivo (macOS 26 o successivo con Apple Intelligence), senza account e senza chiave | ✅ |
| SSH con riconnessione, jump host e portachiavi, pannelli WSL e Docker, gestione delle connessioni | 🧪 |
| Browser di file, anteprime ed editor di codice, in locale e via SFTP | 🧪 |
Comando wsh, barra laterale con host, cronologia e widget |
🧪 |
| Monitor di sistema di questo computer e di host Linux via SSH | 🧪 |
| Sincronizzazione cifrata via WebDAV/Nextcloud | 🧪 |
| Chat IA con Anthropic, OpenAI, Gemini, server locali e gateway | 🧪 |
| Kubernetes, Talos, Azure CLI e GAM7 come blocchi | 🔜 |
| iOS e Android | 🔜 |
| Pacchetti firmati, grafica Kitty, collegamenti ipertestuali | 🔜 |
Volutamente assente: un blocco browser web. Le versioni vanno da 0.0.1-alpha3 a 0.0.1-beta1 (attuale) e poi 0.0.1; alpha e beta sono prerelease di GitHub. L’intero piano è nella roadmap.
Com’è costruito
Un crate Rust tiene tutto lo stato e la webview lo rispecchia. Come motore di terminale c’è libghostty-vt dietro un trait TerminalEngine, con alacritty_terminal come ripiego; il motore legge circa 290 MiB/s. Il guscio è Tauri 3 (alpha), l’interfaccia TypeScript senza framework e senza bundler. Le shell locali girano tramite portable-pty, SSH tramite russh, con i segreti solo nel portachiavi del sistema. Il codice critico per la sicurezza, come il parser VT e SSH, viene da librerie consolidate. holzWave non invia nulla da sé: nessuna telemetria, nessun account. Di più nell’architettura.
Installare
holzWave 0.0.1-beta1 è un’anteprima per provare e segnalare ciò che si rompe. Tutti i file, ciascuno con una somma di controllo .sha256, sono sulla pagina della release.
macOS (Apple Silicon), provato dall’autore
Con Homebrew, dai cask del 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 serve una volta per cask. Ci sono due canali: holzwave@preview (l’ultima alpha, beta o versione normale) e holzwave (l’ultima versione normale, da 0.0.1; non ce n’è ancora una). Oppure si prende il DMG holzWave_0.0.1-beta1_aarch64.dmg, si trascina holzWave in Applicazioni e lo si apre una volta con clic destro e Apri. L’app è firmata solo ad hoc (né Developer ID né notarizzazione); il cask rimuove l’attributo di quarantena perché si apra.
Windows (x64), provato dall’autore
holzWave_0.0.1-beta1_x64-setup.exe: un programma di installazione per utente, non firmato (SmartScreen avvisa: Ulteriori informazioni, Esegui comunque). È compilato in cross su un Mac e provato dall’autore su Windows. Richiede il runtime WebView2 (incluso in Windows 11).
Linux (x86_64), provato dall’autore
holzWave_0.0.1-beta1_x86_64.rpm, holzWave_0.0.1-beta1_amd64.deb e holzWave_0.0.1-beta1_x86_64.AppImage. Sono compilati in un container amd64 su un Mac e provati dall’autore su Linux. Richiedono glibc 2.39 o successivo e WebKitGTK 4.1 (Ubuntu 24.04+, Debian 13+, Fedora 40+). Problema noto: l’AppImage passa il proprio percorso delle librerie alla shell, perciò programmi come grep o flatpak possono stampare avvisi sulle librerie in un pannello di holzWave. Finché non è risolto, usare l’rpm o il deb.
Compilare dai sorgenti
Per compilarlo da sé invece di installare l’anteprima. Su macOS (Apple Silicon):
brew install rustup zig@0.16 node
export PATH="/opt/homebrew/opt/zig@0.16/bin:$PATH" # esattamente 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
Deve essere esattamente Zig 0.16.0: libghostty-vt viene compilato dal build.zig di Ghostty, e Zig 0.17 ha rimosso un’API che usa. Per lo stesso motivo il crate è fissato per revisione Git. Test: cargo test --workspace. Guide alla compilazione per Windows e Linux sono nel repository.
A che punto è holzWave
- Qualità da anteprima. L’autore l’ha provato su macOS (Apple Silicon), Windows e Linux.
- Molto è stato provato solo con server di prova e fornitori simulati, non con host reali, una Nextcloud reale o fornitori IA reali.
- Nessuna firma: l’app macOS è firmata solo ad hoc, senza Developer ID né notarizzazione, e il programma di installazione per Windows non è firmato. Pacchetti firmati sono previsti.
- Tauri 3 e
libghostty-vtsono prerelease, le loro interfacce cambiano. - Un solo responsabile e volutamente nessuna CI: tutto viene compilato e testato in locale.
Documentazione: architettura, design, roadmap, formato di sincronizzazione.
Ringraziamenti e licenza
Wave Terminal per l’idea e il modello d’uso; chi può sostiene Wave. Ghostty per libghostty-vt e libghostty-rs per il collegamento Rust. I caratteri Plus Jakarta Sans, Manrope e JetBrains Mono sono sotto SIL Open Font License 1.1.
holzWave è sotto GPL-3.0. Si può sostenere il progetto tramite GitHub Sponsors.
Altri progetti
holzkube-manager, il gestore di cluster Kubernetes su Talos, holzcloud-CMS, il CMS senza JavaScript, e holzBar, il gestore della barra dei menu per macOS. Torna alla home.