Paneflow vs cmux
Both Paneflow and cmux let you run Claude Code, Codex, OpenCode, and other CLI coding agents side by side. They diverge on philosophy. Paneflow is the minimal, native core - pure Rust on Zed’s GPUI engine, sub-200 ms cold start, sub-4 ms keystroke-to-pixel latency, single MIT binary, built by an indie dev who uses it daily. cmux is the kitchen-sink macOS toolkit - Swift + libghostty + embedded browser + cloud VMs + SSH daemon, GPL with a commercial option. Pick Paneflow if you want a fast, ergonomic agent workspace that gets out of the way. Pick cmux if you want every adjacent tool built into one product.
A note on inspiration
Paneflow’s design is openly inspired by cmux. cmux was the first project to ship a polished agent-first terminal multiplexer for developers running multiple AI coding agents in parallel, and the “workspace per project, panes per agent” mental model came from it.
Paneflow is not a fork. It is an independent Rust codebase that reimplements that mental model with different architectural choices: pure Rust instead of Swift, GPUI instead of AppKit, upstream alacritty_terminal instead of libghostty, and cross-platform from day one instead of macOS-first. Both projects exist in parallel and solve overlapping problems with different tradeoffs - the rest of this page lays them out.
Quick comparison
Grouped in three zones - performance & architecture (where Paneflow leads), core agent workspace (where both are equivalent), and the adjacent toolkit (where cmux has shipped more surface).
Performance & architecture
| Paneflow | cmux | |
|---|---|---|
| Cold start | <200 ms | n/a |
| Keystroke-to-pixel latency | <4 ms | n/a |
| Language | Rust | Swift (with Go SSH daemon) |
| UI framework | GPUI (same as Zed) | AppKit + SwiftUI |
| Terminal engine | alacritty_terminal 0.26 (upstream crates.io) | libghostty via GhosttyKit.xcframework |
| GPU stack | Vulkan / Metal via Blade | Metal via CAMetalLayer |
| Binary distribution | Single static binary | macOS .app bundle |
| License | MIT | GPL-3.0-or-later (+ commercial license) |
| OS support | Linux, macOS (Windows planned) | macOS only |
Core agent workspace
| Paneflow | cmux | |
|---|---|---|
| Workspaces | Yes | Yes |
| Pane layout | N-ary tree, 4 preset layouts | N-ary tree via Bonsplit |
| Session restore | Yes (workspaces + CWD) | Yes |
| Dev-server port detection | Yes | Yes |
| Branch-aware workspace badges | Yes | Yes |
| AI agents (any CLI) | Unlimited (launch any binary in a pane) | Unlimited (launch any binary in a pane) |
| AI agents (dedicated UI buttons) | 3 (Claude Code, Codex, OpenCode) | 15+ (Claude Code, Codex, Grok, OpenCode, Cursor, Copilot, Gemini, Antigravity, Rovo Dev, Hermes, CodeBuddy, Factory, Qoder, Amp, Pi + custom) |
| Markdown panes | Yes (beta) | Yes |
Adjacent toolkit
| Paneflow | cmux | |
|---|---|---|
| Embedded browser | n/a | WKWebView with Chrome/Firefox/Safari/Brave/Edge/Arc profile import |
| Cloud VM provisioning | n/a | Yes (`cmux vm new`) |
| SSH remote workspaces | n/a | Auto-deployed Go daemon over scp/SSH |
| IPC surface | JSON-RPC 2.0 over Unix socket (~13 methods) | Dual socket: V1 space-delimited text + V2 newline-delimited JSON, several hundred commands |
| Command palette | n/a | Yes (fuzzy-search) |
| AppleScript scripting | n/a | Yes (.sdef bundle) |
| Tmux compatibility shim | n/a | capture-pane, pipe-pane, bind-key, paste-buffer, set-hook |
| Right sidebar panels | Workspaces sidebar only | 5 panels: Files, Find, Vault, Feed, Dock |
| Per-directory config | n/a | Ancestor-walk with trust modes |
| Notifications | Basic (per-pane) | Persistent with unread tracking |
| Socket access control modes | Single trust mode | 5 modes (off, cmuxOnly, automation, password, allowAll) |
Versions: Paneflow v0.2.16 (May 2026), first release April 2026 (v0.1.0). cmux v0.64.7 (May 19, 2026, also tagged v1.38.1), first release January 2026 (v0.2.0). Pricing: both free. Paneflow MIT; cmux GPL-3.0-or-later with a separate commercial license available.
Which one is right for you?
The honest version: this is a clean either/or for most users. The two bullet lists below capture who each tool is genuinely built for. If you fit neither, you probably want something simpler (raw tmux, WezTerm, iTerm2).
Choose Paneflow if
- -You care about performance - Paneflow boots in <200ms with <4ms keystroke-to-pixel latency, on Zed's GPUI rendering pipeline
- -You value minimalism - a single static binary, a JSON config, no built-in browser / cloud VM provisioner / several-hundred-command socket API to learn
- -You want a tool that feels like Zed - same engine, same obsession with native scrolling, instant focus, no input lag, no Electron
- -You're on macOS or Linux and want a workspace that runs equally well on both, so your team can be cross-platform without tool divergence
- -You prefer MIT - no commercial license question, no copyleft constraint if you ever embed it
- -You like backing an indie dev who uses Paneflow every day rather than a studio shipping a product roadmap
Choose cmux if
- -You are macOS-only and want the most polished native experience today
- -You need SSH remote workspaces (cmux is the only one shipping this)
- -You need an embedded browser with Chrome/Firefox/Safari/Brave/Edge/Arc profile import
- -You rotate through 15+ AI agents and want first-class integration for all of them
- -You want a 17 500+ star community, hundreds of socket commands, and active commercial backing
- -You want cloud VM provisioning, AppleScript scripting, or tmux compatibility built in
- -You are comfortable with GPL-3.0 (or you will pay for the commercial license)
Architecture deep-dive
cmux is a native macOS application built on AppKit and SwiftUI. Terminal emulation is delegated to libghostty, the C library that powers the Ghostty terminal emulator, bridged into the Swift app through GhosttyKit.xcframework. Rendering goes through a custom GhosttyMetalLayer subclass of CAMetalLayer (Ghostty drives Metal directly, no MTKView). Pane layout uses Bonsplit, an N-ary tree layout library that exposes adjacency queries (adjacentPane(to:direction:)) and snapshots for session persistence.
Paneflow is built in pure Rust on top of GPUI, the same UI framework Zed uses. In practical terms: there is no language boundary between the UI and the terminal - keystrokes travel through a single pure-Rust pipeline, which is why keystroke-to-pixel latency stays under 4 ms and the app cold-starts in under 200 ms. Terminal emulation is upstream alacritty_terminal0.26 from crates.io - the public, stable Rust VT crate. No fork to maintain, so future Rust ecosystem improvements flow in naturally. The GPU layer is Blade (GPUI’s renderer) over Vulkan on Linux and Metal on macOS. Pane layout is a hand-rolled N-ary tree designed for the four preset layouts (even horizontal, even vertical, main-vertical, tiled).
On the IPC side, both projects expose a Unix socket. cmux runs two protocols in parallel on the same socket: V1 is a space-delimited text protocol (e.g. new-workspace, send-key <args>), V2 is newline-delimited JSON. The dispatcher inspects the first byte of each line to route. Combined surface area is several hundred commands covering windows, panes, sessions, notifications, and remote workspaces. Paneflow ships a single JSON-RPC 2.0 protocol with roughly thirteen methods covering workspaces and panes - smaller surface, faster to learn, far less coverage. Catching up to cmux on the IPC API surface is on the Paneflow roadmap.
Pricing
Both projects are free to use. The licensing models differ:
- -Paneflow: MIT license, no dual licensing, no commercial tier. Use it however you want, including embedding it inside commercial products.
- -cmux: GPL-3.0 by default with a separate commercial license available for organizations that need non-copyleft terms. Pricing for the commercial license is not publicly listed; contact the maintainers.
Migrating from cmux to Paneflow
You can move most of a cmux setup to Paneflow in about ten minutes. The config schemas are similar JSON shapes; the keystroke notation matches; the AI agent button concept is the same.
- -Config file: copy your
~/.config/cmux/cmux.jsonto~/.config/paneflow/paneflow.jsonon Linux or~/Library/Application Support/paneflow/paneflow.jsonon macOS. Rename keys that differ (see the schema reference). - -Keybindings: defaults match for the core actions (
Cmd/Ctrl+Shift+Dsplit horizontal,Cmd/Ctrl+Shift+Esplit vertical,Alt+Arrowfocus,Cmd/Ctrl+1-9workspace switch). Custom overrides translate directly. - -Sessions: not portable. On-disk session formats differ; you will need to recreate workspaces on first launch. Branch detection and CWD restoration kick in automatically after that.
- -SSH workflows: no direct migration path. If you depend on
cmux ssh user@host, stay on cmux until Paneflow ships remote workspace support.
When NOT to choose Paneflow
The honest dealbreakers. If any of the five below matters to you, cmux is the right tool today - no point fighting it:
- 1.You need SSH remote workspaces. cmux ships an auto-deploying Go daemon (scp + SSH local- forward to a Unix socket) so
cmux ssh user@hostgives you a remote workspace transparently. Paneflow has no equivalent on the immediate roadmap. - 2.You need an embedded browser inside the terminal. cmux’s WKWebView panel imports profiles from Chrome, Firefox, Safari, Brave, Edge, and Arc. Paneflow does not plan a browser surface.
- 3.You need cloud VMs provisioned from the terminal. cmux ships integrated VM provisioning (
cmux vm new) wired to the rest of the workspace. Paneflow has no equivalent. - 4.You need a several-hundred-command IPC surface for automation. cmux exposes hundreds of commands over a dual V1 text + V2 JSON socket protocol. Paneflow’s JSON-RPC has thirteen methods today - enough for basic agent control, not enough for heavy automation pipelines.
- 5.You need production-grade maturity right now. cmux is at v0.64 with months of ground-truth user feedback and active commercial backing. Paneflow is at v0.2.x with a small community. Config and IPC schemas may still shift between minor versions until v1.0.
Frequently asked questions
Is Paneflow a fork of cmux?
No. Paneflow is an independent Rust implementation inspired by cmux's agent-first design. The two codebases share no source code. Paneflow uses GPUI (Zed's framework) + upstream alacritty_terminal; cmux uses AppKit + libghostty via the GhosttyKit.xcframework.
How many AI agents does each terminal support?
Both can launch any CLI coding agent - they are terminal multiplexers, so anything you can run in a shell runs there. The difference is the dedicated UI: Paneflow ships first-class buttons for Claude Code, Codex, and OpenCode (the three the developer who built Paneflow uses every day). cmux ships dedicated UI for 15+ agents. If you rotate through many agents and want one-click launch for each, cmux's broader zoo helps. If you mainly use two or three, both feel the same.
Why pick Paneflow if cmux is more mature?
If you need Linux today (Paneflow ships it, cmux is macOS-only), or you specifically want MIT-licensed tooling without a separate commercial license question, or you prefer a small Rust codebase you can audit and contribute to, Paneflow is the better fit. For macOS-only feature-rich workflows in May 2026, cmux is more polished and has a much larger surface (cloud VMs, command palette, AppleScript, tmux compatibility, embedded browser).
Will Paneflow run on Windows?
Native Windows is planned, no shipping ETA yet. WSL2 + the Linux build is not currently viable: GPUI's renderer needs the VK_EXT_inline_uniform_block Vulkan extension which WSLg's dzn driver does not implement, so it would fall back to llvmpipe software rendering - unusable for a terminal multiplexer.
Can I migrate my cmux config to Paneflow?
Partially. Both projects use a JSON config file with similar shape (default shell, theme, keybindings, AI agent buttons). The keystroke notation matches on the modifier (Cmd on macOS, Ctrl on Linux). Session files are NOT portable - the on-disk format differs. A migration helper script is on the roadmap; for now the manual translation takes about ten minutes.
Why does Paneflow use alacritty_terminal instead of Ghostty?
alacritty_terminal is published on crates.io with stable Rust semver guarantees and integrates cleanly with GPUI's render loop. Ghostty is a C library that cmux accesses through the GhosttyKit.xcframework - perfectly fine in cmux's Swift app, but Paneflow's pure-Rust stack prefers a pure-Rust VT emulator. This is an architectural preference, not a quality judgment. Both engines are excellent.
Does Paneflow support running agents on remote machines?
Not today. cmux ships a Go daemon that auto-deploys over SSH (`cmux ssh user@host`) to create a remote workspace transparently. Paneflow's roadmap does not currently include this feature. If your workflow depends on remote agents, cmux is the better choice today.
Is there an embedded browser in Paneflow?
No. cmux ships a full WKWebView-based browser with omnibar, profile import from Chrome/Firefox/Safari/Brave/Edge/Arc, and tab management. Paneflow does not include a browser - it focuses on terminal panes plus a markdown viewer. If you want a browser inside your terminal workspace, cmux is the better choice.
Next steps
Ready to try Paneflow? Download the latest release or read the getting-started guide. Curious about cmux instead? cmux is on GitHub and worth a look - it solves a problem the Paneflow team respects deeply.