You're running Claude Code agents and your terminal wasn't built for it.

Three parallel sessions and you have no idea which one needs your attention. Tab labels that say nothing about what's actually happening inside. This is the gap the tools below are targeting, with different approaches and very different platform coverage.

I ran Claude Code agents in five terminals: cmux, Ghostty, Warp, Herdr, and tmux. The right answer splits by OS.

Per-platform verdict

Mac: cmux if you want agent-native and you're Mac-only. Ghostty plus tmux if you need session persistence and scriptable layouts. Warp if you want built-in AI and team orchestration and you're comfortable with opt-out telemetry and a credit-based model.

Linux: no cmux (Mac-only). Ghostty plus tmux or Herdr. Herdr gives you per-agent state visibility that nothing else on Linux matches without bolting on extra tooling. Warp if your team is already evaluating cloud orchestration.

Windows: weakest field by a margin. No cmux, no Ghostty GUI. Warp is the most complete native option but Windows support is still rough. Herdr ships a native binary but it's beta and incomplete. WSL plus tmux is the practical baseline until the field matures.

ToolMacLinuxWindowsAgent-awareSession persist
cmuxYes (native)NoNoNotification ringsLayout + scrollback only
GhosttyYes (SwiftUI)Yes (GTK)No GUINoNo
WarpYesYesYes (rough)Oz cloud harnessVia Oz sessions
HerdrYes (runs inside)Yes (stable)Yes (beta)4-state detectionNo
tmuxYes (runs inside)Yes (stable)WSL onlyNoYes (detach/reattach)

The five tools

cmux

cmux is a Mac-only terminal built on libghostty, which means it renders using the same engine as Ghostty and reads your existing Ghostty config: themes, fonts, colours. Requires macOS 14.0 or later. It's by manaflow-ai, launched at YC in March 2026. Current version v0.64.16, released 2026-06-15.

The agent-specific feature is notification rings: each tab lights up when an agent needs your attention. You also get a notification panel, subagent-to-pane promotion, and a socket-based control API. The pitch is that instead of polling six tabs, the tabs tell you.

The caveat that matters most for agent work: session restore does not checkpoint live process state. Layouts, working directories, scrollback, and browser history come back. Shells, vim, tmux, and agents reopen as fresh terminals. A Claude Code session that was mid-task on restore opens blank.

So cmux handles the "which tab needs me" problem well. It doesn't handle the "agent crashed and I need to recover" problem. Those are different problems and it only solves one of them.

Other reported friction from HN around March 2026: no SSH session support; tab auto-reordering when a notification fires can shift your per-session keyboard shortcuts mid-run; copy-paste reportedly weaker than native Ghostty.

I switched to cmux from Ghostty and it's my daily driver now. The notification rings earn their place once you're past two or three agents. I treat every ring as a priority interrupt: a tab lights up, I stop whatever light work I'm on, deal with it, go back. Without it you're polling tabs, and your attention is the thing that breaks first.

My widest clean run was 30 agents at once, components and pages in a Payload CMS. The only bottleneck was a slow CMS pipeline and the frontend tests, both infrastructure, not the agents. cmux handled the fan-out fine.

One thing I turn off: tab auto-reordering on notifications. It moves tabs around when a ring fires and I lose my place more than it helps. With it off, the rings still tell me what needs attention and my tab positions stay put.

Ghostty

Ghostty is a fast native terminal emulator. GUI on Mac (SwiftUI) and Linux (GTK). No Windows GUI at all. There's a libghostty-vt library for developers embedding the VT renderer, but that's a library for devs, not a terminal you run.

Current version v1.3.1, released 2026-03-13. Native splits, tabs, and multi-window work out of the box. v1.3.0 added scrollback search, native scrollbars, and click-to-move-cursor.

The session story is the weak point. Ghostty panes evaporate when the window closes. No session manager, no fuzzy finder for reattaching, no scrollback restore. The feature request thread was locked by the maintainer after becoming a pile of "+1" replies: acknowledged, not scheduled.

Use Ghostty for quick local visual sessions where you're actively watching output. Pair it with tmux for anything persistent, remote, or scriptable. They cover different ground.

This bit me on Ghostty before I moved to cmux. Close the window mid-run and the session is gone, agent included. It happened a few times and it's how I found out Claude Code keeps every session in state locally on the machine. You lose the live terminal, not the work. claude --resume and you're back in the session that was running.

The terminal losing your pane is annoying. It isn't losing the agent, because Claude Code's local session state is doing the recovery underneath. Worth knowing before you pick a terminal on persistence alone.

Warp

Warp is a Rust-and-GPU-rendered terminal. Not Electron: it uses wgpu with Metal, Vulkan, and DirectX12. It open-sourced in April 2026 under AGPL-3.0 with OpenAI as the founding sponsor. Native binaries on Mac (aarch64 and x86_64), Linux (x86_64), and Windows (x86_64). Calver versioning; dev builds ship approximately daily.

You no longer need an account to download and run Warp. AI and cloud features still require a login and a paid plan.

The piece that matters for agent work is Oz: Warp's cloud orchestration harness. Oz runs Claude Code as a subprocess inside a Warp-managed cloud harness. Claude Code still calls Anthropic directly for inference using your own key. Oz adds triggers, environments, secrets management, observability, and governance. You can spawn sessions via REST API, Oz CLI, Warp app, schedules, GitHub Actions, Linear, or Slack. Multi-agent runs use /orchestrate. Self-hosted execution is Enterprise-only.

Billing is dual-layer: Anthropic invoices inference directly, Warp meters platform and sandbox credits separately. Oz is a different category from a local terminal; it's governed cloud agents for teams. Don't put it head-to-head on the "best terminal" axis. It's competing with a different kind of tooling.

Pricing: Free ($0 with free AI credits), Team from $20/month (1,500 cloud credits, Warp Agent, BYOK), Enterprise custom with self-hosted option.

Friction worth flagging: telemetry is opt-out by default. On Windows, CMD is still unsupported.

Herdr

Herdr is a Rust/Ratatui TUI multiplexer. It runs inside your existing terminal: Ghostty, iTerm2, Windows Terminal, anything. It's not a terminal emulator. It doesn't replace what you're already running; it adds a layer on top.

The agent-specific feature is four-state detection: blocked (red), working (yellow), done (blue), idle (green). Herdr observes terminal output and classifies each agent session. Supports Claude Code, Codex, Cursor Agent, OpenCode, and others. Official integrations add session-restore identity.

Version v0.7.0, released 2026-06-15. New in this release: local plugin system v1, Devin CLI detection, pane.move, stable short IDs. Stable on Linux and macOS.

The Windows build is a different story: native binary ships, but no terminal attach, no Unix FD handoff, partial CWD tracking in PowerShell, no signed binary so SmartScreen will flag it on first run. Don't run production agent workflows on it yet.

Detection now runs in two classes. Agents with full lifecycle hooks report state directly. Everything else, including Claude Code, gets classified by TOML manifests evaluated against the bottom-buffer snapshot. That manifest overhaul shipped stable in v0.6.9 (themed "agent stability"), and detection rules now ship remotely and hot-reload into the running server with no binary update. v0.6.10 (2026-06-11) hotfixed a detection-reset loop where Pi and OpenCode lifecycle agents could flood logs, spike CPU, and freeze the UI.

The thing to know for Claude Code specifically: its integration gives you session identity for restore, but state still comes from screen manifest detection, not hooks. The screen-scraping caveat applies to Claude Code even with the integration installed.

tmux

tmux is the no-extra-tools baseline. Current stable: v3.6b (2026-05-20). Version 3.7-rc (2026-06-08) patches a security vulnerability present through 3.6a. CISA flagged this in SB26-166, 2026-06-08. Anyone running multiple agent sessions on 3.6a or earlier should upgrade.

tmux has zero agent-awareness. No rings, no state detection, no Claude Code session integration. Its edge is what it's always been: detach and reattach persistence, remote and SSH sessions, scriptable startup layouts. Nothing else in this list replicates that for remote work or long-running sessions.

The most-cited community pattern for parallel agents: tmux plus git worktrees, one claude per worktree. Anthropic's own docs push this explicitly for isolation: each session a separate git checkout, parallel agents never editing the same files.

Mac: what the field looks like

cmux is the only tool here built specifically for agent-aware Mac terminal work. Notification rings work for the problem they're solving: instead of polling tabs, tabs tell you. The libghostty rendering means you keep your Ghostty config.

But the session restore limit matters for agentic work. cmux restores layout, scrollback, and working directories, not running processes. An agent mid-task on restore opens as a fresh shell. If long autonomous runs are your main use case, that's a gap you'll hit.

Ghostty plus tmux is the pairing that gets persistent sessions on Mac without giving anything up. Ghostty handles rendering and splits for active visual work. tmux handles everything persistent: reattach after close, SSH, scripted startup layouts. Most Mac engineers running agents in parallel end up using both.

Warp is the pick if your team wants cloud-orchestrated agents, not just a better local terminal. Oz is a legitimately different category from a terminal upgrade. If you're evaluating team orchestration for Claude Code at a company level, Warp competes there. As a personal local terminal replacement, the value proposition is thinner and the AI features need credits.

Linux: narrowed field

cmux doesn't run on Linux. Full stop.

Ghostty runs via GTK on Linux and it's a genuinely good terminal. Pair it with tmux for persistence and you get the same setup as Mac minus cmux. Native splits for visual work, tmux for anything you need to survive.

Herdr fills the agent-state gap on Linux. If you're running multiple Claude Code sessions and want to see which one is blocked versus working without switching to each tab, Herdr is the tool. It runs inside whatever terminal you have. The screen-scraping detection caveat applies here too. v0.6.10 fixed a real log-flooding bug, which tells you something about the maturity of the detection layer.

Warp runs natively on Linux x86_64. If your team is using Oz, it makes sense here too. As a standalone local terminal on Linux, the value proposition is the same as Mac.

Windows: honest about the field

No cmux. No Ghostty GUI.

Warp is the most complete native option: GPU-rendered, real Windows installer. Windows support is improving but CMD is still unsupported and the experience is behind Mac and Linux.

Herdr ships a native Windows binary. No terminal attach, no Unix FD handoff, partial CWD tracking in PowerShell, SmartScreen will flag it on first run. Worth watching as it matures. Not worth staking a production agent workflow on it yet.

WSL plus tmux is the practical baseline. Full detach/reattach persistence, nothing to work around, stable. Not agent-aware, but it works.

If you're primarily on Windows running Claude Code agents, the native options are limited and the good ones are works in progress. Worth knowing before you spend an afternoon on a setup that hits the gaps.

The session-persistence problem

Every tool here gives a different answer to the same question: what happens to a running agent when something closes?

tmux: the session survives. Detach, reconnect, agent still running.

cmux: layout and scrollback survive. The agent does not. Fresh shell on restore.

Ghostty: nothing survives. Window closes, session gone.

Warp with Oz: cloud-managed sessions have their own continuity, but that's the cloud harness, not the local terminal.

Herdr: no session persistence. It adds state visibility to a multiplexer, not process management.

One caveat across all of these: Claude Code persists its own sessions locally, so claude --resume recovers the conversation even when the terminal loses the pane. The terminal's persistence story is about the live shell and process, not the agent's state. If Claude Code is your only agent, this matters less than the table suggests. For anything without its own local session state, the terminal's persistence is the whole story.

For long autonomous runs, this is the decision that matters most. If you can't afford to lose an in-progress agent, tmux is still the only local option with real process persistence. Everything else is solving a different layer of the problem.

The verdict

Mac engineers who can stay Mac only: try cmux. The notification rings solve a real problem. Go in knowing that session restore doesn't save running agents.

Linux and Mac engineers who need persistent sessions: Ghostty plus tmux. Clean separation between what each does. Nothing to throw away.

Engineers who want agent-state visibility across platforms: Herdr inside whatever terminal you already have. Stable on Mac and Linux. Screen-scraping detection has known edge cases. Right tool for the state-visibility problem specifically.

Warp if your team is evaluating cloud orchestration via Oz. Don't pick it as a personal terminal upgrade unless the AI and credits fit your workflow.

Windows: WSL plus tmux until the native options mature. Warp if you need to stay native and want the most complete option. Herdr's Windows binary when you want to experiment, not when you need reliability.

No single answer fits every OS and workflow. The platform split is the answer.

Frequently asked questions

What is the best terminal for Claude Code on Mac?
cmux if you want agent-native features (notification rings, tab-per-session management) and you're Mac-only. Ghostty plus tmux if you need session persistence: tmux survives window closes and SSH drops, Ghostty does not. Warp if your team wants cloud orchestration via Oz and you're comfortable with opt-out telemetry and a credit-based AI model.
What is the best terminal for Claude Code on Linux?
Ghostty plus tmux for persistent sessions and native rendering. Herdr if you want four-state agent visibility (blocked, working, done, idle) running inside whatever terminal you already have. It's stable on Linux. cmux is Mac-only and not an option on Linux.
What is the best terminal for Claude Code on Windows?
The field is limited. Warp is the most complete native option. Herdr ships a Windows binary but it's beta and missing core features including terminal attach. WSL plus tmux is the practical baseline: not agent-aware, but stable. No cmux (Mac-only), no Ghostty GUI.
What is cmux and is it good for Claude Code?
cmux is a Mac-only terminal built on libghostty by manaflow-ai. It's designed for agent-aware work: notification rings light up tabs when an agent needs attention, and subagent-to-pane promotion lets you pull a subagent's output into its own view. The main caveat: session restore does not save running agents. A Claude Code session mid-task opens as a fresh terminal on restore. Requires macOS 14.0 or later.
Does Ghostty work for running Claude Code agents?
Ghostty is a fast native terminal on Mac and Linux. It works fine for running Claude Code but has no agent-specific features and no session persistence. When the window closes, your agent session is gone. Pair it with tmux for persistence: Ghostty handles rendering, tmux handles detach/reattach.
What is Herdr and how does it help with Claude Code?
Herdr is a Rust/Ratatui TUI multiplexer with agent-state detection. It runs inside your existing terminal, not as a replacement. It classifies each Claude Code session as blocked (red), working (yellow), done (blue), or idle (green) by observing terminal output. Stable on Mac and Linux. The Windows build is beta. Detection works by screen-scraping, which has known edge cases.
Is Warp good for Claude Code?
Warp is a Rust-rendered terminal with built-in AI and a cloud orchestration feature called Oz that runs Claude Code as a managed subprocess. If you're evaluating team-level agent orchestration with triggers, secrets management, and observability, Oz is a serious option. As a plain local terminal upgrade, it's cross-platform and fast, but AI features need credits and a paid plan, and telemetry is opt-out. Not Electron: Rust plus GPU rendering.
Why do Anthropic's own docs recommend tmux plus git worktrees for parallel Claude Code agents?
Anthropic's parallel-agent docs push git worktrees for isolation: each session in a separate git checkout so parallel agents never edit the same files simultaneously. tmux is the natural pairing because it provides session persistence and scriptable layouts. The detach/reattach behaviour is what none of the newer agent-aware tools replicate for remote or long-running sessions.

Start by doing this

5 mins: Start two Claude Code sessions in whatever terminal you're using now. Notice how you track which one needs attention. That's the problem cmux (on Mac) and Herdr (cross-platform) are both trying to solve, from different directions.

15 mins: Run a session inside tmux. Kill the terminal window. Reconnect with tmux attach. The session is still there. That one behaviour is why tmux is still in the conversation after everything else in this list shipped.

30 mins: If you're on Mac, install cmux from github.com/manaflow-ai/cmux and run two agents. Watch whether the notification rings change how often you switch tabs to check status. If you're on Linux, install Herdr and watch the state colours for one working session. Both are worth a single real trial before you commit.