Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents
https://cmux.com
* Add sidebar blur effect with withinWindow blending - Add NSVisualEffectView-based blur backdrop for sidebar - Support withinWindow blending mode to blur terminal content behind sidebar - Auto-switch to overlay layout when withinWindow mode is selected - Add sidebar debug panel with material, blending, tint, and opacity controls - Add preset options (HUD Glass, Popover Glass, etc.) - Default to HUD Glass preset with withinWindow blur * Simplify tab close button visibility and remove hover background Show close button only on hover instead of when active/multi-selected. Remove the hover background color from tabs for cleaner appearance. * Add config reload support with notification system - Add reloadConfiguration() methods for app-wide and per-surface reload - Handle GHOSTTY_ACTION_RELOAD_CONFIG action from Ghostty - Add ghosttyConfigDidReload notification for views to react - TerminalSplitTreeView reloads GhosttyConfig on notification - Add openConfigurationInTextEdit() helper - Fix activeMainWindow() to correctly find main window * Add custom tab titles and pinned tabs support - Add customTitle and isPinned properties to Tab - Separate process title from custom title with applyProcessTitle() - Add setCustomTitle()/clearCustomTitle() for user-defined tab names - Add togglePin()/setPinned() with automatic reordering - Pinned tabs stay at the top, new tabs insert after pinned section - moveTabToTop/moveTabsToTop respect pinned tab ordering * Add --panel option to new-split command - CLI: Parse --panel <id|index> option for new-split - Controller: Resolve panel argument to split specific surface - Return new panel UUID on successful split creation * Fix notifications popover positioning with layout-aware anchor - Use AnchorNSView with layout callback for reliable positioning - Force layout before showing popover to ensure current geometry - Convert anchor bounds to window content view coordinates - Add fallback positioning near top-left when anchor unavailable - Fix button hit testing with explicit frame and contentShape * Improve app termination in reload script Use osascript to gracefully quit by bundle ID before pkill fallback. Add more robust pkill patterns to catch instances from any DerivedData path. * Add sidebar blur effect with live-adjustable glass settings - Add WindowGlassEffect for window-level NSGlassEffectView (macOS 26+) - Add SidebarBackdrop with configurable material, blend mode, tint, and opacity - Add Sidebar Debug panel (Debug menu) for live adjustment of sidebar appearance - Add Background Debug panel for window glass tint settings - Support both behindWindow and withinWindow blur modes - Live tint updates without requiring window reload * Align titlebar text to left edge of content area |
||
|---|---|---|
| .claude/commands | ||
| .github/workflows | ||
| Assets.xcassets | ||
| CLI | ||
| docs | ||
| docs-site | ||
| ghostty@4713b7e236 | ||
| GhosttyTabs.xcodeproj | ||
| GhosttyTabsUITests | ||
| homebrew-cmuxterm@c12d753824 | ||
| node_modules | ||
| Resources/ghostty/terminfo/78 | ||
| scripts | ||
| Sources | ||
| tests | ||
| .gitignore | ||
| .gitmodules | ||
| .vercelignore | ||
| AGENTS.md | ||
| bun.lock | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| cmux-Bridging-Header.h | ||
| CONTRIBUTING.md | ||
| ghostty.h | ||
| package.json | ||
| Package.resolved | ||
| Package.swift | ||
| README.md | ||
| TODO.md | ||
cmuxterm
A lightweight native macOS terminal with vertical tabs and notifications for AI coding agents
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.