Compare

diri vs cmux

cmux is a free, scriptable Ghostty-based Mac terminal for agents; diri adds agent status, worktrees, review and agent-to-agent tasks, with sessions that outlive the app.

Checked 2026-10-01Sources linked

cmux is a free, open-source macOS terminal built on libghostty, with vertical tabs, split panes, a scriptable browser, notification rings when an agent needs you, and a CLI and socket API for everything. diri is a free, open-source native app built specifically around coding agents: 20 agent CLIs with live status, optional git worktrees, a Review panel, notes, and an MCP server that lets agents start and coordinate other agents. Both are native Mac apps that run agents in real terminals; cmux is a general terminal first, diri is an agent manager first.

At a glance

diricmux
PlatformsmacOS 15 or newer (universal), Linux beta on x86_64 Ubuntu, iPhone companion betamacOS only for now; iOS app in TestFlight beta
PriceFreeFree; a Founder's Edition offers early access features
LicenseApache-2.0GPL-3.0-or-later for the client; server components under BSL 1.1
Built withRust and GPUISwift and AppKit on libghostty
Agents20 agents with manifests for launch, resume and status, plus any shellAny agent that runs in a terminal
Status and attentionWorking, needs you, done per session, from hooks or screen rules; notifications and an inboxNotification rings and unread badges, triggered by OSC 9/99/777, the CLI or agent hooks
IsolationOptional git worktree per agentNot documented
ReviewReview panel: diff, stage, discard, commit, PR checks and commentsSidebar shows git branch and PR status; no diff panel documented
Remote hostsSSH hosts with a per-session helper; no tmux, sudo or service installcmux ssh workspaces, with browser panes routed through the remote network; can attach to remote tmux sessions
Agents controlling agentsMCP server: spawn agents in worktrees, tracked tasks, wait_any, get_diff, integrateCLI and socket API: create workspaces, split panes, send input, read screens; Claude Code teammates as native splits
Session persistenceHolder process per session; agents keep running when the app quitsRestores layout, directories and best-effort scrollback on relaunch; does not keep live processes, supported agents can resume via hooks
Notes and planningNotes with to-dos that start agents and receive reportsNot documented

Where diri is different

Agents keep running when you quit

In diri each session lives in its own holder process, not in the window. Quit the app or update the Engine and every agent keeps working with its full screen. cmux restores your layout and scrollback on relaunch, and resumes supported agents from saved session ids, but says it does not checkpoint live processes. See Sessions.

It knows what each agent is doing

diri ships a manifest for each of 20 agents describing how to launch, resume and fork it and how to read its state. The sidebar shows working, needs you and done for every session, turns red on destructive-looking prompts, and ⇧⌘J jumps to the next one waiting. See Supported agents.

Work isolation and review built in

Agents can each get a git worktree, and the Review panel shows what a session changed against the default branch or HEAD, with stage, discard, commit, and PR checks and comments. See Worktrees and review.

Orchestration with tracked results

cmux's socket API drives terminals: panes, keystrokes, screen reads. diri's MCP server works one level up. A lead agent assigns tasks that complete only when the helper reports back, optionally against a JSON schema, waits on whichever finishes first, reads the helper's final message from its transcript, and merges its branch. See MCP server.

Remote without tmux

diri's remote sessions use a small verified helper per session instead of tmux, and test whether the host keeps sessions alive after a disconnect. See Remote hosts.

Where cmux is a better fit

  • A general-purpose terminal. If you want one terminal for everything, with agents as one use among many, cmux is a full Ghostty-based terminal with vertical and horizontal tabs and splits.
  • A scriptable browser next to the terminal. cmux splits a real browser pane beside your shell and lets scripts navigate, snapshot the DOM, click, type and evaluate JavaScript. diri gives agents a browser tool, not a browser pane.
  • Agent-agnostic by design. cmux needs no per-agent support: anything that prints a standard notification escape sequence lights up. diri reads status through per-agent manifests, so a brand-new agent needs a manifest for accurate status.
  • Fits a tmux workflow. If you already keep work in tmux on remote boxes, cmux can attach to those sessions directly.

Switching

diri runs the same agent CLIs with your existing logins, and nothing in your repositories changes.

Sources