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.
340
stars
269
commits
Swift
primary language
Jul 7, 2026
updated
A macOS tabbed-and-split terminal with live AI agent status in the sidebar. Organize terminals by project, split panes freely, and always know at a glance whether Claude Code, OpenCode, or Codex is running, idle, or waiting for you.
Powered by the ghostty engine with Metal GPU rendering. Bilingual UI — English / 简体中文.
running / idle / waiting-for-input / finished state for Claude Code, OpenCode, and Codex. Each turn is tagged success or failed. Hover an icon to see the currently running tool and (for Claude / Codex) a short summary of the agent's last reply.
mux0.dmg from GitHub Releases.After that, Mux0 checks for updates once a day automatically. You'll see a small dot in the sidebar footer when a new version is available.
Tip: you can add as many workspaces as you like. Each one keeps its own tabs and split layout independently.
⌘T, or the + button in the tab bar.⌘W, middle-click the tab, or use the ✕ button.⌘D.⌘⇧D.⌘⌥ + arrow keys.Press ⌘, to open Settings, then:
See docs/settings-reference.md for every setting.
Settings → Appearance → Language: System (follow macOS language), English, or 简体中文. The change applies instantly across the entire UI.
Mux0 automatically hooks into Claude Code, OpenCode, and Codex so their status shows live on the sidebar and tab icons. You don't need to configure anything — just run the agent as usual.
| Icon color | Meaning |
|---|---|
| Green (pulsing) | Agent is running — a turn is in progress. |
| Amber | Agent is waiting for your input (permission request, clarifying question). |
| ✓ (green check) | Last turn finished cleanly. |
| ✕ (red cross) | Last turn had at least one tool error. |
| Gray | Idle / no agent running. |
Hover a status icon to see which tool is currently running (e.g. "Edit Models/Foo.swift", "Bash: ls") and, for Claude / Codex, a one-line summary of the agent's last reply.
| Agent | Command | Notes |
|---|---|---|
| Claude Code | claude | Full status + turn summary + tool detail. |
| OpenCode | opencode | Full status + tool detail. Summary not available yet. |
| Codex | codex | Status is experimental — may lag slightly behind. |
If an icon doesn't update, see Troubleshooting below.
~/.zshrc, ~/.bashrc, etc.) and disabled ghostty's shell integration, you'll need to re-enable it.Settings debounce for ~200 ms before applying. If a change still hasn't appeared after a second or two, toggle the setting off and back on, or quit and relaunch Mux0.
Blur only has visible effect when Background Opacity is below 1.0. If you want a frosted-glass look, lower the opacity first, then raise the blur radius.
This is macOS's Gatekeeper warning. Go to System Settings → Privacy & Security, scroll to the bottom, and click Open Anyway next to the Mux0 entry. You only need to do this once.
Auto-update runs at most once a day. To force a check, open Settings → Update and click Check for Updates.
./scripts/build-vendor.sh # build libghostty (once)
xcodegen generate
xcodebuild -project mux0.xcodeproj -scheme mux0 -configuration Debug build
See docs/build.md for the full prerequisites, vendor layout, and release workflow.
By default, Debug builds are ad-hoc signed — every xcodebuild produces a new cdhash, which macOS TCC treats as a different app and revokes any Files & Folders / Full Disk Access permissions you previously granted. The popups come back after every rebuild.
To fix this, sign Debug builds with a stable Apple Development cert:
cp Local.xcconfig.example Local.xcconfig
# then edit Local.xcconfig:
# DEVELOPMENT_TEAM = XXXXXXXXXX
xcodegen generate && xcodebuild ... build — verify with:
codesign -dv ~/Library/Developer/Xcode/DerivedData/mux0-*/Build/Products/Debug/mux0.app 2>&1 | grep Authority
You should see Authority=Apple Development: <Your Name> (...) instead of adhoc.Local.xcconfig is gitignored. Skipping this step is fine — the build still works, you just keep the ad-hoc popup loop.
Mux0 is released under a Source-Available License — see LICENSE. In plain English:
This is not an OSI-approved open-source license. For redistribution, bundling, hosting as a service, or maintaining a non-contribution fork, please contact the copyright holder.
Contributions. By submitting a pull request you agree to the terms in LICENSE § 9 — in short, you grant the project permission to use and relicense your contribution as part of Mux0.
256 commits
10 commits
2 commits
1 commits
Swift
74.3%
HTML
15.2%
Shell
4.7%
Python
4.2%
JavaScript
1.6%
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.
340
stars
269
commits
Swift
primary language
Jul 7, 2026
updated
A macOS tabbed-and-split terminal with live AI agent status in the sidebar. Organize terminals by project, split panes freely, and always know at a glance whether Claude Code, OpenCode, or Codex is running, idle, or waiting for you.
Powered by the ghostty engine with Metal GPU rendering. Bilingual UI — English / 简体中文.
running / idle / waiting-for-input / finished state for Claude Code, OpenCode, and Codex. Each turn is tagged success or failed. Hover an icon to see the currently running tool and (for Claude / Codex) a short summary of the agent's last reply.
mux0.dmg from GitHub Releases.After that, Mux0 checks for updates once a day automatically. You'll see a small dot in the sidebar footer when a new version is available.
Tip: you can add as many workspaces as you like. Each one keeps its own tabs and split layout independently.
⌘T, or the + button in the tab bar.⌘W, middle-click the tab, or use the ✕ button.⌘D.⌘⇧D.⌘⌥ + arrow keys.Press ⌘, to open Settings, then:
See docs/settings-reference.md for every setting.
Settings → Appearance → Language: System (follow macOS language), English, or 简体中文. The change applies instantly across the entire UI.
Mux0 automatically hooks into Claude Code, OpenCode, and Codex so their status shows live on the sidebar and tab icons. You don't need to configure anything — just run the agent as usual.
| Icon color | Meaning |
|---|---|
| Green (pulsing) | Agent is running — a turn is in progress. |
| Amber | Agent is waiting for your input (permission request, clarifying question). |
| ✓ (green check) | Last turn finished cleanly. |
| ✕ (red cross) | Last turn had at least one tool error. |
| Gray | Idle / no agent running. |
Hover a status icon to see which tool is currently running (e.g. "Edit Models/Foo.swift", "Bash: ls") and, for Claude / Codex, a one-line summary of the agent's last reply.
| Agent | Command | Notes |
|---|---|---|
| Claude Code | claude | Full status + turn summary + tool detail. |
| OpenCode | opencode | Full status + tool detail. Summary not available yet. |
| Codex | codex | Status is experimental — may lag slightly behind. |
If an icon doesn't update, see Troubleshooting below.
~/.zshrc, ~/.bashrc, etc.) and disabled ghostty's shell integration, you'll need to re-enable it.Settings debounce for ~200 ms before applying. If a change still hasn't appeared after a second or two, toggle the setting off and back on, or quit and relaunch Mux0.
Blur only has visible effect when Background Opacity is below 1.0. If you want a frosted-glass look, lower the opacity first, then raise the blur radius.
This is macOS's Gatekeeper warning. Go to System Settings → Privacy & Security, scroll to the bottom, and click Open Anyway next to the Mux0 entry. You only need to do this once.
Auto-update runs at most once a day. To force a check, open Settings → Update and click Check for Updates.
./scripts/build-vendor.sh # build libghostty (once)
xcodegen generate
xcodebuild -project mux0.xcodeproj -scheme mux0 -configuration Debug build
See docs/build.md for the full prerequisites, vendor layout, and release workflow.
By default, Debug builds are ad-hoc signed — every xcodebuild produces a new cdhash, which macOS TCC treats as a different app and revokes any Files & Folders / Full Disk Access permissions you previously granted. The popups come back after every rebuild.
To fix this, sign Debug builds with a stable Apple Development cert:
cp Local.xcconfig.example Local.xcconfig
# then edit Local.xcconfig:
# DEVELOPMENT_TEAM = XXXXXXXXXX
xcodegen generate && xcodebuild ... build — verify with:
codesign -dv ~/Library/Developer/Xcode/DerivedData/mux0-*/Build/Products/Debug/mux0.app 2>&1 | grep Authority
You should see Authority=Apple Development: <Your Name> (...) instead of adhoc.Local.xcconfig is gitignored. Skipping this step is fine — the build still works, you just keep the ad-hoc popup loop.
Mux0 is released under a Source-Available License — see LICENSE. In plain English:
This is not an OSI-approved open-source license. For redistribution, bundling, hosting as a service, or maintaining a non-contribution fork, please contact the copyright holder.
Contributions. By submitting a pull request you agree to the terms in LICENSE § 9 — in short, you grant the project permission to use and relicense your contribution as part of Mux0.
256 commits
10 commits
2 commits
1 commits
Swift
74.3%
HTML
15.2%
Shell
4.7%
Python
4.2%
JavaScript
1.6%