Skip to content
woza.ink
← Blog
3 min read

cmux: A Terminal Built for Agentic Workflows

Why a terminal designed around running multiple AI agents simultaneously is worth paying attention to.

On this page
  1. What's different
  2. What it's built on
  3. The tradeoff
  4. Worth it if

The terminal hasn't changed much in decades. Tabs, splits, a shell. That's mostly fine — until you start running several AI coding agents in parallel and realize the mental model breaks down fast.

cmux is a macOS terminal app built specifically for this. It's powered by libghostty (the same rendering engine as Ghostty, used as a library) but layers a bunch of agentic-workflow-specific UI on top: vertical tabs with context, notification rings, a scriptable embedded browser, and a socket API.


What's different

The headline feature is the notification rings. When an agent finishes a task or needs your attention, the pane lights up — you get a visual ring around it, an unread badge in the sidebar, and an optional macOS desktop notification1. This fires automatically via standard terminal escape sequences2, or you can hook into it explicitly with the cmux CLI.

This sounds small. It isn't. The normal workflow without it: run an agent, stare at the terminal waiting to see if it's done, or compulsively switch tabs. With notification rings you can just let it run and glance over when it calls for you. That's a different relationship with the tool.

The vertical tab sidebar shows git branch, working directory, open ports, and notification text for each tab. At a glance you know which agent is on which branch doing what. With four agents running in parallel, that context matters.

The embedded browser lets you split a browser pane alongside your terminal, with a scriptable API3. The use case is keeping PRs, docs, or design references pinned next to the code — without context-switching to a separate app.


What it's built on

cmux is native Swift + AppKit. Not Electron. It uses libghostty for terminal rendering4, which means you get Ghostty's GPU-accelerated performance without actually running Ghostty. Your existing Ghostty config (keybindings, fonts, colors) carries over.

It's not a fork, not a wrapper — it's a different app that happens to use the same rendering library.


The tradeoff

It's macOS only. If you're on Linux or Windows this isn't for you yet.

It's also a fairly new tool — the surface area is smaller than something like iTerm2 or Warp5. You're adopting it for the agentic workflow features specifically, not because it has the deepest feature set across the board.


Worth it if

You're running multiple Claude Code sessions, or any mix of terminal-based agents, and the cognitive overhead of tracking which one needs attention is real friction6. The notification system alone is worth the switch if that's your daily workflow.

Notes

  1. 1Context

    Terminal multiplexers have a long lineage. GNU Screen dates to the late 1980s. tmux arrived in 2007, became part of OpenBSD's base system in 2009, and is still the default choice for most developers. Zellij (written in Rust, launched ~2021) modernized the UX with context-aware keybinding bars and a WebAssembly plugin system. cmux is a different kind of tool — not a multiplexer you run inside a terminal, but a terminal app itself, purpose-built for agent workflows.

    source →
  2. 2Source

    cmux launched in February 2026 as a free, open-source native macOS terminal. It works with Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, and any CLI tool. The notification system picks up standard terminal escape sequences (OSC 9/99/777) and also has a dedicated cmux notify CLI command for agent hooks.

    source →
  3. 3Note

    The embedded browser in cmux is not just a webview — it exposes a scriptable API where agents can snapshot the accessibility tree, get element references, click, fill forms, and evaluate JavaScript. This means an agent can interact with a PR review page or documentation site programmatically, without you switching to a browser window.

    source →
  4. 4Context

    libghostty is Mitchell Hashimoto's embeddable terminal library, extracted from the Ghostty terminal emulator. The first public component, libghostty-vt, handles terminal sequence parsing and state maintenance with zero dependencies. Future components will cover input processing, GPU rendering, and ready-made widgets for GTK and Swift. Hashimoto transitioned Ghostty to a non-profit structure under Hack Club's fiscal sponsorship in 2025.

    — Mitchell Hashimoto

    source →
  5. 5Counter

    For Linux/Windows users locked out of cmux, the alternatives are: Zellij (Rust-based multiplexer with resizable isolated panes and a plugin system), tmux with custom scripts, or tools like parallel-code which runs Claude Code, Codex, and Gemini side-by-side in individual git worktrees. There is also a community cmux-linux fork, though it is unofficial.

    source →
  6. 6Quote

    "More apps will support parallel running as a workflow in 2026, where you can execute tasks in the background and have agents work on multiple items simultaneously." The terminal is becoming the orchestration layer for AI agents, and MCP (Model Context Protocol) has hit 97 million monthly SDK downloads by February 2026 — the plumbing that connects these agents to external tools.

    source →