cmux alternative built around Claude Code and Codex

cmux and omux want the same thing: a Mac terminal that makes running many coding agents bearable. Both are native Swift apps, both are free and open source, and both light up when an agent needs you.

They differ in what they're built around. cmux is a general terminal, rendered by libghostty, with workspaces, split panes, SSH, an in-app browser with an automation API, and a CLI and socket API that scripts can drive. omux is narrower on purpose: it's a session manager for Claude Code and Codex, and it reads their own signals to show status, permissions, subagents and usage limits.

At a glanceomuxcmux
Native macOS app✓✓
Status from the agents' own protocols✓✕
Allow/Deny buttons✓✕
Subagent transcripts✓~
Worktrees with PR merge and cleanup✓~
Split panes✓✓
SSH workspaces✕✓
CLI and socket API✓✓
Free and open source✓✓
omux with eight projects in the sidebar, a Claude Code conversation in the transcript view, a Codex session waiting on Allow or Deny, and the Changes panel showing a diff
omux: projects and sessions on the left, the agent in the middle, its diff on the right. The session that needs you shows Allow and Deny.

Where the agent lives

cmux
Native Mac window on libghostty
↓
Workspaces, splits and notifications
↓
Your own agents
omux
The native agentic development platform for the Mac, about 5 MB
↓
Claude CodeClaude CodeCodexCodexshell
↓
The real Claude Code and Codex, on your own plans

working needs you done

Side by side

omuxcmux
Runs onmacOSmacOS
Built withSwiftUI and SwiftTermSwift and AppKit on libghostty; reads your Ghostty config
Organizing workProjects, each with sessions; optional worktree per sessionWorkspaces with vertical tabs showing branch, directory, ports and PR status
Agent needs attentionStatus from Claude Code's and Codex's own protocols: working, needs you, done, and what it's doingNotification rings and a notification panel, fed by OSC 9/99/777 and the cmux notify CLI
Answer a permission promptAllow and Deny buttons in the sidebar and header; Codex approvals show the commandJump to the pane
SubagentsListed per session with transcripts; Codex child agents tooClaude Code Teams mode, teammates as native splits
Conversations after a restartEach session resumes its exact Claude or Codex conversationLayout, directories and saved session ids restored; supported agents resume
Pull requestsPR status per worktree session, create, merge, clean upPR status shown in the sidebar
Side panelsFiles, Changes (diff with review notes sent to the agent) and BrowserIn-app browser with a scriptable automation API
Usage limitsClaude and Codex plan limits in the sidebar✕
Split panes✓ split right and down on a per-project canvas, dividerless, layouts saved✓ right and down
Remote machines over SSH✕✓ cmux ssh
Scripting✓ omux CLI over a local socket, scoped so an agent can only steer sessions it startedCLI and Unix socket API
UpdatesIn-app, signed, notarizedIn-app via Sparkle, DMG and Homebrew
LicenseMITGPL-3.0 for the app

A closer look at omux

Pick cmux if

  • You want SSH workspaces, a browser automation API, or Ghostty rendering.
  • You already use Ghostty and want its rendering and config.
  • You run agents beyond Claude Code and Codex and want them all treated the same way.

Pick omux if

  • Your sessions are Claude Code and Codex, and you want status, permissions and subagents read from the agents themselves rather than from notifications.
  • You want a worktree per session with the pull request's state, the diff and review notes right there.
  • You like a smaller, MIT-licensed app whose CLI is scoped so agents can only touch what they started.

What omux does for every session

Questions

Which is more mature?

cmux has a broader feature set and a larger community. omux is newer and focused; check both changelogs and pick the one whose direction matches how you work.

Can omux read Ghostty themes?

No. omux has its own themes and font settings. cmux reads your Ghostty configuration.

Does omux have a CLI?

Yes, since 0.9: omux list, status, screen, send, new, close and wait, over a per-launch Unix socket. It is scoped: a session can only steer sessions it started, and the whole thing can be switched off in Settings.

Also compared: Terminal alternative, tmux alternative, Warp alternative, herdr alternative, T3 Code alternative, VS Code alternative, Cursor alternative, Antigravity alternative, Devin alternative. Facts about cmux come from its public documentation as of 2026-11-06; if something is out of date, open an issue.