Illustration of what cmux does: A native macOS terminal that shows which of your coding agents needs you

manaflow-ai /

cmux

A native macOS terminal that shows which of your coding agents needs you

If you run several Claude Code or Codex sessions side by side, it's hard to tell which one is waiting for you. Native macOS notifications say little, and with many tabs open the titles become unreadable. cmux is a terminal app built to solve that.

It is written in Swift and AppKit, not Electron, and uses libghostty to draw the terminal. It reads your existing Ghostty config for themes, fonts and colors. A sidebar lists each workspace with its git branch, linked PR, working directory, listening ports and latest notification. When an agent is waiting, its pane gets a blue ring and its tab lights up. Notifications come from standard terminal escape sequences or from a cmux notify command you can call from agent hooks.

The author says other agent orchestrators they tried were mostly Electron or Tauri apps that lock you into one workflow. cmux describes itself as a set of building blocks: a terminal, a browser, workspaces, splits, and a CLI and socket API. You decide how to combine them.

What it does

  • Notification rings and panel

    Panes get a blue ring and tabs light up when an agent needs attention. A panel collects pending notifications, and Cmd+Shift+U jumps to the latest unread one.

  • Vertical tabs with context

    The sidebar shows git branch, linked PR status and number, working directory, listening ports and the newest notification text for each workspace. Panes split horizontally and vertically.

  • In-app scriptable browser

    You can split a browser next to your terminal. Its API, ported from agent-browser, lets agents read the accessibility tree, click, fill forms and run JavaScript against your dev server.

  • CLI and socket API

    Create workspaces, split panes, send keystrokes and open URLs from scripts. Project actions can be defined in cmux.json and launched from the command palette.

  • SSH and session restore

    cmux ssh user@remote opens a workspace for a remote machine, and browser panes route through its network. On relaunch, cmux restores layout, directories, scrollback and browser history, and can resume supported agent sessions through hooks.

What you could build

  • Run several Claude Code, Codex or OpenCode sessions in split panes and see at a glance which one is waiting.
  • Wire cmux notify into agent hooks so each notification carries useful context.
  • Let a coding agent test your local dev server in a browser pane beside the terminal.
  • Open a workspace on a remote machine over SSH and start an agent there.
  • Script workspace layouts and project-specific commands for your own repeatable setup.

Get started

Download the DMG from the releases page and drag cmux to Applications, or install it with Homebrew. Then run cmux hooks setup after installing your agent CLIs so notifications and session resume work.

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

Commands are copied from the project's README. Read it on GitHub for the full setup.

More in Coding agents & dev tools

    ↑↓ to move, Enter to open, Esc to close