Absortio

Email → Summary → Bookmark → Email

GitHub - manaflow-ai/cmux: Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents

Extracto

Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents - manaflow-ai/cmux

Resumen

Resumen Principal

cmux es un innovador terminal de macOS diseñado específicamente para optimizar los flujos de trabajo de codificación con agentes de Inteligencia Artificial. Su creación surge de la necesidad de gestionar múltiples sesiones de IA de manera eficiente, superando las limitaciones de los terminales tradicionales y las aplicaciones Electron. Desarrollado con Swift y AppKit, cmux ofrece un rendimiento nativo superior, inicio rápido y bajo consumo de memoria, utilizando libghostty para una renderización fluida y acelerada por GPU, mientras mantiene la compatibilidad con la configuración de temas y fuentes de Ghostty. Sus características distintivas incluyen un avanzado sistema de notificaciones con anillos visuales en paneles y pestañas iluminadas, una barra lateral con pestañas verticales que muestran contexto crucial como la rama de Git y el directorio de trabajo, y un navegador integrado scriptable. Todo el sistema es altamente programable a través de una API de CLI y socket, permitiendo la automatización completa de espacios de trabajo y la interacción directa de los agentes de IA con entornos de desarrollo.

Elementos Clave

  • Sistema de Notificaciones y Pestañas Verticales Inteligentes: cmux introduce un sistema de notificación visual que alerta al usuario cuando un agente de IA requiere atención, mostrando anillos azules alrededor de los paneles y encendiendo las pestañas correspondientes en la barra lateral. Esta barra lateral no solo organiza pestañas verticalmente, sino que también contextualiza cada espacio de trabajo al mostrar la rama de Git, el directorio de trabajo, los puertos de escucha y el texto de la última notificación, facilitando la gestión de múltiples tareas y sesiones de IA.
  • Optimización para Agentes de Codificación IA: Diseñado con los desarrolladores que utilizan herramientas como Claude Code y Codex en mente, cmux integra un CLI (cmux notify) para enlazar las notificaciones de los agentes directamente con su sistema. Además, incluye un navegador in-app scriptable (portado de agent-browser), que permite a los agentes de IA interactuar programáticamente con sitios web, tomar instantáneas del árbol de accesibilidad, rellenar formularios y ejecutar JavaScript, lo que es ideal para la interacción directa con servidores de desarrollo.
  • Rendimiento Nativo de macOS y Compatibilidad: A diferencia de muchas herramientas modernas, cmux es una aplicación nativa de macOS, construida con Swift y AppKit, lo que garantiza un rendimiento excepcional. Ofrece un inicio rápido y un bajo consumo de memoria. Su renderizado acelerado por GPU es impulsado por libghostty, asegurando una experiencia de usuario fluida. Además, cmux es compatible con las configuraciones existentes de Ghostty, leyendo ~/.config/ghostty/config para temas, fuentes y colores.
  • Capacidades Avanzadas de Scripting y Automatización: cmux está diseñado para ser completamente automatizable y extensible. Proporciona una API de CLI y socket que permite a los usuarios crear programáticamente nuevos espacios de trabajo, dividir paneles, enviar pulsaciones de teclas e incluso controlar el navegador integrado. Esta característica es fundamental para aquellos que buscan integrar cmux en sus propios scripts o automatizar tareas complejas dentro de su entorno de desarrollo.

Análisis e Implicaciones

cmux representa una evolución significativa en las herramientas de terminal para desarrolladores, especialmente para aquellos que adoptan la codificación asistida por IA. Su enfoque en el rendimiento nativo de macOS y la integración inteligente de IA a través de un sistema de notificaciones y un navegador scriptable, mejora drásticamente la productividad y la gestión del contexto en entornos complejos. Esto tiene implicaciones directas en la eficiencia del desarrollo, permitiendo a los programadores manejar más sesiones de IA simultáneamente con una menor sobrecarga cognitiva y una mayor capacidad de respuesta.

Contexto Adicional

El proyecto se distribuye bajo la licencia GNU Affero General Public License v3.0 o posterior (AGPL-3.0-or-later), lo que subraya su compromiso con el software de código abierto y la colaboración comunitaria en su desarrollo.

Contenido

cmux

A Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents

Download cmux for macOS

English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe

cmux screenshot

Features

Notification rings

Panes get a blue ring and tabs light up when AI agents need your attention
Notification rings

Notification panel

See all pending notifications in one place, jump to the most recent unread
Sidebar notification badge

In-app browser

Split a browser alongside your terminal with a scriptable API ported from agent-browser
Built-in browser

Vertical + horizontal tabs

Sidebar shows git branch, working directory, listening ports, and latest notification text. Split horizontally and vertically.
Vertical tabs and split panes
  • Scriptable — CLI and socket API to create workspaces, split panes, send keystrokes, and automate the browser
  • Native macOS app — Built with Swift and AppKit, not Electron. Fast startup, low memory.
  • Ghostty compatible — Reads your existing ~/.config/ghostty/config for themes, fonts, and colors
  • GPU-accelerated — Powered by libghostty for smooth rendering

Install

DMG (recommended)

Download cmux for macOS

Open the .dmg and drag cmux to your Applications folder. cmux auto-updates via Sparkle, so you only need to download once.

Homebrew

brew tap manaflow-ai/cmux
brew install --cask cmux

To update later:

On first launch, macOS may ask you to confirm opening an app from an identified developer. Click Open to proceed.

Why cmux?

I run a lot of Claude Code and Codex sessions in parallel. I was using Ghostty with a bunch of split panes, and relying on native macOS notifications to know when an agent needed me. But Claude Code's notification body is always just "Claude is waiting for your input" with no context, and with enough tabs open I couldn't even read the titles anymore.

I tried a few coding orchestrators but most of them were Electron/Tauri apps and the performance bugged me. I also just prefer the terminal since GUI orchestrators lock you into their workflow. So I built cmux as a native macOS app in Swift/AppKit. It uses libghostty for terminal rendering and reads your existing Ghostty config for themes, fonts, and colors.

The main additions are the sidebar and notification system. The sidebar has vertical tabs that show git branch, working directory, listening ports, and the latest notification text for each workspace. The notification system picks up terminal sequences (OSC 9/99/777) and has a CLI (cmux notify) you can wire into agent hooks for Claude Code, OpenCode, etc. When an agent is waiting, its pane gets a blue ring and the tab lights up in the sidebar, so I can tell which one needs me across splits and tabs. Cmd+Shift+U jumps to the most recent unread.

The in-app browser has a scriptable API ported from agent-browser. Agents can snapshot the accessibility tree, get element refs, click, fill forms, and evaluate JS. You can split a browser pane next to your terminal and have Claude Code interact with your dev server directly.

Everything is scriptable through the CLI and socket API — create workspaces/tabs, split panes, send keystrokes, open URLs in the browser.

Keyboard Shortcuts

Workspaces

Shortcut Action
⌘ N New workspace
⌘ 1–8 Jump to workspace 1–8
⌘ 9 Jump to last workspace
⌃ ⌘ ] Next workspace
⌃ ⌘ [ Previous workspace
⌘ ⇧ W Close workspace
⌘ B Toggle sidebar

Surfaces

Shortcut Action
⌘ T New surface
⌘ ⇧ ] Next surface
⌘ ⇧ [ Previous surface
⌃ Tab Next surface
⌃ ⇧ Tab Previous surface
⌃ 1–8 Jump to surface 1–8
⌃ 9 Jump to last surface
⌘ W Close surface

Split Panes

Shortcut Action
⌘ D Split right
⌘ ⇧ D Split down
⌥ ⌘ ← → ↑ ↓ Focus pane directionally
⌘ ⇧ H Flash focused panel

Browser

Shortcut Action
⌘ ⇧ L Open browser in split
⌘ L Focus address bar
⌘ [ Back
⌘ ] Forward
⌘ R Reload page
⌥ ⌘ I Open Developer Tools

Notifications

Shortcut Action
⌘ I Show notifications panel
⌘ ⇧ U Jump to latest unread

Find

Shortcut Action
⌘ F Find
⌘ G / ⌘ ⇧ G Find next / previous
⌘ ⇧ F Hide find bar
⌘ E Use selection for find

Terminal

Shortcut Action
⌘ K Clear scrollback
⌘ C Copy (with selection)
⌘ V Paste
⌘ + / ⌘ - Increase / decrease font size
⌘ 0 Reset font size

Window

Shortcut Action
⌘ ⇧ N New window
⌘ , Settings
⌘ ⇧ , Reload configuration
⌘ Q Quit

License

This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).

See LICENSE for the full text.

Fuente: GitHub