cmux alternative · for terminals on machines you don't sit at

An agent-aware terminal, on the machine instead of on your Mac.

cmux is a native macOS terminal that knows which pane is an agent, rings when one needs you, and reaches other machines over SSH. Cordane puts that terminal in a browser tab — running on any machine you own, persisting on the worker rather than in a client, reachable from a phone, shareable with a teammate, with nothing to SSH into.

cmux is a terminal emulator; Cordane is a hub. Not the same thing, and this page says so.
See it

Close the lid. Keep the shell.

The persistence cmux gets from session restore, Cordane gets from the process never having left the machine: a build still counting through a closed tab and a hub restart, on camera, nothing cut.

A Cordane terminal still running after the browser tab was closed and the hub restarted
Watch · 1:26
Nothing loads from YouTube until you press play. Open on YouTube · all 33 walkthroughs
Same instinct, different layer

Both treat an agent as a pane you can see. They differ in where the pane lives.

cmux calls itself "the terminal built for multitasking, organization, and programmability." It's a terminal emulator, and a good one. Cordane isn't one — its terminal is a browser component — and that trade is the whole comparison.

cmux · a native terminal

Ghostty's engine, agent-aware panes.

  • A free, GPL-licensed macOS app built on libghostty: GPU rendering, vertical tabs, splits, and a sidebar that shows each pane's git branch, working directory and ports.
  • When an agent spawns subagents they become native panes; notification rings, unread badges and desktop notifications tell you which one needs you. A browser can be split next to the terminal.
  • Other machines over SSH, attaching to remote tmux; session restore brings back windows, panes, directories and scrollback; a CLI and socket API for scripting.
Cordane · a hub with terminals in it

The pane runs on the worker.

  • A worker on each machine owns the shells and agents and dials out to a hub you self-host — no SSH into the box, no inbound port, no VPN; the terminal is a browser tab, with a phone layout.
  • Agent panes report working / blocked / idle / done — on the pane, on the ticket card, and on one Agents page across every machine — with your attention needed first.
  • A space is a saved layout of terminals and directories; ports become links; a teammate can be invited into the same live shell by name; a ticket can cut a worktree and start the agent for you.
  • Free forever to self-host on the Community tier. Not GPL: the deploy config is MIT; the hub and worker are proprietary, and a keyless Community hub makes no license calls.
How it works

Join a machine, open a space, come back to it from anywhere.

No SSH config, no tmux on the far end, nothing to attach to. The worker is already dialed out; the terminals, the layout and the agent's state all ride that one connection.

01

Join a worker

One command on the laptop, the VPS or the box under the desk. It connects outward to your hub, so a machine behind NAT or an office firewall joins the same as one in a datacenter — no port 22 reachable from anywhere.

02

Open a space

A space is a layout — shells, an editor, a dev server — with a working directory per pane, saved as a template so the next one opens the same. Start an agent in any pane, or let a ticket cut a worktree and start it for you.

03

Come back from anywhere

Close the tab, switch machines, open it on a phone: the same panes, the same scrollback, the agent still going. Each pane shows whether its agent is working or waiting on you; the ports menu turns a dev server into a link you can send.

Two kinds of persistence, stated plainly. cmux's session restore rebuilds windows, panes, directories and scrollback on your Mac; the processes are yours to restart. Cordane's sessions never left the worker, so they survive your disconnecting and the hub restarting — but a worker reboot ends them too, and the space comes back with its layout, not its live processes.

Honest coverage

Which cmux jobs Cordane covers — and which it doesn't.

cmux's site lists what it is for. Here is the same list with Cordane's answer next to each line, including the ones where the answer is no — and there are several, because a hub is not a terminal emulator.

The job Cordane
Knowing which pane is an agent, and which one needs you right now Covered — working / blocked / idle / done on the pane, the card and one Agents page, "waiting on you" first.
A layout of terminals that comes back the way you left it Covered — spaces and templates: panes, directories and scrollback, plus the processes, which never stopped.
Terminals on a remote machine Covered — differently: the worker dials out, so there is no SSH access to set up and no tmux on the far end to attach to.
Seeing which ports each pane has open, and getting at them Covered — the ports menu, and each one becomes a link: local, hub, team-only or public.
The same terminal from a phone, or with a teammate typing in it Covered — a real phone layout, and shared spaces by name. cmux is one Mac, one person.
Subagents becoming panes of their own automatically Partly — a ticket lays out its own panes and Cordane starts the agent in one; an agent spawning children doesn't grow the layout.
GPU-accelerated native rendering, Ghostty-class latency Not covered — Cordane's terminal is xterm.js in a browser tab, over a network. It's fine; it isn't a native emulator.
A browser split inside the terminal, with a scriptable API Not covered — previews open as ordinary tabs on their own subdomain; there is no embedded browser pane.
A CLI and socket API for driving panes from scripts Not covered — the hub has an HTTP API and the worker a CLI, but panes aren't scriptable from your shell the way cmux's are.
Free and open source under the GPL Not covered — free forever on the Community tier, deploy config MIT; the hub and worker images are proprietary.
Beyond the emulator

What a hub adds to a terminal.

A terminal emulator, however good, is on one machine and knows about one person. Three things follow from the pane living on a worker that a hub knows about.

No SSH to the box

The worker connects outward once. A laptop on hotel Wi-Fi, a desktop behind CGNAT, a box in an office that won't open a port — they all join the same way, and nothing on them listens.

A board in front of the panes

A ticket cuts a git worktree on a branch, runs your setup hook, starts the agent and shows its state on the card. Schedule it, or let the autonomous column pick it up while you're asleep.

More than one person

Invite a teammate into a live space by name; both of you type in the same shell. Turn a dev server into a link for someone who has nothing installed. Teams and projects are on the free tier.

FAQ

Before you pick one — or both.

Is Cordane a terminal emulator?
No. cmux is one — a native macOS app on Ghostty's rendering engine — and if what you want is the best possible terminal on your Mac, that is the right category and Cordane isn't in it. Cordane's terminal is xterm.js in a browser tab, talking to a shell on a worker over one outbound connection. What it buys you is that the shell is on any machine, persists there, and can be opened from a phone or shared with a teammate.
Do my sessions survive?
Your disconnecting, closing the tab, and the hub restarting change nothing — the worker owns the processes. A reboot of the worker machine ends them: the space comes back with its layout and directories, the live processes don't. cmux's session restore rebuilds the layout and scrollback on your Mac after a restart in the same spirit; the processes are yours to start again in both cases.
Do I need SSH access to my machines?
No. A worker dials out to the hub and nothing ever connects to it. cmux reaches remote machines the classic way — your SSH access, optionally a tmux session on the far end — which is fine when you have it and a wall when you don't.
Which agents show state?
Panes running Claude Code, Codex, opencode or pi show up on the Agents page whether Cordane started them or you typed the command. Claude Code reports working / blocked / idle / done through a hook Cordane installs on the worker with one click; other agents are read off the screen, strictly — an unrecognised prompt reads as idle rather than a guessed "waiting on you".
Is Cordane open source?
Not the way cmux is. cmux is GPL. Cordane's deployment configuration and docs are MIT; the hub and worker images are proprietary software that is free forever to self-host on the Community tier — one worker, one project, two users, three concurrent agent runs, every feature, no license key. A keyless hub makes no license calls; its only call to us is an update check that sends just the release channel name and turns off with CORDANE_UPDATE_CHECK=off. If GPL source is a requirement for you, that's a real difference and this page won't talk you out of it.
Can I use both?
Yes, and it's a natural split: cmux for the terminal on your Mac, Cordane for the machines that stay on and the team. cmux's built-in browser could in principle show a Cordane space next to a local shell; we haven't tried it and won't claim it works until we have.
Get started

Put the pane on the machine, not on the Mac.

Self-hosting is free and available now — start with the quickstart, no email required. Want us to run the hub? Managed cloud starts with a 14-day free trial from the pricing page; your workers stay on your machines.

Community tier: free forever, no license key, no account with us.