Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents https://cmux.com
Find a file
Lawrence Chen 679cafdc51 Fix update pill constraint feedback loop
The pill never appeared because:
1. SwiftUI .frame(width:0, height:0) when idle poisoned fittingSize
2. AppKit constraints locked at 0x0 prevented expansion on state change
3. fittingSize always returned 0 due to active 0x0 constraints

Fix: Remove zero-frame from SwiftUI (always render at natural size,
use opacity only). Deactivate constraints before measuring fittingSize
so they don't clamp the measurement. Pass visibility to sizeToolbarItem
to set constraints to zero when idle or natural size when active.
2026-02-08 20:21:27 -08:00
.claude/commands Focus release changelog on end-user visible changes 2026-01-30 16:58:29 -08:00
.github/workflows Revert to npm create-dmg for styled DMG layout 2026-02-08 17:30:49 -08:00
Assets.xcassets Add dev build branding and reload scripts 2026-01-28 01:20:48 -08:00
CLI Fix CI race condition on self-hosted runner (#19) 2026-02-06 22:32:14 -08:00
docs Add notifications documentation for AI agent integrations 2026-01-29 17:20:55 -08:00
docs-site Fix update pill constraint feedback loop 2026-02-08 20:21:27 -08:00
ghostty@4713b7e236 Update ghostty submodule workflow 2026-01-28 22:35:28 -08:00
GhosttyTabs.xcodeproj Fix update pill constraint feedback loop 2026-02-08 20:21:27 -08:00
GhosttyTabsUITests Add UI test for jump-to-unread focus 2026-01-29 19:28:15 -08:00
homebrew-cmuxterm@c12d753824 Add homebrew-cmuxterm as submodule 2026-01-29 04:44:31 -08:00
node_modules Update app and tooling 2026-01-29 17:36:26 -08:00
Resources Fix CI race condition on self-hosted runner (#19) 2026-02-06 22:32:14 -08:00
scripts Sidebar metadata + tagged reload isolation (#16) 2026-02-06 18:09:56 -08:00
Sources Fix update pill constraint feedback loop 2026-02-08 20:21:27 -08:00
tests Fix CI race condition on self-hosted runner (#19) 2026-02-06 22:32:14 -08:00
.gitignore Add zig, node, and hypothesis to gitignore (#8) 2026-02-03 15:18:59 -08:00
.gitmodules Add homebrew-cmuxterm as submodule 2026-01-29 04:44:31 -08:00
.vercelignore Add Vercel ignore 2026-01-29 17:50:35 -08:00
AGENTS.md agents 2026-01-22 03:18:02 -08:00
bun.lock Update app and tooling 2026-01-29 17:36:26 -08:00
CHANGELOG.md Fix update pill constraint feedback loop 2026-02-08 20:21:27 -08:00
CLAUDE.md Document --tag flag for parallel builds in CLAUDE.md 2026-02-05 23:06:48 -08:00
cmux-Bridging-Header.h Rename to cmux and add About panel 2026-01-26 03:05:03 -08:00
CONTRIBUTING.md Include local changes 2026-01-30 16:46:30 -08:00
ghostty.h Initial commit: macOS terminal app with vertical tabs using libghostty 2026-01-22 01:16:24 -08:00
package.json Update app and tooling 2026-01-29 17:36:26 -08:00
Package.resolved Initial commit: macOS terminal app with vertical tabs using libghostty 2026-01-22 01:16:24 -08:00
Package.swift Rename to cmux and add About panel 2026-01-26 03:05:03 -08:00
README.md Add documentation site and Homebrew installation 2026-01-29 04:41:39 -08:00
TODO.md wip 2026-01-29 20:39:21 -08:00

cmuxterm

A lightweight native macOS terminal with vertical tabs and notifications for AI coding agents

Download cmuxterm for macOS

Features

  • Native macOS app — Built with Swift and AppKit, not Electron. Fast startup, low memory.
  • Vertical tabs — See all your terminals at a glance in a sidebar
  • Notification panel — Tabs flash when AI agents (Claude Code, Codex) need your attention
  • Lightweight — Small binary, minimal resource footprint. No bundled browser engine.
  • GPU-accelerated — Powered by libghostty for smooth rendering

Install

Homebrew:

brew tap manaflow-ai/cmuxterm
brew install --cask cmuxterm

Or download the DMG directly.

Why cmuxterm?

Running multiple AI coding agents? cmuxterm helps you manage them. Instead of losing track of which terminal needs input, the notification panel shows you exactly where to look.

A native macOS app means it launches instantly, uses minimal RAM, and feels right at home on your Mac.