Nel dicembre 2024, Mitchell Hashimoto ha rilasciato pubblicamente Ghostty 1.0, chiudendo una beta privata durata quasi due anni. Ghostty è un emulatore di terminale per Mac e Linux che si differenzia per il fatto di essere open source, veloce, ricco di funzionalità e nativo. Il nome Hashimoto non è sconosciuto nel mondo DevOps: è il cofondatore di HashiCorp, l’azienda che ha creato Terraform, Vault e Vagrant, strumenti che hanno ridefinito come l’industria gestisce l’infrastruttura cloud.
Hashimoto trascorre molte ore al giorno nel terminale, come la maggior parte degli sviluppatori, e nessuno dei terminali esistenti lo soddisfaceva su tutti i fronti in modo simultaneo. Ghostty è scritto principalmente in Zig, un linguaggio di sistema pensato come alternativa moderna al C, con controllo esplicito delle allocazioni e maggiore sicurezza della memoria.
Questa scelta architetturale permette di condividere un core comune tra macOS e Linux attraverso la libreria libghostty, esponendo però un’interfaccia genuinamente nativa su ciascuna piattaforma, tra cui SwiftUI su macOS e GTK4/libadwaita su Linux. Non si tratta di un wrapper cross-platform che simula la nativizzazione, ma di un’applicazione che sui rispettivi sistemi operativi si comporta e si integra come tale, con tutto quello che ne consegue per la gestione delle finestre, dei font, dei colori di sistema e dei permessi.
Oggi Ghostty è arrivato alla versione 1.3.1, uscita il 13 marzo 2026, con 50.000 stelle su GitHub e 180 contributori solo nell’ultimo ciclo di sviluppo. Vediamo di capire cosa distingue questo emulatore di terminale dagli altri.
Zig, libghostty e il rendering GPU fanno la differenza
Il rendering di Ghostty non si appoggia alla libreria vte, usata da GNOME Terminal, Tilix e dalla maggior parte dei terminali basati su GTK. Ha invece il proprio stack, con OpenGL su Linux e Metal su macOS. Questo lo rende il primo terminale GTK4 nativo a implementare direttamente il proprio parser per le sequenze di controllo, ottimizzato con istruzioni SIMD specifiche per architettura CPU.
Il risultato è una latenza key-to-screen nell’ordine dei 2 millisecondi e frame rate che superano i 400 FPS nei test di rendering, valori comparabili ad Alacritty ma con una ricchezza funzionale che Alacritty non offre per scelta progettuale.
L’architettura ruota attorno a libghostty, una libreria C-compatibile che separa il core dell’emulatore dall’interfaccia grafica. Questo design ha due implicazioni immediate.
La prima è tecnica: i thread dedicati alla lettura, alla scrittura e al rendering operano in modo indipendente, eliminando i colli di bottiglia tipici delle architetture monothread. La seconda è strutturale: libghostty-vt è già disponibile come componente integrabile in applicazioni esterne, tra cui IDE, editor e strumenti custom, con API per Zig e C compatibili con macOS, Linux e WebAssembly.
La versione 1.3.0 ha portato un salto di prestazioni sull’I/O: il replay di un file asciinema da 4 GB è passato da diversi minuti a poche decine di secondi. Il renderer è stato re-architettato per ridurre il tempo di lock del terminale di un fattore tra 2x e 5x, con molte operazioni che ora avvengono senza lock grazie al dirty tracking. In sessioni di lavoro intensive, la differenza nello scrolling e nella fluidità delle TUI è percepibile.
Ghostty : zero config, personalizzazione totale
Ghostty funziona al primo avvio senza alcuna configurazione. I Nerd Fonts sono supportati di default, il font rendering è curato, le scorciatoie e il supporto ai colori true color (24 bit, circa 16 milioni di combinazioni) sono attive da subito.
Questo lo differenzia in modo netto da Kitty o WezTerm, che premiano molto chi investe tempo nella configurazione iniziale ma partono con default piuttosto minimali.
Quando vuoi personalizzare, il file si trova in ~/.config/ghostty/config e usa un formato chiave-valore semplice, senza TOML, senza YAML e senza Lua. Puoi aprirlo direttamente con Ctrl+, dall’interno del terminale in esecuzione. Alcune opzioni utili per partire:
font-family = JetBrainsMono Nerd Font
font-size = 13
theme = dark:catppuccin-frappe,light:catppuccin-latte
mouse-hide-while-typing = true
window-padding-x = 8
window-padding-y = 8
shell-integration = zsh
keybind = ctrl+shift+t=new_tabLa direttiva theme accetta la sintassi dark:TEMA,light:TEMA, che adatta automaticamente la palette al tema di sistema. È particolarmente comoda se hai il cambio automatico giorno/notte attivo su macOS o GNOME. Per esplorare i temi disponibili puoi usare ghostty +list-themes direttamente dal terminale: ne troverai oltre duecento pronti all’uso.
Per capire cosa è attivo e da dove viene ogni impostazione, il comando ghostty +show-config restituisce la configurazione completa annotata con la sorgente, tra cui il default, il file personale o un override a riga di comando. È un meccanismo di debug che molti terminali non offrono, e che torna utile quando qualcosa si comporta in modo inatteso senza un motivo apparente.
Ghostty vs Kitty, Alacritty e WezTerm: quando ha senso cambiare
Il confronto tra emulatori di terminale dipende dal profilo d’uso. Alacritty è il riferimento storico per la velocità pura: scritto in Rust, è velocissimo e minimalista per scelta progettuale, senza tab nativi, senza split pane e senza configurazione grafica. Se hai bisogno di gestire più contesti, devi affiancargli tmux o zellij. Ghostty ha prestazioni comparabili ma integra queste funzionalità nativamente: è una filosofia diversa sul ruolo del terminale come applicazione.
Kitty è il confronto più diretto. Anch’esso GPU-accelerato, con il proprio protocollo grafico, tab, pane e configurabilità elevata tramite un formato proprietario. Scritto in Python/C, richiede una configurazione esplicita, ma ha una community matura e anni di configurazioni condivise online.
La differenza pratica è che Ghostty parte con default molto più curati: chi inizia da zero è produttivo dal primo avvio senza toccare nulla. Se hai già una kitty.conf ben rodata non c’è urgenza di migrare, ma per chi parte adesso Ghostty è la scelta più immediata.
WezTerm è il competitor più simile per ambizioni: scritto in Rust, cross-platform su macOS, Linux e Windows, configurabile in Lua e con multiplexer integrato. Il vantaggio di WezTerm è il supporto Windows, che Ghostty non ha ancora.
La scelta dipende dall’ecosistema: se hai macchine Windows nel flusso di lavoro, WezTerm rimane la scelta più giusta. Altrimenti, Ghostty ha oggi la formula più equilibrata su macOS e Linux.
Un progetto no-profit ben supportato
La versione 1.3.1, uscita il 13 marzo 2026 a pochi giorni dalla 1.3.0, ha risolto alcune regressioni su macOS introdotte nella release precedente, tra cui eventi fantasma del mouse dopo i cambi di focus. Il team risponde velocemente ai problemi post-release, il che conta per chi usa lo strumento in produzione ogni giorno.
La 1.3.0 è stata una release corposa, costruita su sei mesi di lavoro e 2.858 commit da 180 contributori. Ha introdotto la ricerca nel scrollback, tra le feature più richieste dalla community, le scrollbar native in overlay style e il click-to-move-cursor nelle prompt di shell.
Ha anche risolto una vulnerabilità di sicurezza (CVE-2026-26982), legata all’esecuzione di comandi arbitrari tramite caratteri di controllo nel testo incollato. E ha corretto un memory leak che Claude Code riusciva a triggerare sistematicamente, portando in alcuni casi il consumo di RAM a decine di gigabyte in sessioni molto lunghe.
Sul piano strutturale, Ghostty è ora formalmente una no-profit sotto l’ombrello di Hack Club, un’azienda focalizzata sullo sviluppo open source. Quasi tutte le donazioni vanno direttamente ai contributori. Il progetto segue un ciclo di rilascio semestrale, con date fisse a marzo e a settembre, che garantisce prevedibilità senza frammentare il lavoro in patch continue.
Se trascorri molte ore al giorno nel terminale su macOS o Linux, vale almeno una settimana di prova. L’installazione richiede meno di un minuto, i default sono già buoni, e il resto è davvero opzionale.













