Lançando o cmux no Show HN

Postamos o cmux no Show HN em 19 de fevereiro:

Eu rodo muitas sessões de Claude Code e Codex em paralelo. Estava usando o Ghostty com vários painéis divididos, e dependendo das notificações nativas do macOS para saber quando um agente precisava de mim. Mas o corpo da notificação do Claude Code é sempre apenas "Claude is waiting for your input" sem contexto, e com abas suficientes abertas, eu não conseguia nem ler os títulos.

Tentei alguns orquestradores de código, mas a maioria era apps Electron/Tauri e a performance me incomodava. Também prefiro o terminal, já que orquestradores com GUI te prendem ao fluxo de trabalho deles. Então construí o cmux como um app macOS nativo em Swift/AppKit. Ele usa o libghostty para renderização de terminal e lê sua configuração existente do Ghostty para temas, fontes, cores e mais.

As principais adições são a barra lateral e o sistema de notificações. A barra lateral tem abas verticais que mostram branch git, diretório de trabalho, portas em escuta e o texto da última notificação de cada workspace. O sistema de notificações captura sequências de terminal (OSC 9/99/777) e tem uma CLI (cmux notify) que você pode conectar aos hooks de agentes para Claude Code, OpenCode, etc. Quando um agente está esperando, seu painel recebe um anel azul e a aba acende na barra lateral, para eu saber qual precisa de mim entre divisões e abas. Cmd+Shift+U pula para o não lido mais recente.

O navegador integrado tem uma API programável. Agentes podem capturar a árvore de acessibilidade, obter referências de elementos, clicar, preencher formulários, avaliar JS e ler logs do console. Você pode dividir um painel de navegador ao lado do seu terminal e ter o Claude Code interagindo com seu servidor de desenvolvimento diretamente.

Tudo é programável através da CLI e API de socket: criar workspaces/abas, dividir painéis, enviar teclas, abrir URLs no navegador.

No pico, chegou ao #2 no Hacker News. Mitchell Hashimoto compartilhou:

Meu comentário favorito do thread do HN:

Hey, this looks seriously awesome. Love the ideas here, specifically: the programmability (I haven't tried it yet, but had been considering learning tmux partly for this), layered UI, browser w/ api. Looking forward to giving this a spin. Also want to add that I really appreciate Mitchell Hashimoto creating libghostty; it feels like an exciting time to be a terminal user.

Some feedback (since you were asking for it elsewhere in the thread!):

  • It's not obvious/easy to open browser dev tools (cmd-alt-i didn't work), and when I did find it (right click page → inspect element) none of the controls were visible but I could see stuff happening when I moved my mouse over the panel
  • Would be cool to borrow more of ghostty's behavior:
    • hotkey overrides
    • command palette (cmd-shift-p)
    • cmd-z to "zoom in" to a pane

johnthedebs

Surpreendentemente, o cmux viralizou no Japão:

Tradução: "Isso parece bom. Um app de terminal baseado no Ghostty projetado para você não se perder ao rodar múltiplas CLIs como Claude Code em paralelo. O painel aguardando entrada recebe uma moldura azul e tem seu próprio sistema de notificações."

E semi-viral na China:

Outra coisa empolgante foi ver pessoas construindo em cima da CLI do cmux. sasha construiu uma extensão pi-cmux que mostra informações do modelo, uso de tokens e estado do agente na barra lateral:

Tudo no cmux é programável através da CLI: criando workspaces, enviando teclas, controlando o navegador, lendo notificações. Parte da filosofia do cmux é ser programável e combinável, para que as pessoas possam personalizar a forma como trabalham com agentes de código. O estado da arte para agentes de código está mudando rápido, e você não quer ficar preso a um orquestrador GUI inflexível que não consegue acompanhar.

Se você está rodando múltiplos agentes de código, experimente o cmux.

cmux GitHub star history showing growth from near 0 to 900+ stars after the Show HN launch