Um terminal macOS baseado em Ghostty com guias verticais e notificações para agentes de codificação de IA
Inglês | 简体中文 | 繁體中文 | 한국어 | Alemão | Espanhol | Français | Italiano | Dinamarquês | 日本語 | Polonês | Russo | Bósnio | العربية | Norueguês | Português (Brasil) | ไทย | turco
Os painéis recebem um anel azul e as guias acendem quando os agentes de IA precisam de sua atenção | |
Veja todas as notificações pendentes em um só lugar, vá para as não lidas mais recentes | |
Divida um navegador junto com seu terminal com uma API programável portada do navegador do agente | |
Guias verticais + horizontaisA barra lateral mostra o branch git, o diretório de trabalho, as portas de escuta e o texto de notificação mais recente. Divida horizontalmente e verticalmente. |
- Programável — CLI e API de soquete para criar espaços de trabalho, dividir painéis, enviar pressionamentos de teclas e automatizar o navegador
- Aplicativo macOS nativo — Construído com Swift e AppKit, não com Electron. Inicialização rápida, pouca memória.
- Compatível com Ghostty – Lê o seu existente
~/.config/ghostty/configpara temas, fontes e cores - Acelerado por GPU — Desenvolvido por libghostty para renderização suave
Abra o .dmg e arraste o cmux para a pasta Aplicativos. cmux é atualizado automaticamente via Sparkle, então você só precisa fazer o download uma vez.
brew tap manaflow-ai/cmux
brew install --cask cmuxPara atualizar mais tarde:
Na primeira inicialização, o macOS pode solicitar que você confirme a abertura de um aplicativo de um desenvolvedor identificado. Clique Abrir para prosseguir.
Eu executo muitas sessões do Claude Code e do Codex em paralelo. Eu estava usando o Ghostty com vários painéis divididos e contando com notificações nativas do macOS para saber quando um agente precisava de mim. Mas o corpo de notificação de Claude Code é sempre apenas “Claude está aguardando sua opinião” sem contexto, e com abas suficientes abertas eu não conseguia mais ler os títulos.
Tentei alguns orquestradores de codificação, mas a maioria deles eram aplicativos Electron/Tauri e o desempenho me incomodou. Eu também prefiro o terminal, já que os orquestradores de GUI prendem você em seu fluxo de trabalho. Então, criei o cmux como um aplicativo macOS nativo em Swift/AppKit. Ele usa libghostty para renderização de terminal e lê sua configuração existente do Ghostty para temas, fontes e cores.
As principais adições são a barra lateral e o sistema de notificação. A barra lateral possui guias verticais que mostram o branch git, o diretório de trabalho, as portas de escuta e o texto de notificação mais recente para cada espaço de trabalho. O sistema de notificação capta sequências terminais (OSC 9/99/777) e possui uma CLI (cmux notify), você pode conectar ganchos de agente para Claude Code, OpenCode, etc. Quando um agente está esperando, seu painel recebe um anel azul e a guia acende na barra lateral, para que eu possa saber qual deles precisa de mim em divisões e guias. Cmd+Shift+U salta para o não lido mais recente.
O navegador no aplicativo possui uma API programável portada do navegador do agente. Os agentes podem capturar instantâneos da árvore de acessibilidade, obter referências de elementos, clicar, preencher formulários e avaliar JS. Você pode dividir um painel do navegador próximo ao seu terminal e fazer com que Claude Code interaja diretamente com seu servidor de desenvolvimento.
Tudo pode ser programado por meio de CLI e API de soquete – crie espaços de trabalho/guias, divida painéis, envie pressionamentos de teclas, abra URLs no navegador.
| Atalho | Ação |
|---|---|
| ⌘N | Novo espaço de trabalho |
| ⌘ 1–8 | Vá para a área de trabalho 1–8 |
| ⌘9 | Ir para o último espaço de trabalho |
| ⌃ ⌘ ] | Próximo espaço de trabalho |
| ⌃ ⌘ [ | Previous workspace |
| ⌘ ⇧ W | Close workspace |
| ⌘ B | Toggle sidebar |
| Shortcut | Action |
|---|---|
| ⌘ T | New surface |
| ⌘ ⇧ ] | Próxima superfície |
| ⌘ ⇧ [ | Previous surface |
| ⌃ Tab | Next surface |
| ⌃ ⇧ Tab | Previous surface |
| ⌃ 1–8 | Jump to surface 1–8 |
| ⌃ 9 | Jump to last surface |
| ⌘ W | Close surface |
| Shortcut | Action |
|---|---|
| ⌘ D | Split right |
| ⌘ ⇧ D | Split down |
| ⌥ ⌘ ← → ↑ ↓ | Focus pane directionally |
| ⌘ ⇧ H | Flash focused panel |
| Shortcut | Action |
|---|---|
| ⌘ ⇧ L | Open browser in split |
| ⌘ L | Focus address bar |
| ⌘ [ | Back |
| ⌘ ] | Avançar |
| ⌘R | Recarregar página |
| ⌥ ⌘ eu | Abra as ferramentas do desenvolvedor |
| Atalho | Ação |
|---|---|
| ⌘ eu | Mostrar painel de notificações |
| ⌘ ⇧ VOCÊ | Ir para o último não lido |
| Atalho | Ação |
|---|---|
| ⌘F | Encontrar |
| ⌘ G / ⌘ ⇧ G | Encontre o próximo/anterior |
| ⌘ ⇧ F | Ocultar barra de localização |
| ⌘E | Usar seleção para encontrar |
| Atalho | Ação |
|---|---|
| ⌘K | Limpar rolagem |
| ⌘C | Copiar (com seleção) |
| ⌘V | Colar |
| ⌘ + / ⌘ – | Aumentar/diminuir o tamanho da fonte |
| ⌘0 | Redefinir tamanho da fonte |
| Atalho | Ação |
|---|---|
| ⌘ ⇧N | Nova janela |
| ⌘, | Configurações |
| ⌘ ⇧ , | Recarregar configuração |
| ⌘P | Desistir |
Este projeto está licenciado sob a Licença Pública Geral GNU Affero v3.0 ou posterior (AGPL-3.0-or-later).
Ver LICENSE para o texto completo.
Fonte: theverge

