macOS 14+ · Apple Silicon recommended

The terminal that knows
what your agent is doing.

A native macOS terminal built on libghostty. Workspaces, tabs, and split panes for your repos — with live status for every Claude Code, OpenCode, and Codex session you run.

Live preview — + add workspace/tab · double-click to rename · drag to reorder · type a command and hit Enter
THREE IDEAS

Native, agent-aware, project-first.

Three choices we made early, and kept making. The terminal we wanted after spending serious time with AI coding agents — never silent about what they're doing, never in the way when they aren't.

01

Native. GPU-rendered.

libghostty on Metal. Low-latency input, crisp text, and no Electron in your Dock.

02

Agent-aware.

Every sidebar row and tab icon reflects live state of Claude Code, OpenCode, and Codex — running, waiting for you, finished or failed.

03

Project-first.

Workspace → Tabs → Splits. Each workspace row shows its git branch, open PRs, and unread notifications. Your terminal, by repo.

FEATURES

Built for the way you already work.

01 · AGENT STATUS

Five dots. A glance is enough.

running · idle · needs input · success · failed — hover any icon to see which tool is running and (for Claude / Codex) the last assistant message.

02 · SPLITS

⌘D · ⌘⇧D · done.

Binary split tree per tab. Cut horizontally or vertically, drag dividers, navigate panes with ⌘⌥↑↓←→.

03 · PERSISTENT LAYOUT

Stays where you left it.

Workspaces, tabs, split tree, and each terminal's pwd survive restart. Terminals are rebuilt by UUID into fresh surfaces — no session-serialization hacks.

04 · SIDEBAR METADATA

Branch, PR, notifications.

Each workspace row polls its git branch and open PR every 5 s, plus OSC hooks for live updates.

05 · THEME

Every ghostty theme. Live.

Ships with all ghostty themes. Edits hot-reload after 200 ms; Mux0's own chrome re-tints with the terminal.

06 · SHELL

zsh, fish, bash — integrated.

OSC 7 feeds the sidebar pwd. Ghostty integration features (cursor, sudo, title, ssh-env) are toggles in Settings → Shell.

HOW IT WORKS

Hooks in, hooks out. Local socket only.

Agents report what they're doing to a Unix domain socket on your machine. No cloud, no account, no telemetry.

01

Agent runs

Claude Code, OpenCode, or Codex starts inside a Mux0 tab.

02

Hook fires

settings.json injection for Claude, bundled plugin for OpenCode, hooks for Codex.

03

Unix socket

A small JSON event streams to ~/Library/Caches/mux0/hooks.sock.

04

UI updates

Sidebar row, tab dot, and hover tooltip reflect the running turn — in real time.

NO NETWORK · LOCAL SOCKET · 100% ON-DEVICE
COMPARED

Next to the usual suspects.

Mux0 Terminal.app iTerm2 Warp Ghostty
GPU-rendered terminal
Agent status in UI
Project-level workspaces
Splits + keyboard focus
No account, offline
Live theme / font editing
In-app auto-update (Sparkle)
UNDER THE HOOD

Boring choices, on purpose.

Swift AppKit SwiftUI Metal libghostty Sparkle Unix domain sockets OSC 7 Xcode String Catalog
The terminal should disappear until the agent needs you — and when it does, it should tell you before you ask.
Mux0 · DESIGN NOTES
FAQ

Questions we expect.

Is Mux0 open source?
The source is published on GitHub under a source-available license — free to use, including commercially, but not redistributable. See LICENSE for the full terms.
Which agents are supported?
Claude Code (via settings.json injection), OpenCode (via a bundled plugin), and Codex (via hooks — experimental). Each can be toggled in Settings → Agents.
Does it need internet?
No. The app is fully offline. Your agents may talk to their own model providers, but Mux0 itself never phones home — Sparkle checks releases only when you ask or once per day if auto-update is on.
How does this relate to Ghostty?
We use libghostty — ghostty's terminal engine — as a library, and expose its full config surface in Settings. Credit where it's due: the renderer is theirs. Mux0 adds the workspace, tab, split, and agent-status layer on top.
System requirements?
macOS 14 (Sonoma) or later. Apple Silicon is strongly recommended because libghostty uses Metal GPU rendering.
Is Mux0 free to use?
Yes — free for personal and commercial use. Anything you create inside Mux0 is yours. What you can't do is redistribute Mux0 itself — reselling it, bundling Mux0 into a product you ship, or hosting it as a SaaS are all out. Forking the source to prepare a pull request is fine; maintaining a fork as a parallel or competing distribution isn't. See LICENSE for details.
Can I switch language in-app?
Yes — Settings → Appearance → Language: System / English / 简体中文. Switch takes effect without restart.