Questa traduzione è stata generata da Claude. Se hai suggerimenti per migliorarla, apri una PR.
Un terminale macOS basato su Ghostty con schede verticali e notifiche per agenti di programmazione AI
English | 日本語 | Tiếng Việt | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | ភាសាខ្មែរ | Українська
▶ Video demo · The Zen of cmux
| I pannelli ricevono un anello blu e le schede si illuminano quando gli agenti di programmazione richiedono la tua attenzione |
|
| Visualizza tutte le notifiche in sospeso in un unico posto, salta alla più recente non letta |
|
| Dividi un browser accanto al tuo terminale con un'API scriptabile derivata da agent-browser |
|
| La barra laterale mostra il branch git, lo stato/numero della PR collegata, la directory di lavoro, le porte in ascolto e il testo dell'ultima notifica. Dividi orizzontalmente e verticalmente. |
|
cmux ssh user@remote crea un workspace per una macchina remota. I pannelli del browser vengono instradati attraverso la rete remota, quindi localhost funziona direttamente. Trascina un'immagine in una sessione remota per caricarla via scp.
|
|
cmux claude-teams avvia la modalità teammate di Claude Code con un solo comando. I teammate appaiono come divisioni native con metadati nella barra laterale e notifiche. Non serve tmux.
|
|
- Import browser — Importa cookie, cronologia e sessioni da Chrome, Firefox, Arc e oltre 20 browser in modo che i pannelli del browser partano già autenticati
- Comandi personalizzati — Definisci azioni specifiche per il progetto in
cmux.jsonche si lanciano dalla palette dei comandi - Scriptabile — CLI e socket API per creare workspace, dividere pannelli, inviare sequenze di tasti e automatizzare il browser
- App macOS nativa — Costruita con Swift e AppKit, non Electron. Avvio rapido, basso consumo di memoria.
- Compatibile con Ghostty — Legge la tua configurazione esistente
~/.config/ghostty/configper temi, font e colori - Accelerazione GPU — Alimentato da libghostty per un rendering fluido
- Scorciatoie da tastiera — Scorciatoie estese per workspace, divisioni, browser e altro
- Open source — Gratuito e con licenza GPL
Apri il file .dmg e trascina cmux nella cartella Applicazioni. cmux si aggiorna automaticamente tramite Sparkle, quindi devi scaricarlo solo una volta.
brew tap manaflow-ai/cmux
brew install --cask cmuxPer aggiornare in seguito:
brew upgrade --cask cmuxAl primo avvio, macOS potrebbe chiederti di confermare l'apertura di un'app da uno sviluppatore identificato. Fai clic su Apri per procedere.
Eseguo molte sessioni di Claude Code e Codex in parallelo. Usavo Ghostty con un mucchio di pannelli divisi, e mi affidavo alle notifiche native di macOS per sapere quando un agente aveva bisogno di me. Ma il corpo della notifica di Claude Code è sempre solo "Claude is waiting for your input" senza contesto, e con abbastanza schede aperte non riuscivo nemmeno più a leggere i titoli.
Ho provato alcuni orchestratori di codifica, ma la maggior parte erano app Electron/Tauri e le prestazioni mi infastidivano. Inoltre preferisco semplicemente il terminale dato che gli orchestratori con interfaccia grafica ti vincolano al loro flusso di lavoro. Così ho costruito cmux come app macOS nativa in Swift/AppKit. Usa libghostty per il rendering del terminale e legge la tua configurazione Ghostty esistente per temi, font e colori.
Le aggiunte principali sono la barra laterale e il sistema di notifiche. La barra laterale ha schede verticali che mostrano il branch git, lo stato/numero della PR collegata, la directory di lavoro, le porte in ascolto e il testo dell'ultima notifica per ogni workspace. Il sistema di notifiche rileva le sequenze terminale (OSC 9/99/777) e ha un CLI (cmux notify) che puoi collegare agli hook degli agenti per Claude Code, OpenCode, ecc. Quando un agente è in attesa, il suo pannello riceve un anello blu e la scheda si illumina nella barra laterale, così posso capire quale ha bisogno di me tra divisioni e schede. Cmd+Shift+U salta alla più recente non letta.
Il browser integrato ha un'API scriptabile derivata da agent-browser. Gli agenti possono acquisire l'albero di accessibilità, ottenere riferimenti agli elementi, fare clic, compilare moduli e valutare JS. Puoi dividere un pannello browser accanto al tuo terminale e far interagire Claude Code direttamente con il tuo server di sviluppo.
Tutto è scriptabile attraverso il CLI e la socket API — creare workspace/schede, dividere pannelli, inviare sequenze di tasti, aprire URL nel browser.
cmux non prescrive come gli sviluppatori usano i propri strumenti. È un terminale e un browser con un CLI, il resto dipende da te.
cmux è una primitiva, non una soluzione. Ti dà un terminale, un browser, notifiche, workspace, divisioni, schede e un CLI per controllare tutto. cmux non ti obbliga a usare gli agenti di programmazione in un modo predefinito. Quello che costruisci con le primitive è tuo.
I migliori sviluppatori hanno sempre costruito i propri strumenti. Nessuno ha ancora trovato il modo migliore di lavorare con gli agenti, e i team che costruiscono prodotti chiusi non l'hanno trovato nemmeno loro. Gli sviluppatori più vicini alle proprie basi di codice lo troveranno per primi.
Date a un milione di sviluppatori primitive componibili e troveranno collettivamente i flussi di lavoro più efficienti più velocemente di quanto qualsiasi team di prodotto potrebbe progettare dall'alto.
Per maggiori informazioni su come configurare cmux, consulta la nostra documentazione.
| Scorciatoia | Azione |
|---|---|
| ⌘ N | Nuovo workspace |
| ⌘ 1–8 | Vai al workspace 1–8 |
| ⌘ 9 | Vai all'ultimo workspace |
| ⌃ ⌘ ] | Workspace successivo |
| ⌃ ⌘ [ | Workspace precedente |
| ⌘ ⇧ W | Chiudi workspace |
| ⌘ ⇧ R | Rinomina workspace |
| ⌥ ⌘ E | Modifica descrizione del workspace |
| ⌘ B | Mostra/nascondi barra laterale |
| ⌥ ⌘ B | Mostra/nascondi barra laterale destra |
| ⌘ ⇧ E | Attiva/disattiva il focus della barra laterale destra |
| Scorciatoia | Azione |
|---|---|
| ⌘ T | Nuova superficie |
| ⌘ ⇧ ] | Superficie successiva |
| ⌘ ⇧ [ | Superficie precedente |
| ⌃ Tab | Superficie successiva |
| ⌃ ⇧ Tab | Superficie precedente |
| ⌃ 1–8 | Vai alla superficie 1–8 |
| ⌃ 9 | Vai all'ultima superficie |
| ⌘ W | Chiudi superficie |
| Scorciatoia | Azione |
|---|---|
| ⌘ D | Dividi a destra |
| ⌘ ⇧ D | Dividi in basso |
| ⌥ ⌘ ← → ↑ ↓ | Sposta il focus direzionalmente |
| ⌘ ⇧ H | Lampeggia pannello focalizzato |
Le scorciatoie degli strumenti di sviluppo del browser seguono i valori predefiniti di Safari e sono personalizzabili in Impostazioni → Scorciatoie da tastiera.
Le scorciatoie di navigazione della palette dei comandi, inclusa ⌃ P, sono anch'esse personalizzabili e possono essere cancellate in modo che la pressione raggiunga il terminale attivo.
| Scorciatoia | Azione |
|---|---|
| ⌘ ⇧ L | Apri browser in divisione |
| ⌘ L | Focus sulla barra degli indirizzi |
| ⌘ [ | Indietro |
| ⌘ ] | Avanti |
| ⌘ R | Ricarica pagina |
| ⌥ ⌘ I | Mostra/Nascondi Strumenti di Sviluppo (predefinito Safari) |
| ⌥ ⌘ C | Mostra Console JavaScript (predefinito Safari) |
| Scorciatoia | Azione |
|---|---|
| ⌘ I | Mostra pannello notifiche |
| ⌘ ⇧ U | Vai all'ultima non letta |
| ⌥ ⌘ U | Attiva/disattiva lo stato non letto dell'elemento corrente |
| ⌃ ⌘ U | Segna l'elemento corrente come la non letta più vecchia e salta alla successiva più recente non letta |
| Scorciatoia | Azione |
|---|---|
| ⌘ F | Cerca |
| ⌘ ⇧ F | Cerca nella directory |
| ⌘ G / ⌥ ⌘ G | Trova successivo / precedente |
| ⌥ ⌘ ⇧ F | Nascondi barra di ricerca |
| ⌘ E | Usa selezione per la ricerca |
| Scorciatoia | Azione |
|---|---|
| ⌘ K | Cancella scrollback |
| ⌘ C | Copia (con selezione) |
| ⌘ V | Incolla |
| ⌘ + / ⌘ - | Aumenta / diminuisci dimensione font |
| ⌘ 0 | Ripristina dimensione font |
| Scorciatoia | Azione |
|---|---|
| ⌘ ⇧ N | Nuova finestra |
| ⌘ ⇧ O | Riapri sessione precedente |
| ⌘ , | Impostazioni |
| ⌘ ⇧ , | Ricarica configurazione |
| ⌘ Q | Esci |
cmux NIGHTLY è un'app separata con il proprio bundle ID, quindi funziona in parallelo alla versione stabile. Compilata automaticamente dall'ultimo commit main e aggiornata automaticamente tramite il proprio feed Sparkle.
Segnala i bug delle nightly su GitHub Issues o in #nightly-bugs su Discord.
Alla chiusura, cmux salva la sessione corrente. Al riavvio, cmux ripristina lo stato gestito dall'app:
- Layout di finestre/workspace/pannelli
- Directory di lavoro
- Scrollback del terminale (best effort)
- URL del browser e cronologia di navigazione
cmux non crea checkpoint per processi attivi arbitrari. tmux, vim, shell e app terminale non supportate si riaprono come terminali normali.
Le sessioni degli agent supportati possono riprendere quando gli hook hanno salvato un ID
sessione nativo. Installa gli hook dopo aver installato il CLI dell'agente in modo che il suo
binario sia nel PATH:
cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencodecmux hooks setup installa gli agent supportati che trova e stampa un riepilogo
degli agent saltati. Le integrazioni di ripristino supportate includono Claude Code, Codex,
Grok, OpenCode, Pi, Amp, Cursor CLI, Gemini, Rovo Dev, Copilot, CodeBuddy,
Factory e Qoder. Claude Code è gestito dal wrapper Claude di cmux quando l'integrazione
Claude è abilitata nelle Impostazioni.
Utenti avanzati e integrazioni possono associare un comando di ripristino personalizzato alla surface del terminale corrente. È utile per strumenti con stato persistente proprio, come sessioni tmux o CLI agent personalizzate:
cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint workL'associazione resta legata alla surface di cmux. Le associazioni create dal CLI pubblico o dal socket vengono salvate per ispezione e ripristino manuale, a meno che tu non approvi un prefisso di comando firmato per il ripristino automatico. I prefissi approvati sono anche legati alla directory di lavoro e ai valori esatti dell'ambiente, quando presenti. Esamina o modifica le approvazioni in Impostazioni > Terminale > Comandi di ripristino. cmux esegue automaticamente solo le associazioni di resume che marca come attendibili, per esempio quelle tmux rilevate dai processi attivi o i prefissi approvati dall'utente. Le chiavi di ambiente sensibili, come token, password, segreti e chiavi API, vengono scartate prima di salvare un'associazione di resume.
Per mantenere inattivi i terminali degli agent ripristinati invece di eseguire automaticamente i loro comandi di ripristino,
disattiva Impostazioni > Terminale > Riprendi sessioni agent alla riapertura o imposta questo in
~/.config/cmux/cmux.json:
{
"terminal": {
"autoResumeAgentSessions": false
}
}Questo disattiva solo i comandi di ripristino automatico degli agent. cmux continua a ripristinare il layout salvato, le directory di lavoro, lo scrollback e la cronologia del browser.
Se devi riapplicare manualmente l'ultima istantanea salvata, usa:
File > Riapri sessione precedente⌘ ⇧ Ocmux restore-session
Internamente, cmux scrive un'istantanea versionata in
~/Library/Application Support/cmux/ e gli hook degli agent scrivono le mappature di sessione
in ~/.cmuxterm/. Al ripristino, cmux ricostruisce prima il layout, poi esegue il comando
di ripristino nativo dell'agent supportato quando il ripristino automatico degli agent è abilitato.
Leggi la guida completa su https://cmux.com/docs/session-restore.
cmux non è un fork di Ghostty. Usa libghostty come libreria per il rendering del terminale, allo stesso modo in cui le app usano WebKit per le viste web. Ghostty è un terminale autonomo; cmux è un'app diversa costruita sopra il suo motore di rendering.
Solo macOS, per ora. cmux è un'app nativa Swift + AppKit.
Sì, in beta. Associa il tuo iPhone al tuo Mac dalla finestra Mobile Connect e connettiti ai tuoi terminali dal telefono, con inoltro opzionale delle notifiche del terminale. È distribuita su TestFlight come cmux BETA. Consulta la documentazione iOS.
Con tutti. cmux è un terminale, quindi qualsiasi agente che gira in un terminale funziona da subito: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent e qualsiasi altra cosa tu possa lanciare dalla riga di comando.
Sì. Quando un agente genera subagenti o teammate, cmux li trasforma in pannelli e divisioni native invece che in processi nascosti in background. Supporta Claude Code teams e l'orchestrazione multi-modello di oh-my-opencode, così ogni agente di un'esecuzione è visibile e controllabile.
Sì. Apri workspace tramite SSH e connettiti a sessioni tmux remote, così gli agenti possono girare su un host remoto mentre li piloti da cmux. Consulta SSH e remoto.
Quando un processo richiede attenzione, cmux mostra anelli di notifica attorno ai pannelli, badge di non lette nella barra laterale, un popover di notifiche e una notifica desktop di macOS. Queste si attivano automaticamente tramite sequenze di escape del terminale standard (OSC 9/99/777), oppure puoi attivarle con il CLI di cmux e gli hook degli agenti. Funziona qualsiasi agente che supporti gli hook o OSC, inclusi Claude Code, Codex, OpenCode e pi.
Sì. Ogni azione è disponibile tramite il CLI di cmux e un socket Unix: creare workspace, aprire pannelli divisi, inviare input, leggere il contenuto dello schermo, fare screenshot e pilotare il browser integrato. Consulta il riferimento del CLI e la documentazione sull'automazione del browser.
cmux può dividere un vero pannello browser accanto al tuo terminale, ed è completamente programmabile: navigare, acquisire il DOM, fare clic, digitare, valutare JavaScript e leggere l'attività della console e della rete tramite la stessa socket API. Gli agenti lo usano per verificare le proprie modifiche web senza uscire da cmux. Consulta automazione del browser.
Sì. Le skill sono flussi di lavoro riutilizzabili che puoi dare a qualsiasi agente in esecuzione in cmux, per cose come il controllo del CLI, l'automazione dei workspace, le impostazioni e le superfici browser. Sfoglia la collezione aperta su cmux-skills, oppure leggi la documentazione delle skill.
Le combinazioni di tasti del terminale vengono lette dal tuo file di configurazione Ghostty (~/.config/ghostty/config). Le scorciatoie specifiche di cmux (workspace, divisioni, browser, notifiche) si possono personalizzare nelle Impostazioni. Consulta le scorciatoie predefinite per l'elenco completo.
Sì. Il rendering del terminale usa la tua configurazione Ghostty, quindi temi, font, colori e cursore vengono trasferiti direttamente. Le impostazioni proprie di cmux in ~/.config/cmux/cmux.json controllano la barra laterale, la barra delle schede, i pannelli divisi e il comportamento, e ogni scorciatoia da tastiera è modificabile. Consulta configurazione.
Sì. cmux ripristina le tue finestre, workspace, pannelli, directory di lavoro e scrollback al riavvio, e lo stato sopravvive a un riavvio completo del computer, non solo alla chiusura dell'app. Tornano anche le sessioni degli agenti come Claude Code, Codex e OpenCode. Consulta ripristino sessione.
tmux è un multiplexer di terminale che gira dentro qualsiasi terminale. cmux è un'app macOS nativa con GUI: schede verticali, pannelli divisi, un browser integrato e una socket API, tutto incorporato, senza bisogno di file di configurazione o tasti prefisso. Detto questo, molte persone usano felicemente cmux insieme a SSH e tmux, e cmux può connettersi nativamente alle tue sessioni tmux remote (beta).
Sì, cmux è gratuito da usare. Il codice sorgente è disponibile su GitHub.
cmux è gratuito e open source, e lo sarà sempre. Se vuoi sostenere lo sviluppo e ottenere accesso anticipato a ciò che arriverà, inclusi cmux AI, l'app iOS e le Cloud VM, dai un'occhiata a cmux Founders Edition.
Vogliamo saperlo. Apri una issue o una pull request su GitHub, oppure scrivici un'email.
Modi per partecipare:
- Seguici su X per aggiornamenti @manaflowai, @lawrencecchen, e @austinywang
- Unisciti alla conversazione su Discord
- Crea e partecipa alle issue su GitHub e alle discussioni
- Facci sapere cosa stai costruendo con cmux
WeChat: Scansiona il codice QR per unirti alla community.
cmux è gratuito, open source, e lo sarà sempre. Se vuoi supportare lo sviluppo e ottenere accesso anticipato a ciò che arriverà:
- Richieste di funzionalità e correzioni di bug prioritarie
- Accesso anticipato: cmux AI che ti dà contesto su ogni workspace, scheda e pannello
- Accesso anticipato: app iOS con terminali sincronizzati tra desktop e telefono
- Accesso anticipato: VM cloud
- Accesso anticipato: Modalità vocale
- Il mio iMessage/WhatsApp personale
cmux è open source sotto GPL-3.0-or-later.
Se la tua organizzazione non può conformarsi alla GPL, è disponibile una licenza commerciale. Contatta founders@manaflow.com per i dettagli.






