cmux icon

cmux

The terminal built for multitasking, organization, and programmability.

Free and open source native macOS terminal built on Ghostty. Vertical tabs, notification rings when agents need attention, split panes, and a CLI for programmability.

Features

  • -Vertical tabs: sidebar shows git branch, working directory, ports, and notification text
  • -Notification rings: panes light up when agents need attention
  • -In-app browser: split a browser alongside your terminal with a scriptable API
  • -Split panes: horizontal and vertical splits within each tab
  • -Programmable: CLI and socket API for automation and scripting
  • -GPU-accelerated: powered by libghostty for smooth rendering
  • -Lightweight: native Swift + AppKit, no Electron
  • -Open source: free and GPL-licensed
  • -Keyboard shortcuts: extensive shortcuts for workspaces, splits, browser, and more
  • -iOS companion: your terminals sync to iPhone and iPad in realtime
cmux terminal app screenshot
cmux iOS app mirroring a live agent terminal

FAQ

How does cmux relate to Ghostty?

cmux is not a fork of Ghostty. It uses libghostty as a library for terminal rendering, the same way apps use WebKit for web views. Ghostty is a standalone terminal; cmux is a different app built on top of its rendering engine.

What platforms does it support?

macOS only, for now. cmux is a native Swift + AppKit app.

Is there an iOS app?

Yes, in beta. Pair your iPhone with your Mac from the Mobile Connect window and attach to your terminals from your phone, with optional forwarding of terminal notifications. It ships on TestFlight as cmux BETA. Early access is included with cmux Founders Edition.

What coding agents does cmux work with?

All of them. cmux is a terminal, so any agent that runs in a terminal works out of the box: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent, and anything else you can launch from the command line.

Can cmux orchestrate multiple agents and subagents?

Yes. When an agent spawns subagents or teammates, cmux turns them into native panes and splits instead of hidden background processes. It supports Claude Code teams and oh-my-opencode multi-model orchestration, so every agent in a run is visible and controllable.

Can I use cmux with remote machines?

Yes. Open workspaces over SSH and attach to remote tmux sessions, so agents can run on a remote host while you drive them from cmux. See SSH and remote.

How do notifications work?

When a process needs attention, cmux shows notification rings around panes, unread badges in the sidebar, a notification popover, and a macOS desktop notification. These fire automatically via standard terminal escape sequences (OSC 9/99/777), or you can trigger them with the cmux CLI and agent hooks. Any agent that supports hooks or OSC works, including Claude Code, Codex, OpenCode, and pi.

Is cmux programmable?

Yes. Every action is available through the cmux CLI and a Unix socket: create workspaces, open split panes, send input, read screen contents, take screenshots, and drive the in-app browser. See the CLI reference and browser automation docs.

What can the built-in browser do?

cmux can split a real browser pane next to your terminal, and it is fully programmable: navigate, snapshot the DOM, click, type, evaluate JavaScript, and read console and network activity over the same socket API. Agents use it to verify their own web changes without leaving cmux. See browser automation.

Does cmux have skills?

Yes. Skills are reusable workflows you can give any agent running in cmux, for things like CLI control, workspace automation, settings, and browser surfaces. Browse the open collection at cmux-skills, or read the skills docs.

Can I customize keyboard shortcuts?

Terminal keybindings are read from your Ghostty config file (~/.config/ghostty/config). cmux-specific shortcuts (workspaces, splits, browser, notifications) can be customized in Settings. See the default shortcuts for a full list.

Can I customize cmux?

Yes. Terminal rendering uses your Ghostty config, so themes, fonts, colors, and cursor carry over directly. cmux's own settings in ~/.config/cmux/cmux.json control the sidebar, tab bar, split panes, and behavior, and every keyboard shortcut is editable. See configuration.

Are my sessions saved?

Yes. cmux restores your windows, workspaces, panes, working directories, and scrollback when you relaunch, and the state survives a full computer restart, not just quitting the app. Agent sessions like Claude Code, Codex, and OpenCode come back too. See session restore.

How does it compare to tmux?

tmux is a terminal multiplexer that runs inside any terminal. cmux is a native macOS app with a GUI: vertical tabs, split panes, an embedded browser, and a socket API, all built in, no config files or prefix keys needed. That said, lots of people happily run cmux with SSH and tmux together, and cmux can attach to your remote tmux sessions natively (beta).

Is cmux free?

Yes, cmux is free to use. The source code is available on GitHub.

How can I support cmux?

cmux is free and open source, and always will be. If you want to back development and get early access to what's next, including cmux AI, the iOS app, and Cloud VMs, check out cmux Founders Edition.

I have a feature request or found a bug

We want to hear it. Open an issue or pull request on GitHub, or email us.

Community