Compared
swe-mux combines agent terminals, live status and desktop/mobile access in one local workspace. This page says what each of the neighbouring tools does, from that tool's own documentation, and marks the rows where swe-mux is behind as plainly as the rows where it is ahead.
Every cell names its source and the page carries the date those sources were
read. Where the sources did not settle a question the answer is
unclear rather than a guess. Several of these projects are young and
move quickly, so check the date before trusting a row, and
open an issue if a cell
about your project is wrong. It will be fixed rather than argued about.
What each of these is
They are not the same kind of thing, which is the first thing a comparison table hides. Read this before the matrix.
- swe-muxA local daemon that owns pseudoterminals, with a browser UI, a Windows desktop app and a phone web app in front of it, built around knowing which agent needs you and working from the phone. Apache-2.0.
- OrcaA desktop agent development environment with an editor, a built-in browser, native iOS and Android apps, and a worktree per task. MIT, and by far the largest project here.
- HerdrTwo products that do not share agents: the Herdr TUI, a Rust binary that multiplexes terminals inside your existing terminal and reads agent state into a sidebar, and the newer Herdr app, a native window over herdr-core. Apache-2.0. Cells describe the TUI unless they say otherwise.
- tmuxThe terminal multiplexer everything in this category is measured against. It is here as the baseline, not as a competitor: it predates coding agents by twenty years and is not trying to understand them.
Until 2026-10-29 this page also covered Conductor, Superset and Warp. Their cells had not been re-read since August, so they were taken out rather than left standing.
At a glance
sources read 2026-10-29Markers only. Every one of them is a sentence with a source under it, in the section of the same name below, and a row label links straight there.
| swe-mux | Orca | Herdr | tmux | |
|---|---|---|---|---|
| License | [x] | [x] | [x] | [x] |
| Runs on hardware you control, with nothing of the vendor's in the path | [x] | [~] | [x] | [x] |
| No product telemetry | [x] | [ ] | [~] | [x] |
| Windows as a first-class host | [x] | [x] | [x] | [ ] |
| Desktop app on macOS and Linux | [~] | [x] | [x] | [x] |
| Breadth of recognized agent CLIs | [~] | [x] | [x] | [ ] |
| How agent status is read | [x] | [x] | [x] | [ ] |
| Phone client | [x] | [x] | [ ] | [ ] |
| Your local dev server, opened on the phone | [x] | [x] | [ ] | [ ] |
| A built-in browser with developer tools | [~] | [x] | [ ] | [ ] |
| Subscription quota per account | [x] | [x] | [?] | [ ] |
| Search and resume past conversations | [x] | [x] | [~] | [ ] |
| Per-session view of the tools, skills, MCP servers and hooks an agent can see | [x] | [?] | [?] | [ ] |
| Processes a session left running | [x] | [~] | [?] | [ ] |
| Agent processes outlive the app | [x] | [x] | [x] | [x] |
| Per-agent git worktree isolation | [x] | [x] | [?] | [ ] |
Read a marker as shorthand for the sentence below it, never as a score. Nothing on this page is weighted, nothing is added up, and [ ] often means a tool is not trying to do the thing rather than trying and failing.
License
- [x]swe-muxApache-2.0.source: swe-mux repository
- [x]OrcaMIT.source: Orca repository
- [x]HerdrApache-2.0, for the TUI, the app and herdr-core.source: herdr.dev
- [x]tmuxISC.source: tmux repository
Runs on hardware you control, with nothing of the vendor's in the path
- [x]swe-muxLocal app data, with no swe-mux account, server or relay. The phone reaches your machine over your own tailnet. Providers and optional integrations still use the network.source: swe-mux README
- [~]OrcaA desktop app on your own machines and subscriptions. The phone pairs over LAN or Tailscale, or through Orca Relay, a hosted relay in beta that needs an Orca sign-in.source: Orca mobile
- [x]HerdrLocal binaries. Other machines join over SSH.source: herdr.dev
- [x]tmuxA local process, and nothing else.source: tmux repository
No product telemetry
- [x]swe-muxNone. The one request swe-mux itself makes is a daily update check, which the site counts as a constant label and an HTTP status, and which can be turned off.source: swemux.dev privacy
- [ ]OrcaAnonymous usage events to PostHog Cloud (US), keyed to a random local ID. Settings, Privacy turns them off, as do DO_NOT_TRACK=1 and ORCA_TELEMETRY_DISABLED=1.source: Orca telemetry
- [~]HerdrThe app sends a daily report of versions and usage counts to telemetry.herdr.dev, on by default in release builds, never terminal text or prompts. Settings, Privacy turns it off.source: Herdr app security
- [x]tmuxNone.source: tmux repository
Windows as a first-class host
- [x]swe-muxThe proving platform, and the one with a native desktop app and tray.source: swe-mux README
- [x]OrcaA Windows 10/11 x64 installer.source: Orca downloads
- [x]HerdrStable-channel Windows x86_64 binaries; ARM64 runs them under emulation.source: Herdr install docs
- [ ]tmuxWindows only inside WSL or Cygwin.source: tmux repository
Desktop app on macOS and Linux
swe-mux loses- [~]swe-muxThe daemon runs and the UI is a browser tab; CI starts a daemon from source on both. There is no desktop app for either.source: swe-mux README
- [x]OrcaApple silicon and Intel DMGs, and a Linux AppImage.source: Orca downloads
- [x]HerdrThe TUI on both, and the app on Apple silicon macOS and Linux.source: Herdr install docs, herdr.dev
- [x]tmuxA terminal program on both.source: tmux repository
Breadth of recognized agent CLIs
swe-mux loses- [~]swe-muxFive: Claude Code, Codex, pi, oh-my-pi and opencode. Any other CLI or shell runs unchanged in a real terminal, without the status layer.source: swe-mux README
- [x]Orca41 in its supported-agents table, and it states it works with any CLI agent.source: Orca supported agents
- [x]Herdr23 detected, plus 4 that report their own state. Any CLI runs without a status.source: Herdr agents
- [ ]tmuxNone. It multiplexes terminals and does not read what is inside them.source: tmux repository
How agent status is read
- [x]swe-muxSeveral signals combined: the CLI's hooks, its transcript, Claude's own session state file, the terminal screen and the process tree. Waiting names its reason (approval, question, rate limit, login), and idle with subagents still running is drawn apart from done.source: swe-mux README
- [x]OrcaTerminal title sequences and agent hooks; for Claude Code, a status-line hook that emits OSC title events.source: Orca and Claude Code
- [x]HerdrThe TUI reads the screen against per-agent detection manifests, and uses an integration's own reports where one sends them. Its docs say Claude Code's and Codex's state come from screen detection.source: Herdr agents, Herdr integrations
- [ ]tmuxOut of scope.source: tmux repository
Phone client
- [x]swe-muxThe same application as an installable web app: the live terminal with a touch key rail, approvals, diffs, files, notes, the prompt queue, previews and push. No app store, login or relay.source: swe-mux README
- [x]OrcaNative iOS and Android apps, which its docs call a read-mostly view of running agents: scrollback, short replies, source control, files, a browser view, account usage and push.source: Orca mobile
- [ ]HerdrNo first-party client. Its docs say to install any SSH client and run the TUI there.source: Herdr, how to work
- [ ]tmuxNone. SSH in and attach.source: tmux repository
Your local dev server, opened on the phone
- [x]swe-muxA server on the host's 127.0.0.1 opens in a Preview pane on the phone through swe-mux itself, hot reload and WebSockets included, with no extra port exposed.source: swe-mux README
- [x]OrcaA Web or Mobile browser view from the phone; its docs say Mobile asks the paired desktop browser for a phone-sized viewport.source: Orca mobile
- [ ]HerdrLinks open in the default browser on the machine running the Herdr client.source: Herdr quick start
- [ ]tmuxOut of scope.source: tmux repository
A built-in browser with developer tools
swe-mux loses- [~]swe-muxA Preview pane with refresh, page capture and live reload, and no developer tools.source: swe-mux README
- [x]OrcaA Chromium window per worktree, with an address bar, DevTools and viewport emulation.source: Orca browser
- [ ]HerdrLinks open in the host's default browser.source: Herdr quick start
- [ ]tmuxOut of scope.source: tmux repository
Subscription quota per account
- [x]swe-muxClaude and Codex accounts: 5-hour and weekly windows, history and resets, each window split into what swe-mux sessions used and what was used elsewhere. One-click login switching.source: swe-mux README
- [x]OrcaClaude Code, Codex, Gemini, OpenCode, Cursor and others: 5-hour, daily and weekly windows, multiple accounts, and cost estimated from a local price table.source: Orca usage tracking
- [?]HerdrNot described in the sources checked.source: Herdr agent guide
- [ ]tmuxOut of scope.source: tmux repository
Search and resume past conversations
- [x]swe-muxFull-text search across every recognized agent's conversations, a transcript view, resume from any result, and branching a Claude conversation from any message.source: swe-mux README
- [x]OrcaSession History over about 22 agents' transcripts, filtered by title, directory, branch, model or text, with Resume.source: Orca session history
- [~]HerdrResumes 18 agents' native sessions after a server restart. Transcript browsing or search is not described.source: Herdr session state
- [ ]tmuxOut of scope.source: tmux repository
Per-session view of the tools, skills, MCP servers and hooks an agent can see
- [x]swe-muxFor Claude Code and Codex sessions, with where each came from and what changed after the CLI started. What the CLI can see, not proof a server connected.source: swe-mux README
- [?]OrcaIt reads each repository's .claude/ and .codex/ configuration; a per-session view is not described in the sources checked.source: Orca hooks and memory
- [?]HerdrLists its own integrations; a view of what an agent loaded is not described in the sources checked.source: Herdr integrations
- [ ]tmuxOut of scope.source: tmux repository
Processes a session left running
- [x]swe-muxEvery process and port is attributed to its session; ones still running after it ended, ones that escaped its tree, and heavy CPU or memory are flagged, with terminate-tree on a press. Nothing is killed automatically.source: swe-mux README
- [~]OrcaA Resource Manager covering CPU, memory and sessions. Left-behind processes are not described in the sources checked.source: Orca settings
- [?]HerdrRuntime status commands; resource use and left-behind processes are not described in the sources checked.source: Herdr agent guide
- [ ]tmuxOut of scope.source: tmux repository
Agent processes outlive the app
- [x]swe-muxA supervisor separate from the daemon and the UI holds every terminal through a daemon restart and an app update, and typing keeps reaching them meanwhile. A reboot ends the processes; the sessions stay readable and resumable.source: swe-mux README
- [x]OrcaA background daemon owns the terminals through quit, auto-update and a crash. A host reboot ends every running agent.source: Orca session restore
- [x]HerdrThe app's agents keep running in herdr-core through quit, update and a crash. In the TUI a detach keeps them, and a server restart ends them and brings back the layout.source: herdr.dev, Herdr session state
- [x]tmuxThe server keeps sessions after every client detaches. Not across a reboot.source: tmux repository
Per-agent git worktree isolation
- [x]swe-muxWorktree sessions, plus a land queue that merges a finished branch only after the check you approved passes, fast-forward only.source: swe-mux README
- [x]OrcaEach agent runs in its own worktree.source: onorca.dev
- [?]HerdrNot described in the sources checked.source: Herdr agent guide
- [ ]tmuxOut of scope. tmux knows nothing about git.source: tmux repository
How to read this
Three things the matrix cannot say, and they matter more than most of the rows.
- A phone client is not a phone clientOrca ships native iOS and Android apps and its docs call them a read-mostly view of running agents and a remote control for the desktop; swe-mux's claim is parity, the same application on both, which is a web app rather than a native one. Those are different products in the same cell, and the row cannot tell you which one you want.
- Breadth is not depthOrca and Herdr recognize more agent CLIs than swe-mux does, and if the CLI you use is on their list and not in swe-mux's registry, that is the row that decides it. Every CLI still runs in swe-mux as an ordinary terminal program; what it does not get is the layer on top.
- Not built is not the same as not yet builtswe-mux has no hosted runners, no relay and no team features, and none of them is pending: there is no swe-mux account or server by design. If you need a relay to reach your machine, Orca has one in beta.
Nothing on this page is a benchmark. No tool here was run side by side against another, and none of the rows measure speed, reliability, or how any of this feels after a week. They are capability claims read out of public documentation, which is the most that can be checked from outside.