Agent-readable wiki
tmux and cmux Repository Comparison Wiki
A fast, source-anchored comparison of tmux as a portable terminal multiplexer daemon and cmux as a native macOS terminal, browser, and agent workflow shell. The structure emphasizes reusable design ideas, BYOC/BYOK-friendly automation surfaces, and differences that matter when porting concepts between repositories.
Pages
- Comparison FrameThe comparison lens: tmux optimizes a cross-platform C daemon and terminal protocol core, while cmux builds a macOS-native orchestration surface around terminals, browser panes, notifications, and agent hooks. No local STRATEGY.md or docs/solutions context was present, so repository code and tests are the source of truth.
- Platform & Build BoundariesHow each repository encodes portability: tmux uses autotools, feature checks, compat sources, and C dependencies; cmux uses Xcode targets, Swift packages, bundled app resources, and a separate web backend surface.
- Lifecycle & Socket ControlContrasts tmux's client-server fork, lock, imsg, and Unix socket lifecycle with cmux's in-app socket listener, access modes, CLI client behavior, and local automation guardrails.
- Panes, Workspaces & LayoutCompares tmux's sessions, windows, panes, split commands, and layout tree mechanics with cmux's workspaces, panels, Bonsplit-backed layout state, terminal panels, and persisted surface snapshots.
- Command & Config SurfacesShows how tmux exposes a grammar, command queue, options, key bindings, and config loading, while cmux layers JSONC project config, command execution, Ghostty config compatibility, and CLI configuration commands.
- Agent Notifications & HooksExplains the shift from tmux's terminal alerts and control notifications to cmux's agent-aware notification queue, unread state, CLI hook definitions, and extensible hook formats for multiple coding agents.
- Browser Automation vs Terminal ControlContrasts tmux's terminal-only control and capture model with cmux's browser pane automation, WebKit-backed panels, screenshots, profiles, and socket-addressable browser actions for local dev workflows.
- Remote SSH & Provider NeutralityCompares tmux's shell, job, and spawn portability with cmux's SSH workspace, remote PTY attach, loopback routing, and daemon bridge design. The portable lesson is to keep orchestration file, socket, and repository based so BYOC/BYOK workflows do not depend on one model provider or hosted connector.
- Regression & Fuzz BoundariesMaps the quality signals that make each project maintainable: tmux has shell regressions and fuzzers around command parsing, input, style, and formats; cmux has Swift unit and UI tests around sockets, browser panes, sessions, hooks, and app regressions.
- Comparison VerdictThe closing synthesis: tmux is strongest as a small, portable, protocol-deep multiplexer; cmux is strongest as a native agent-workflow shell that combines terminal, browser, notifications, remote access, and local automation. The most portable ideas are explicit socket contracts, source-backed command/config schemas, provider-neutral hooks, and focused regression boundaries.
Complete Markdown
The complete agent-readable Markdown files are published separately from this HTML page.