// compare
mmux vs Paseo
mmux is a terminal multiplexer for coding agents: one Rust binary that shows each agent's own TUI in a persistent tmux session you reach from any terminal, including over SSH. Paseo is an open source agentic development environment: a daemon that runs your agent CLIs, with desktop, iOS, Android, web and CLI clients connecting to it. The real difference is where you work: inside a terminal, or in apps on every device.
Last checked against Paseo 0.11.2 on .
// tl;dr
Pick Paseo if you want a graphical workspace (chat timeline, editor, diffs, pull requests and a built-in browser), native phone apps, Windows support, voice input, plugins, or agents started from GitHub, Slack and Discord through Paseo Hub.
Pick mmux if you live in the terminal and over SSH, want each agent's real CLI in a pane rather than a reimplemented chat view, and want agents, dev processes and a git panel in one keyboard-driven TUI with nothing to run but a single binary and tmux.
Both are free and open source, both give each agent its own git worktree, and both can be scripted so agents start and talk to other agents.
At a glance
| Capability | mmux | Paseo |
|---|---|---|
| How you use it | TUI in any terminal | Desktop, mobile and web apps plus a CLI, all clients of one daemon |
| Agent shown as its own CLI TUI | yes: Every agent runs in a terminal pane | partly: Chat view via adapters; you can also run the CLI in its terminal |
| Agents keep running after you close the client | yes: tmux session survives; quit restores and resumes agents | yes: The daemon owns running agents |
| Native phone apps | partly: No app; single-column layout for SSH from a phone | yes: iOS and Android, with an optional E2E-encrypted relay |
| Desktop platforms | partly: macOS (Apple Silicon) and Linux binaries | yes: macOS, Windows and Linux builds |
| Which agents | yes: Any command you configure | yes: Built-in adapters for major CLIs, plus ACP agents |
| Git worktree per task | yes: One key; copies .env files, merges back with M |
yes: Setup and teardown hooks in paseo.json |
| Dev servers and scripts | yes: Processes in the sidebar; one checkout runs a process at a time | yes: Services get their own port and a reverse proxy |
| Git and review UI | partly: Git panel: stage, commit, push, diff preview | yes: Diffs, pull requests and file editor |
| Built-in browser, voice, plugins | no: None of these | yes: Browser on desktop, local voice, plugin registry |
| Scripting and agent-to-agent | yes: mmux CLI: ask, send, wait, worktree, commit |
yes: CLI, TypeScript SDK, MCP tools and skills |
| What you install | One Rust binary plus tmux | Electron desktop app, or the npm CLI, or a Docker image |
| License and price | GPLv3, free | Apache-2.0, free; hosted Hub has a paid Pro plan |
Paseo facts from its README, public docs, changelog and the v0.11.2 release assets on GitHub. mmux facts from its docs.
What is Paseo?
Paseo describes itself as "an open source agentic development environment for desktop, mobile, web, and CLI" [1]. It does not ship its own model: it runs the agent CLIs you already have installed and signed in. Claude Code, Codex, OpenCode, Pi, Antigravity and Muse Code have bundled adapters, and any agent that speaks the Agent Client Protocol works through a generic adapter, with a catalog of more than 25 one-click installs including Cursor, Gemini and GitHub Copilot [3]. Claude Code runs through the official claude CLI using the Claude Agent SDK and counts against your normal Claude plan [4].
The core is a daemon that owns the agents and workspaces. The Electron desktop app for macOS, Windows and Linux starts it automatically; on a server you install it with npm install -g @getpaseo/cli or run the Docker image [1][2]. The native iOS and Android apps, the web app and the CLI connect to the same daemon over SSH, Tailscale or an optional end-to-end encrypted relay that is off until you enable it [6][7]. Each task can get its own git worktree with setup and teardown hooks and supervised services [5].
On top of that come a file editor, diff and pull request review, a built-in browser on desktop, local voice input, plugins, a TypeScript SDK and MCP tools [1][2]. Paseo Hub, a separate service, starts agents on your daemons from GitHub, Slack and Discord events; you can self-host it or use the managed one [8][9]. It has been licensed Apache-2.0 since version 0.7.0 [10][11].
Where Paseo is better
- Phones and other devices. Paseo has native iOS and Android apps that show agents, files, terminals and diffs, and a web app. mmux can only be reached from a phone through an SSH client.
- A graphical workspace. Conversation, editor, terminals, diffs, pull requests and a browser sit in split panes in one window. mmux has a git panel and opens files in your
$EDITOR, but no editor, PR view or browser of its own. - Windows. Paseo publishes Windows installers for x64 and arm64. mmux ships prebuilt binaries for macOS on Apple Silicon and for Linux only.
- Remote access without network setup. The relay lets your phone reach a daemon behind NAT with no open ports, and the relay cannot read the traffic. With mmux you bring your own SSH access.
- Extension and triggers. Plugins add screens, panels, slash commands and providers on every client; a TypeScript SDK and MCP tools cover automation; Hub starts agents from GitHub, Slack and Discord. mmux has none of these.
- Voice. Paseo transcribes speech on-device and sends it to the agent as text. mmux has no voice input.
Where mmux is better
- The agent's own interface. Every agent, Claude Code or anything else, runs as itself in a terminal pane. You see its prompts, menus and status exactly as the CLI draws them, and any command works as an agent without an adapter.
- Terminal and SSH first. mmux is a TUI, so it runs wherever a terminal does: a local tab, an SSH session, a tmux client. Closing the terminal or dropping SSH only detaches. Run
mmuxagain, ormmux attachfrom anywhere, to rejoin. - Notifications that cross SSH. When an agent rings the bell or emits a notification escape, mmux writes the notification as a terminal escape sequence, so the popup appears on the machine your terminal runs on, not on the remote host.
- Small footprint. A single Rust binary plus tmux, with no daemon port, no account and no Electron app. A script install keeps itself up to date and restores your session after the restart.
- One sidebar for agents, shells and dev processes. Processes from
mmux.yamlstart, stop and stream next to the agents, and only one checkout of a repository runs a given process at a time, so worktrees reuse the same ports. A workspace manifest puts several repositories in one sidebar. - Keyboard-driven git. The git panel stages, commits and pushes with keys, can write the commit message with an installed Claude or Codex CLI, and can schedule a commit for later.
When to use which
Choose Paseo when
- You want to start, follow and answer agents from a phone app.
- You prefer a GUI with an editor, diff review and a browser over a terminal.
- You work on Windows.
- Your team wants agents started from GitHub issues, Slack or Discord.
- You want to build on agents with a TypeScript SDK or plugins.
Choose mmux when
- Your day happens in a terminal, often over SSH on a remote machine.
- You want to see and type into each agent's real CLI.
- You want dev servers, shells and agents for several repos in one keyboard-driven view.
- You want nothing to install beyond one binary and tmux.
Moving from Paseo to mmux
- Install mmux on the machine where your agents run (the Paseo daemon host), and make sure your agent CLIs are signed in there, as they already are for Paseo.
- List the agents you use in
~/.mmux/config.yaml. Any command works, not only the ones Paseo has adapters for. - Move the scripts and services from
paseo.jsonintoprocessesin the project'smmux.yaml, and the worktreesetupline intoworktrees.setup. mmux copies.envfiles into new worktrees by default. - Run
mmuxin the project. Presswfor a worktree, and usemmux askormmux worktree newwhere agents used Paseo's orchestration tools.
# ~/.mmux/config.yaml
agents:
- name: Claude
cmd: claude
- name: Codex
cmd: codex
# ./mmux.yaml
name: my-app
processes:
- name: Dev server
cmd: npm
args: ["run", "dev"]
worktrees:
setup: npm ci
mmux does not import Paseo's chat history. For some agents, such as OpenCode and Pi, Paseo can copy a resume command so you can continue a session in a terminal [11].
FAQ
Is Paseo free?
Yes. Paseo is open source under Apache-2.0 and needs no account. The optional hosted Paseo Hub, which starts agents from GitHub, Slack and Discord events, has a Free plan (one seat, 50 agent runs a month) and a Pro plan at $15 per seat per month. A self-hosted Hub has no plans or billing. mmux is free and GPLv3.
Can I use mmux from my phone like Paseo?
Only through an SSH app. mmux has no mobile, web or desktop app. When the terminal is narrower than 60 columns, as in an SSH client on a phone, mmux switches to a single-column layout with a sidebar drawer and a git panel you open from the footer. Paseo ships native iOS and Android apps that connect to its daemon, which is the better fit if your phone is a main way you check on agents.
Does Paseo show the real Claude Code interface?
Paseo runs the official claude CLI through the Claude Agent SDK and shows the conversation in its own interface. Its docs also say you can open a terminal in a Paseo workspace and run claude there as usual. mmux always runs the agent CLI in a terminal pane, so you see and type into the tool's own TUI.
Do agents keep running when I close the window?
In both. Paseo's daemon owns the running agents, and clients connect to it and disconnect from it. mmux runs inside an invisible per-directory tmux session that survives closing the terminal or dropping SSH. After a full quit or a restart to update, mmux reopens the agents and terminals you had, and Claude, Codex, Pi and Grok agents resume their conversation.
Which one runs on Windows?
Paseo publishes Windows installers for x64 and arm64 next to its macOS and Linux builds. mmux ships prebuilt binaries for macOS on Apple Silicon and for Linux on arm64 and x86_64, and needs tmux on the PATH. There is no native Windows build of mmux.
Sources
- Paseo README (getpaseo/paseo)
- Paseo documentation: Why Paseo?
- Paseo documentation: Providers
- Paseo documentation: Claude Code
- Paseo documentation: Git worktrees
- Paseo documentation: Connectivity
- Paseo documentation: Security
- Paseo documentation: Hub
- Paseo Hub plans and pricing
- Paseo LICENSE (Apache-2.0)
- Paseo changelog
- Paseo v0.11.2 release (platform builds)
Other comparisons
- mmux vs Agent DeckA Go session manager on tmux with agent status, forks, MCP and skill management and a web UI; mmux works per project, with dev processes and a git panel.
- mmux vs Codex appOpenAI's desktop app for parallel Codex threads in git worktrees; mmux runs any CLI agent in a terminal, locally or over SSH.
- mmux vs ConductorA Mac app by Melty Labs that runs Claude Code, Codex and other agents in parallel worktrees, built around pull request review.
- mmux vs OrcaA desktop app for agents in parallel worktrees, with an editor, a browser and SSH worktrees built in; mmux does the same job inside a terminal.
- mmux vs SupersetAn Electron app for parallel CLI agents in worktrees, with a CLI, SDK and hosted MCP server; mmux is a single-binary TUI on tmux.
Try mmux
One binary for macOS, Linux and WSL. Run mmux in any project directory.
curl -fsSL https://mmux.org/install.sh | sh