DEV Community

Yuuichi Eguchi
Yuuichi Eguchi

Posted on

Calyx vs cmux: Choosing the Right Ghostty-Based Terminal for macOS 26

The Ghostty Terminal Race

With the rise of AI coding agents in 2026, terminals are no longer just text windows — they're command centers. Two Ghostty-based macOS terminals have emerged as frontrunners: cmux and Calyx.

Both leverage Ghostty's GPU-accelerated rendering, but they take very different approaches to what a modern terminal should be. Let's break down why Calyx might be the better choice for your daily workflow.

What is cmux?

cmux by manaflow-ai is a terminal built for AI coding agents. It features vertical tabs, notification rings, split panes, a socket API, and deep integration with tools like Claude Code, Codex, and Aider.

What is Calyx?

Calyx is a macOS 26+ native terminal that prioritizes daily-driver polish: a beautiful Liquid Glass UI, robust session management, intuitive tab organization, and security-conscious browser integration.

Head-to-Head Comparison

1. Native macOS 26 Design

Calyx is built from the ground up for macOS 26's Liquid Glass design language. Glass Material is applied to the sidebar, tab bar, command palette, and browser toolbar — making Calyx feel like a first-class citizen on your Mac. It also respects the "Reduce Transparency" accessibility setting, automatically falling back to a solid UI for users who need it.

cmux uses a functional UI but doesn't adopt macOS 26's design system. If you care about visual consistency with the rest of your OS, Calyx wins here.

2. Tab Groups vs Vertical Tabs

cmux offers vertical tabs with useful metadata like git branch, PR status, and listening ports in the sidebar.

Calyx takes tab management further with tab groups — organize tabs by project or context with 10 color presets (red, orange, yellow, green, mint, teal, cyan, blue, indigo, purple). Groups are collapsible in the sidebar, support tab reordering within groups, and show tab counts per group. Working on a full-stack app? Group your frontend, backend, and infrastructure tabs separately. With dozens of tabs open, you'll always know where you are.

3. Split Panes: Stability Matters

Both terminals support split panes, but stability differs significantly.

cmux has known rendering issues where terminal panes fail to render after closing splits. Keyboard shortcuts also reportedly break after opening browser tabs.

Calyx's splits are backed by an immutable binary tree data structure (SplitTree) with horizontal/vertical splitting, drag-to-resize with a 50px minimum pane guarantee, equalize operation, and spatial focus navigation (left/right/up/down). Tab switching uses only setFocus + refresh, keeping the render loop stable by design. No phantom blank panes, no lost keyboard input.

4. Command Palette

Hit Cmd+Shift+P in Calyx and you get a VS Code-style command palette with fuzzy search across 15 built-in commands. The scoring system combines word-start bonus, consecutive match bonus, exact match bonus, and prefix match bonus for accurate results. Command usage frequency is tracked, so your most-used commands rise to the top over time.

The shortcut system is built on a low-level NSEvent monitor that detects IME compose state — CJK input never triggers shortcuts accidentally. Text fields and text views are also properly excluded.

cmux doesn't have a command palette.

5. Session Persistence

Quit Calyx and reopen it — your tabs, tab groups, split layouts, browser URLs, and window positions are fully restored.

Under the hood, Calyx implements atomic file writes (temp file + rename), automatic backup rotation, 2-second debounced auto-save, schema versioning (currently v3) with migration support, crash loop detection (max 3 recovery attempts), and window frame clamping to screen bounds. If the primary session file is corrupted, it automatically recovers from the backup.

6. Notification System

Both terminals support notifications, but Calyx emphasizes security and reliability.

Calyx relays OSC notifications to UNUserNotificationCenter with per-tab unread badges (circle in sidebar, capsule in tab bar, capped at 99+). It implements rate limiting (max 5 per second per tab), Dock icon bounce on first unread, and automatic badge clearing on window focus.

Notification text is sanitized with bidi override removal, control character filtering, zero-width character removal, newline normalization, NFC normalization, and truncation at 256 grapheme clusters — preventing malicious terminal sequences from becoming attack vectors.

7. Browser Integration That Works

Both terminals include a built-in browser. However, cmux has reported issues with HTTP connections being blocked and forced dark mode on all pages.

Calyx's browser uses a non-persistent WebKit data store for privacy, with back/forward/reload navigation, a loading indicator, error banners, and JavaScript dialog support (alert, confirm, prompt).

Security is comprehensive:

  • URL scheme validation (only http/https/about at top-level)
  • Subresource scheme blocking (javascript, data)
  • Redirect depth limiting (max 10)
  • Download filename sanitization (null byte stripping, dangerous character replacement, dangerous extension blocking, 255-char limit)
  • MIME type blocking for dangerous executables
  • Symlink traversal prevention on download paths
  • Automatic macOS Quarantine attribute on downloaded files

8. Licensing

Calyx cmux
License MIT AGPL

Calyx's MIT license places no restrictions on commercial use or modification. cmux's AGPL requires source code disclosure if you provide the software as a network service — a potential blocker for enterprise adoption.

Feature Matrix

Feature Calyx cmux
Liquid Glass UI
Tab Groups (color-coded) ❌ (vertical tabs only)
Split Panes ✅ Stable ⚠️ Rendering bugs
Command Palette ✅ (fuzzy search + frequency)
Session Persistence ✅ (schema v3 + crash recovery)
Browser Integration ✅ (security validation + downloads) ⚠️ No HTTP, forced dark mode
Notifications ✅ (rate-limited + sanitized)
CJK Input Handling ✅ (IME-aware shortcuts) Unknown
Multi-Window
Socket API
License MIT AGPL

The Bottom Line

cmux is a solid terminal with a sharp focus on AI agent workflows. Its socket API is genuinely useful for multi-agent setups.

But as a daily-driver terminal, Calyx offers a more polished and reliable experience: a beautiful native Liquid Glass UI, intuitive color-coded tab groups, stable split panes backed by immutable data structures, a fuzzy-search command palette with frequency learning, crash-resilient session persistence, a security-hardened browser, rate-limited and sanitized notifications, proper CJK input handling, and a permissive MIT license.

If you're on macOS 26, give Calyx a try.


Links

Top comments (0)