TL;DR

Paseo (getpaseo/paseo) is a free, open-source app for running the coding agents you already use (Claude Code, Codex, OpenCode, Pi and 30+ more via the Agent Client Protocol) from one interface. A daemon on your machine launches the agents; desktop, iOS, Android, web and CLI clients connect to it. Each agent can get its own git worktree, and you review diffs, open PRs and test in a built-in browser.

Facts as of November 11, 2026:

  • 23,782 GitHub stars, 2,917 forks. It is on this week’s GitHub Trending list for TypeScript.
  • License: Apache-2.0 for Paseo’s own code. GitHub shows “Other” because the LICENSE file opens with a note that third-party components keep their own licenses.
  • Latest stable release: v0.15.4 (November 10, 2026). A v0.16.0-beta.1 shipped the same day. Five stable releases came out between November 3 and November 10.
  • 946 open issues and 1,020 open pull requests. Repository created October 13, 2025.
  • Builds for macOS, Windows, Linux (.deb, .rpm, AppImage), Android, iOS, Docker and npm (@getpaseo/cli).

Not run by us: our hands-on lab (a throwaway GitHub Actions container) could not start today because the job was blocked by a billing limit on the account. Everything below comes from the repository, the official docs, the release notes and public discussion. We did not install Paseo or run an agent through it.

Our verdict: the most complete open-source control room for coding agents we have read about this year. The daemon-and-clients design is right: code stays on your machine, the phone is a full client, and the CLI makes it scriptable. The catches: one maintainer, a very fast release pace with a large backlog, and plugins that run with your full permissions. Pin a version if you depend on it.

What problem it solves

Run three coding agents at once and the terminal becomes the bottleneck: each needs its own checkout, you hunt through tabs for the one awaiting approval, and none of it is visible once you leave the desk.

The maintainer, Mohamed Boudra, wrote on Hacker News that Paseo began in September 2025 as a push-to-talk voice interface for Claude Code, used on walks, and grew from there into diffs, parallel agents and multiple machines. (Voice mode is still in it.)

The result has three layers:

  1. The daemon starts and supervises agent processes, owns worktrees, terminals and the transcript history, and exposes a WebSocket API and an MCP server.
  2. The clients (Electron desktop app, Expo app for iOS, Android and web, and the CLI) connect to one or many daemons.
  3. The providers are the agent CLIs themselves. Paseo does not call model APIs. In the maintainer’s words on Reddit, it “does not call inference APIs directly or extract your OAuth tokens. It wraps your first-party agent CLIs and runs them exactly as you would in your terminal.”

So you pay Anthropic or OpenAI as before, and your subscription is not routed through a third party.

What you get

From the README and docs:

  • Parallel agents in worktrees. Each task gets a workspace. If you choose worktree isolation, Paseo creates a separate directory on its own branch under ~/.paseo/worktrees/, runs your setup hook, and removes it when you archive the last workspace that uses it.
  • Agents that start other agents. An agent inside Paseo can create worktrees, launch agents on other providers and message them. A Claude agent can hand the implementation to Codex and wait for the result.
  • A full development window: chat, terminals, diffs, an editor and a browser in split panes, plus commit, push, PR, checks and merge.
  • Per-worktree dev server URLs. Two agents running dev servers at once get hostnames such as web--fix-auth--my-app.localhost and web--add-search--my-app.localhost instead of fighting over port 3000.
  • Scheduled runs. paseo schedule create --cron "0 9 * * 1" "audit the codebase" runs an agent on a timer.
  • Plugins that run on the daemon and add screens, slash commands, MCP servers or new agent providers, shown on every client.
  • Hub (optional) starts agents from GitHub, Slack or Discord events, with triggers stored as YAML in the repo. Self-hostable; the hosted tier is free with no card.
  • No telemetry, no forced login. The README states this outright.

Install and first commands

The recommended path is the desktop app from paseo.sh/download or the GitHub releases page. Opening it starts the daemon. You need at least one agent CLI installed and signed in first: Paseo will not install Claude Code or Codex for you, although the in-app catalog offers one-click installs for the ACP agents.

On a server, a VM or a homelab box without a desktop:

npm install -g @getpaseo/cli
paseo

The first run asks whether to enable the relay for phone pairing. Decline and the daemon stays on 127.0.0.1:6767, reachable over a direct connection, Tailscale or another VPN.

There is also a Docker image (ghcr.io/getpaseo/paseo) that bundles the daemon and a self-hosted web UI; you extend it with the agent CLIs you use, and set PASEO_PASSWORD before exposing its port.

The CLI is the underrated part

Most agent GUIs are GUIs. Paseo’s CLI covers what the app does, and it is built for scripts:

paseo run --provider claude/opus-4.6 "implement user authentication"
paseo run --provider codex/gpt-5.5 --worktree feature-x "implement feature X"

paseo ls                            # list running agents
paseo attach abc123                 # stream live output
paseo send abc123 "also add tests"  # follow-up task
paseo logs abc123                   # view the timeline
paseo usage                         # account quotas and reset times

--output-schema makes paseo run return only JSON matching a schema, and --no-wait returns while the agent keeps running. The docs’ implement-and-verify loop:

while true; do
  paseo run --provider codex "make the tests pass" >/dev/null
  verdict=$(paseo run --provider claude \
    --output-schema '{"type":"object","properties":{"criteria_met":{"type":"boolean"}},"required":["criteria_met"],"additionalProperties":false}' \
    "ensure tests all pass")
  if echo "$verdict" | jq -e '.criteria_met == true' >/dev/null; then
    echo "criteria met"; break
  fi
done

One model writes, another checks, and the loop ends on a typed answer. When an agent inside Paseo calls paseo run, Paseo reads PASEO_AGENT_ID and files the new agent as its subagent.

--host points any command at another daemon: a host:port, a Unix socket, or a pairing link, in which case the CLI goes through the encrypted relay. You can drive the workstation under your desk from a laptop on a train without opening a port.

A TypeScript SDK, @getpaseo/client, exposes the same API for issue bots and dashboards: client.agents.create({ config: { provider: "codex/gpt-5.5" }, cwd, prompt }), then await agent.waitForFinish().

Worktrees and paseo.json

Put a paseo.json in the repo root and Paseo uses it for every new worktree:

{
  "worktree": {
    "setup": "npm ci",
    "teardown": "rm -rf .cache"
  },
  "scripts": {
    "test": { "command": "npm test" },
    "web": { "command": "npm run dev", "type": "service", "port": 3000 }
  }
}

Paseo reads it from the committed base branch. A .worktreeinclude file (added in v0.15.0) copies selected gitignored files such as .env into each new worktree before setup runs, which removes the most common reason a fresh worktree fails to boot. The docs also warn you to branch from origin/main, not main: Paseo fetches remote refs in the background, and a stale local main gives you a worktree that starts from old history.

If you want to understand the worktree pattern without any GUI, our guide to running parallel coding agents in git worktrees and the Worktrunk review cover the plumbing Paseo automates.

Security model

The security page is clearer than most in this category:

  • Default bind is localhost (127.0.0.1:6767); a Unix socket option removes network access entirely for CLI-only use.
  • The relay is off on new installs and Paseo asks before enabling it. When on, the daemon connects outbound to an open-source Elixir relay (getpaseo/paseo-relay) and traffic is end-to-end encrypted (Curve25519 + XSalsa20-Poly1305, NaCl box). The project says the relay sees only metadata such as IPs, timing and sizes. The pairing QR code is the trust anchor: treat it like a password.
  • Password auth is optional (bcrypt-hashed); set it before binding to anything but localhost. A Host-header allowlist guards against DNS rebinding.

Two things deserve more attention than the docs give them:

  1. Plugins run unsandboxed. The CLI docs say it plainly: plugin server code “runs unsandboxed with the daemon user’s access on the daemon host.” Installing a plugin is the same decision as running a stranger’s npm package with your SSH keys in reach. Updates are part of that trust.
  2. Some providers run in full-access mode. Antigravity cannot ask permission when another app drives it, so Paseo starts it with --dangerously-skip-permissions. Paseo shows a warning at the start of every such session, which is the right call, but it means shell commands run without a prompt.

Community reaction

Early Show HN posts in March 2026 drew about five points each; a June 2 Show HN submitted by a fan reached 92 points.

The reactions split into three camps:

  • People who use it daily. One commenter said it “unglued me from my computer”, keeping an agent working “on long runs, bike rides, in transit.” Another switched to it entirely from Conductor.
  • People who object to the idea. The sharpest pushback called shipping code from your phone “not a flex.” Boudra replied that the point is stepping away from the desk without losing the work.
  • People asking about the business. One commenter asked what the plan is for a free, local-only tool that matches what Devin Desktop and Cursor do. The README answers part of it: Paseo is “built by one person and funded by the people who use it” through GitHub Sponsors and company sponsorships, and the Hub has a hosted tier.

Several people named OpenChamber as the closest open-source alternative. A later HN thread summed up the difference: OpenChamber suits you if OpenCode is your only harness, Paseo if you mix harnesses.

Paseo vs the alternatives

ToolLicenseFormAgentsPhoneNotes
PaseoApache-2.0Daemon + desktop, iOS, Android, web, CLI, SDK6 native + 30+ via ACP + customNative appScriptable CLI, plugins, Hub triggers
OrcaMITDesktop IDE + mobile companion35 named CLI agentsCompanion appDesign Mode, SSH worktrees, Linear/GitHub
T3 CodeMITDesktop, web, mobile, t3 serverClaude Code, Codex, Cursor, OpenCode and moreYesClosest in shape to Paseo
ConductorProprietarymacOS app + managed cloudClaude Code, Codex, Cursor, OpenCodePlanned (Pro)Cloud workspaces in the Pro plan
HerdrOpen sourceTerminal multiplexerAny CLINoFor people who live in tmux

Paseo’s own Conductor comparison puts Conductor’s Pro plan at $50 a month; treat a vendor’s comparison page accordingly. For a wider list, see our alternatives to Conductor for parallel coding agents.

The real choice is Paseo or Orca. Orca is an IDE first. Paseo is a daemon first: the better pick if your agents live on a headless box (Mac mini, VPS, container) or you want to script orchestration rather than click it.

Honest limitations

  • One maintainer. The project calls itself “built by one person.” There are many outside contributors in the release notes, but the direction and the review queue rest on one developer. That is a risk for anything your team depends on.
  • Release pace and backlog. v0.14.0 shipped October 29; v0.15.0 to v0.15.4 shipped November 3 to 10, with a v0.16 beta on top. 946 open issues and 1,020 open PRs as of today. Expect regressions. The v0.15.0 notes alone fix duplicated Claude subagent rows, agents shown as finished right after creation, and sidebar titles that stopped updating.
  • Still 0.x. The CLI has already renamed flags (run --background became --no-wait; start --foreground became daemon run). Scripts written against it will need upkeep.
  • Provider parity varies. Antigravity runs without permission prompts, has no Paseo MCP tools or steering, and Paseo’s transcript starts fresh after a daemon restart. Each provider has its own list of gaps; read its docs page before relying on it.
  • No numbers to judge it by. The project publishes no resource-usage or latency figures, and nobody asked on HN got one. We could not measure them today either.

FAQ

What is Paseo?

Paseo is a free, Apache-2.0 open-source app for running coding agents such as Claude Code, Codex, OpenCode and Pi from one interface. A daemon on your machine runs the agents; desktop, iOS, Android, web and CLI clients connect to it.

Is Paseo free?

Yes. App, daemon, CLI and mobile apps are free; you pay only for the agents you run. The project is funded by sponsorships.

Does Paseo send my code to its servers?

According to the docs, no. Agents run on your machine and your code stays there. If you turn on the optional relay for phone pairing, traffic passes through Paseo’s relay but is end-to-end encrypted; the relay sees connection metadata, not content. Without the relay, you connect directly or over a VPN such as Tailscale.

Which coding agents does Paseo support?

Natively: Claude Code, Codex, OpenCode, Pi, Antigravity and Muse Code. Through the in-app ACP catalog: 30+ more, including GitHub Copilot, Cursor, Gemini CLI, Amp, Cline, goose and Qwen Code. Any other CLI agent can be added as a custom provider.

How is Paseo different from Orca or Conductor?

Orca is an MIT desktop IDE with a mobile companion; Conductor is a proprietary macOS app with paid cloud workspaces. Paseo is built around a daemon you can run anywhere (laptop, VPS, Docker), with a native mobile app and a scriptable CLI.

Can I run Paseo on a headless server?

Yes: npm install -g @getpaseo/cli then paseo, or the ghcr.io/getpaseo/paseo Docker image. Sign in to your agent CLIs on that host and connect from any client.

Verdict

Paseo gets the architecture right: agents run where your code and credentials already are, and every screen you own becomes a client. --output-schema turns multi-agent handoffs into ordinary shell scripts. Use it if you run several agents a day, keep a home server or Mac mini for agent work, or want to check on long runs from your phone. Hold off if you need a vendor with a support contract, or if a breaking release on a Tuesday would hurt. Leave the relay off unless you need it, set a password before binding to a network, and treat every plugin as code you are choosing to run as yourself.

Sources