Three Claude Code sessions, and the tab titles still say nothing about which one is waiting on you. The best terminal for Claude Code depends on the OS.

What I checked. On 28 October 2026 I read the cmux, Ghostty, Warp, Herdr, and tmux docs, plus Anthropic's terminal and worktree pages. The Mac notes are from running cmux as my daily driver. I haven't re-run a Linux or Windows setup for this update, so those verdicts follow that read, and where the August version of this post disagrees with a current doc, the current doc wins. Copy-paste and auto-reordering come from an HN thread around March 2026, not from a fresh run. The corrections are at the end.

What is the best terminal for Claude Code?

Mac. cmux, when several sessions are open and you want the tab to show which agent needs you. Ghostty is enough for one or two sessions.

Linux. Ghostty plus tmux when the process has to survive SSH and Herdr isn't on the machine. Herdr inside Ghostty when you want idle, working, and blocked on each pane, and detach that keeps the process running.

Windows. Herdr. Native support is generally available, and local sessions keep running after you detach. Warp is the native terminal app if you want one, and it still doesn't run CMD. WSL plus tmux behaves like a remote Linux box.

ToolMac?Linux?Windows?Does it show which agent needs you?What survives a close?
cmuxYes, native appNoNoNotification rings on the tabLayout, scrollback, and supported agent sessions. Not arbitrary processes
GhosttyYesYes (GTK)No GUI. The 1.4.0 notes drop the Windows GUI roadmapClaude Code desktop notification. No per-tab stateNothing. On Mac, quit can ask you to confirm
WarpYesYes, x64 and ARM64Yes, x64 and ARM64. CMD is unsupportedCloud agents. No local per-tab ringCloud runs have their own continuity
HerdrRuns inside your terminalRuns inside your terminalGenerally available. Direct terminal attach is still unsupportedidle, working, blocked. Claude Code state is read from the screenDetach keeps the process. A server restart restores layout and integrated agent sessions
tmuxRuns inside your terminalYesWSLNoDetach and reattach. The process keeps running

What does each tool actually do?

What is cmux, and is it good for Claude Code?

cmux is a Mac terminal built on libghostty. It renders with Ghostty's engine and reads your Ghostty config for themes, fonts, and colours. The app is Swift and AppKit, not Electron.

Current release is v0.65.2.2, published 27 October 2026. It's macOS only. The changelog still ships an iOS companion marked beta, paired to the Mac app. I didn't recheck the TestFlight listing.

A tab lights up when its agent needs you. Ghostty's ping only tells you that some session does.

Session restore does more than it did in August, but it still doesn't checkpoint a live process (docs read 28 Oct). It brings back windows, workspaces, panes, working directories, scrollback (best effort), and browser state. Supported agents resume once cmux has their session id and the hooks are installed.

cmux hooks setup installs the integrations it finds on PATH. Claude Code comes back with claude --resume. Codex, OpenCode, Cursor CLI, Gemini, Amp, and others are on the same table.

You can bind a pane to a resume command, including tmux attach -t work. That reattaches tmux. It doesn't checkpoint the process. Shells, vim, and anything without a resume integration reopen as a normal terminal.

From running it: I switched to cmux from Ghostty, and it's my daily driver. Past two or three agents, the rings are what I use. A tab lights up, I stop the light work, deal with it, and go back.

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. I turn off tab auto-reordering on notifications. The rings still fire, and the tabs stay where I left them.

Copy-paste felt weaker than native Ghostty in an HN thread around March 2026, and auto-reordering shifted per-session shortcuts. The "no SSH" complaint from that thread has aged out. Session restore includes remote tmux attach as a resume binding.

Does Ghostty work for running Claude Code?

Ghostty is a fast native terminal, with a GUI on Mac and on Linux (GTK). Current release is 1.4.0, 27 October 2026.

The 1.4.0 notes drop the Windows GUI from the roadmap. libghostty still builds for Windows, for other apps to embed. Windows has no Ghostty app.

Claude Code sends a desktop notification only in Ghostty, Kitty, and iTerm2, by default, when a task finishes or a permission prompt is waiting and you appear to be away from the terminal. Ghostty and Kitty forward that to the OS notification center with no extra setup. iTerm2 needs Notification Center alerts turned on, including escape-sequence alerts.

Warp, the VS Code terminal, and other terminals need preferredNotifChannel set to terminal_bell, or a Notification hook. cmux and Herdr mark the session that needs you.

I found no session manager in the 1.4.0 notes. On Mac, quitting or closing a window when processes are running now offers a review step, so you can decide what to close. Confirming the close still ends the process.

This happened to me on Ghostty before I moved to cmux. Close the window mid-run and the pane is gone, agent included. Claude Code keeps the conversation on the machine. claude --resume opens it again.

Use Ghostty for local sessions you're watching. Pair it with tmux when the session has to survive the window, SSH, or a scripted layout. Inside tmux, the notification and Shift+Enter both break unless you turn passthrough on. Anthropic's terminal page gives these lines for ~/.tmux.conf:

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

Then tmux source-file ~/.tmux.conf. Without allow-passthrough, tmux swallows the notification before Ghostty can show it.

Is Warp good for Claude Code?

Warp's client is open source under AGPL-3.0. Installers exist for Mac, Linux (x64 and ARM64), and Windows (x64 and ARM64). The latest stable tag on the GitHub releases list, when I checked, was 3 June 2026.

The free plan is $0 and includes the terminal. Build includes $20 of agent usage a month, Max includes $200, and Business includes $20 of agent usage per seat. Enterprise is custom.

In August the figures were Build at $18 with 1,500 credits, Max at $180, and Business at $45. The pricing page lists usage allowances instead. I couldn't find a separate monthly seat price, so this update doesn't state one.

For agent work, look at the cloud agents. The older version of this post called them Oz. Cloud runs bill platform time plus inference and Warp-hosted compute. Personal BYOK keys aren't available to those cloud runs.

Business and Enterprise can configure team-managed inference, and self-hosted agents are Enterprise-only. The August sentence that said Oz runs Claude Code against your own Anthropic key is out of date.

The oz binary is being replaced by the Warp Agent CLI (warp), and oz commands were documented as supported through the end of September 2026. That date has passed. I didn't find a later page that records a removal, so whether oz still runs is unverified. The command going forward is warp.

CMD is still unsupported. The supported Windows shells are PowerShell 7 (the default), PowerShell 5, WSL2, and Git Bash.

The privacy page and the security page disagree. Free-plan AI requires telemetry, and paid plans can opt out and keep Warp, including AI. The security page lets every user opt out and keep AI. I don't have a first-hand number for what a cloud run costs.

What is Herdr, and how does it help with Claude Code?

Herdr is a Rust terminal multiplexer. It runs inside the terminal you already have: Ghostty, iTerm2, Windows Terminal, Warp. Current release is v0.9.5, 14 October 2026. Licence is Apache-2.0.

The August version of this post got persistence wrong, and it got Windows wrong.

Detach (ctrl+b then q) leaves the Herdr server running. Panes, shells, and agents keep running, and you come back with herdr. A server restart is different: the processes are gone, the layout comes back, and agents resume only when an official integration reported a session. Native agent resume is on by default (resume_agents_on_restore = true).

Windows support is generally available, on the stable channel. Local persistent sessions, ConPTY panes, Windows Terminal attach, cmd.exe panes, and herdr --remote are supported.

Still unsupported: direct herdr terminal attach, live server handoff, Unix file-descriptor handoff, and a signed binary. SmartScreen can still warn on first launch. Live cd tracking in PowerShell is partial unless you use shell integration. I haven't run this Windows build.

State detection is still two paths. Some agents report idle, working, or blocked themselves. herdr integration install claude reports the session id so a restart can resume it, and Claude Code's state still comes from reading the screen.

The August post also described a done state and four colours. Both are dropped here, because they aren't on the agents page.

The screen path has a real limit, and Herdr documents it: detection breaks when the agent UI changes. Rules ship in a manifest, so a fix doesn't always need a new binary. Blocked is strict. Herdr marks blocked only when the bottom of the pane matches a known approval, question, or permission UI.

Why do people still use tmux with Claude Code?

tmux is the baseline already installed on most servers. Current stable is 3.8, released 9 September 2026. The 3.7 line had a bugfix release, 3.7c, on 17 August 2026, which the August version of this post missed (it stopped at 3.7b).

3.8 adds floating panes, built-in light and dark themes, and a faster switcher. Mouse support is on by default. Restart tmux entirely after you upgrade.

The security note from August still stands if you're on the 3.6 line. 3.7 carried the fix for the vulnerability CISA flagged in SB26-166 on 8 June 2026. 3.8 is after that fix. If you're still on 3.6, upgrade. I didn't re-fetch the CISA bulletin for this update.

tmux has no agent state. Its edge is detach and reattach, remote sessions, and scripted layouts. Herdr has a detach path now too. tmux is the one already on a machine where you're not going to install anything else.

The August post said Anthropic tells you to use tmux for parallel sessions. You isolate them with claude --worktree name, so each session edits its own checkout, and the worktree page doesn't mention tmux.

Worktrees solve file collisions. tmux solves a process that has to outlive the terminal. They're different problems, and you often want both. When the session has to leave the laptop, file isolation is a separate writeup: Claude Code remote control.

How does Herdr compare with cmux?

cmux is a Mac application. Herdr is a layer inside whatever terminal you already run, on Mac, Linux, and Windows.

cmux lights the tab. Herdr marks the pane idle, working, or blocked, and for Claude Code that mark is still read off the screen.

cmux brings layout and supported agent sessions back after a restart. It doesn't keep an arbitrary process alive. Herdr's detach keeps the process alive. A Herdr server restart drops the process and resumes agents that installed the integration.

On a Mac, if the problem is which tab needs you, I run cmux. If you need Linux, Windows, or a process that survives closing the window, Herdr covers that. Herdr runs inside a terminal, so it can run inside cmux. I haven't done that.

How does Warp compare with Herdr and cmux?

Herdr and cmux run the agent on your machine. Warp's cloud agents run on Warp's infrastructure, with platform charges on top of inference, and they don't use a personal BYOK key.

As a local terminal, Warp is the cross-platform app, and it doesn't mark a pane blocked or ring a tab. Claude Code's desktop notification isn't sent to Warp by default. You get a bell or a hook, from terminal_bell or a Notification hook.

Pick Warp when a team wants cloud runs with triggers and shared environments. Pick cmux or Herdr when the agent is local and you need to see which session needs you.

What is the best terminal for Claude Code on Mac?

cmux, for the case I actually have: several agents, and I want the tab to tell me which one is waiting. Ghostty 1.4.0 fits a single session you're watching. The notification is built in, and cmux embeds the same rendering family.

Kitty and iTerm2 get that notification too. I haven't run a comparison against them.

Ghostty plus tmux is the Mac pairing when a process has to survive the window. Turn on passthrough, or the Ghostty notification never arrives.

Herdr on a Mac gives you the same state marks and detach behaviour as on Linux. cmux covers the Mac case I care about. That preference is from using cmux, and I haven't run a head-to-head against Herdr on Mac for this update.

What is the best terminal for Claude Code on Linux?

Ghostty 1.4.0 on GTK is the native terminal, and cmux doesn't run on Linux. Splits can be dragged between tabs and windows in this release. Pair it with tmux 3.8 when you need detach, SSH, or a layout you can script. Same passthrough lines as on Mac, or the notification dies inside tmux.

Herdr is the Linux option when you want agent state and you want the process to survive closing the terminal. It runs inside Ghostty. Claude Code's state is still screen detection, with the integration there to restore the session after a server restart.

Warp runs natively on Linux, including ARM64. Same trade as on Mac: cloud agents if that's the product you want, and a local terminal with no per-pane agent state if it isn't.

What is the best terminal for Claude Code on Windows?

Herdr is the Windows pick for real work. Support is generally available, on the stable channel: local sessions that keep running after you detach, cmd.exe panes, Windows Terminal attach, and herdr --remote.

cmux doesn't run here, and Windows has no Ghostty app. Ghostty 1.4.0 took the GUI off the roadmap. libghostty on Windows is a library for other projects.

The gaps still written down: no direct terminal attach, no live server handoff, partial live cd tracking in PowerShell, and no signed binary, so SmartScreen can flag the first run. I haven't run it. Read the Windows page before you bet a workflow on the partial rows.

Warp is the native Windows terminal. x64 and ARM64 installers are on the pricing page. CMD is still unsupported. The supported shells are PowerShell 7, PowerShell 5, WSL2, and Git Bash.

It doesn't keep a local agent alive the way Herdr's detach does, and it doesn't mark panes.

WSL plus tmux 3.8 is the same tmux as everywhere else, inside a Linux environment Claude Code already understands. It has no agent state, and the process keeps running after you detach.

What happens to a running agent when the terminal closes?

tmux. The session survives. Detach, reconnect, and the agent is still running, including over SSH.

Herdr. On detach, the server keeps the process and herdr reattaches. If the Herdr server itself stops, the process is gone and the layout comes back. Claude Code comes back only if you installed the integration, as a resumed conversation. The original process is gone.

cmux. Layout, scrollback, working directories, and supported agent sessions come back after a full restart, once the hooks are installed. A long build or a vim buffer comes back as a fresh shell, unless you bound a resume command such as tmux attach.

Ghostty. Nothing survives the close. On Mac, 1.4.0 asks before it closes a window that still has processes, and the process ends if you confirm.

Warp cloud agents. The run lives in Warp's cloud. That continuity belongs to the cloud harness, and a local Warp tab closes like any other local terminal.

Claude Code also stores the conversation on the machine, so claude --resume recovers the thread when the terminal loses the pane. If Claude Code is your only agent, you lose the live process and keep the conversation. For a dev server, a watch process, or an agent with no local session file, the terminal's persistence is the whole story.

Which terminal is best for Claude Code?

Mac, several agents, and you want the tab to light up: cmux. I run this.

Mac or Linux, one session you're watching: Ghostty. Claude Code already notifies it.

Linux or Mac, the process has to survive the window and you're fine without agent state: Ghostty plus tmux, with passthrough on.

Linux, Mac, or Windows, you want state on each pane and detach that keeps the process: Herdr, inside the terminal you already have. On Windows, treat the documented gaps as real. I haven't run that build.

Cloud agents for a team: Warp. A personal local terminal: one of the others.

Windows, and you want the boring thing that matches a remote Linux box: WSL plus tmux.

What changed since August 2026?

The 6 August 2026 version of this post is the one Google last crawled. These are the corrections, checked 28 October 2026.

  • 30 October 2026: wording only. No new doc check. Everything below is still the 28 October read.
  • tmux stable is 3.8 (9 September 2026), not 3.7b. 3.7c shipped on 17 August.
  • Ghostty is 1.4.0 (27 October 2026). The Windows GUI is off the roadmap. Claude Code sends Ghostty, Kitty, and iTerm2 a desktop notification by default.
  • cmux is v0.65.2.2 (27 October 2026). Session restore covers more agents, including a tmux attach binding. It still doesn't checkpoint an arbitrary process.
  • Herdr is v0.9.5 (14 October 2026). Detach keeps processes. Windows is generally available. Claude Code state is still screen detection. The integration restores the session. The agents page lists three states. The August post's four colours are dropped.
  • Warp cloud runs don't take a personal BYOK key. The oz CLI was documented as supported through the end of September 2026, with warp as the replacement. CMD is still unsupported. The pricing page now lists usage allowances instead of the August credit prices.
  • Anthropic's worktree page recommends claude --worktree. It doesn't recommend tmux.

Frequently asked questions

What is the best terminal for Claude Code on Mac?
cmux, when you want the tab to light up for the agent that needs you and you're staying on a Mac. Ghostty 1.4.0 covers one or two sessions (Kitty and iTerm2 get the same notification), Ghostty plus tmux with passthrough covers a process that has to survive the window, and Warp is the pick when the agents run in Warp's cloud.
What is the best terminal for Claude Code on Linux?
Ghostty plus tmux 3.8 when you want a native terminal and a process that survives SSH, or Herdr inside Ghostty when you want each pane marked idle, working, or blocked and detach that keeps the process running. cmux is Mac-only, and Warp is there if you want Warp's cloud agents.
What is the best terminal for Claude Code on Windows?
Herdr: Windows support is generally available, local sessions keep running after you detach, and direct terminal attach, live server handoff, and a signed binary are still unsupported. Warp is the native terminal app and CMD is still unsupported, WSL plus tmux matches Linux, and neither cmux nor a Ghostty app runs on Windows (1.4.0 dropped the GUI).
What is cmux and is it good for Claude Code?
cmux is a Mac-only terminal built on libghostty (v0.65.2.2, 27 October 2026, with an iOS companion still marked beta), and a notification ring lights the tab when an agent needs you. Session restore brings back layout, working directories, scrollback, and supported agent sessions, including Claude Code via claude --resume once the hooks are installed, and it still doesn't checkpoint a live process.
Does Ghostty work for running Claude Code agents?
Yes on Mac and Linux: Ghostty 1.4.0 gets the desktop notification by default, has no per-tab state and no session restore (close the window and the process is gone, and claude --resume recovers the conversation), and needs tmux with allow-passthrough when the process has to survive. Windows has no Ghostty app.
What is Herdr and how does it help with Claude Code?
Herdr is a multiplexer that runs inside your existing terminal (v0.9.5, 14 October 2026), marks panes idle, working, or blocked, and reads Claude Code's mark from the screen while the integration restores the session after a server restart. Detach keeps the process running, and Windows support is generally available, with direct terminal attach and a signed binary still unsupported.
Is Warp good for Claude Code?
Warp is the cross-platform terminal to pick when you want cloud agents, which bill platform time on top of inference and don't take a personal BYOK key. Locally it runs on Mac, Linux, and Windows without ringing a tab or marking a pane, CMD is unsupported, and the command going forward is warp, after oz was documented as supported through the end of September 2026.
Do Anthropic's docs recommend tmux for parallel Claude Code agents?
They recommend git worktrees: claude --worktree name starts a session in its own checkout so parallel agents don't edit the same files, and the worktrees page doesn't mention tmux. Add tmux when the process also has to keep running after the terminal closes, and set allow-passthrough and extended keys or the notification and Shift+Enter never reach the outer terminal.