paseo 是什么?

Paseo 是一个 AGPL-3.0 开源的 AI 编程 Agent 统一控制台,本地 daemon 管理 Claude Code、Codex、OpenCode 等官方代理,让开发者用桌面(Electron)、iOS / Android、Web、CLI 任一终端并行启动多个本地 Agent、在手机上看进度、BYOK 不付任何转售费用。

⭐ 5,671 Stars 🍴 506 Forks TypeScript NOASSERTION 作者: getpaseo
来源:README 首段、docs/PRODUCT.md '核心理念' 节、docs/ARCHITECTURE.md 查看 GitHub 仓库 → 📘 使用教程 →

为什么值得关注

2025-2026 年 Claude Code、OpenAI Codex(CLI 形态)、OpenCode 这类「驻机器跑」的官方编码 Agent 各自都把 IDE 内交互推到了命令行/SDK 层,但它们彼此独立、无法互看进度、也没有统一的远程查看入口。Paseo 把这一层做成了 daemon + 多端客户端的统一编排层:客户端通过 WebSocket 连本地 daemon,daemon 把 agent 子进程的 timeline 实时广播给所有连入的端。卖点同时命中三个真实痛点——多 Agent 并行(一台机器跑多个 worktree)、跨设备(在手机上看 Agent 跑测试)、多 Provider 自由切换(同 workspace 内 Opus 规划 + Codex 实施 + Sonnet 复核)。配合主仓库带的 paseo-handoff / paseo-loop / paseo-orchestrate 等 skill,把'多 Agent 协同'从手工调度变成可被 Agent 自身调用的工作流,是当前 'agent-of-agents' 工程化方向上比较少见的完整实现。

来源:README、docs/PRODUCT.md '战略下注'、skills/ 目录下 5 个 SKILL.md

核心功能

本地 daemon + 多端客户端的同协议接入

packages/server 是一个 Node.js daemon,默认监听 127.0.0.1:6767,所有客户端(Expo 移动端 / Electron 桌面 / Commander CLI / Web)都通过同一套 WebSocket 协议连入。握手用 WSHelloMessage / WSWelcomeMessage 交换 clientId、daemonVersion、capabilities;之后 agent_update / agent_stream / agent_permission_request 等消息类型驱动 timeline 实时同步到所有订阅客户端。终端 I/O 与 agent 流共用同一连接,靠 BinaryMuxFrame 做二进制多路复用(channel 0 控制、channel 1 终端)。

来源:docs/ARCHITECTURE.md 'WebSocket protocol' 节、packages/server/src/server/websocket-server.ts
多 Provider 抽象(ACP + Direct 双轨)

对接每个 agent 后端时实现统一的 AgentClient 接口。当前 Direct 直写实现:Claude(Anthropic Agent SDK)、Codex(CodexAppServer)、OpenCode(CLI);ACP(Agent Client Protocol)模式:claude-acp、copilot。docs/PROVIDERS.md 明确推荐新接入走 ACP——只需继承 ACPAgentClient 基类、声明 capabilities/modes/defaultCommand,进程拉起、stdio 流、session 持久化、权限请求、模型发现都由基类托管;想自己掌握全流程才走 Direct。

来源:docs/PROVIDERS.md '两种集成模式' 节、packages/server/src/server/agent/providers/
Workspace + git worktree 隔离的并行 Agent

项目自动从文件系统识别(按 git remote 打标签),每个项目对应一个 workspace;用户可在同一项目下创建多个 workspace,背后是 git worktree 隔离副本,让多个 Agent 同时改不同分支不冲突。一个 workspace 是 'flexible canvas':可以并排开多个 agent panel、并存 terminal、混用不同 provider。CLI 直接体现这种粒度:paseo run --provider claude/opus-4.6 --worktree feature-x "..."。

来源:docs/PRODUCT.md 'Projects and workspaces' 节、README CLI 示例
MCP 服务端 + agent 间互调

daemon 内置一个 MCP(Model Context Protocol)server(packages/server/src/server/agent/mcp-server.ts),把'创建子 agent、申请权限、设置超时'等动作暴露为 MCP 工具,让一个 agent 可以从对话里直接 spawn 另一个 agent。配合仓库 skills/ 下 5 个 orchestration skill(paseo-chat、paseo-committee、paseo-handoff、paseo-loop、paseo-orchestrate),把多 Agent 协作从外部脚本上升到 Agent 内部工具调用。作者标注 skills 仍处 Unstable 阶段,会与他个人 setup 耦合。

来源:docs/ARCHITECTURE.md 'Daemon Components' 段、skills/paseo-orchestrate/SKILL.md 等
E2E 加密 Relay 远程访问

packages/relay 实现 ECDH 密钥交换 + AES-256-GCM 加密通道,让 daemon 即使藏在防火墙后也能被手机端连上。relay 服务器零知识——只转发密文、看不到内容;公钥通过桌面端展示的 QR 码扫码配对到客户端。relay 部署在 Cloudflare Workers(packages/relay/src/cloudflare-adapter.ts),基础设施成本可控。完整威胁模型在 SECURITY.md。

来源:docs/ARCHITECTURE.md 'packages/relay' 段、packages/relay/src/encrypted-channel.ts
实时语音控制(dictation + voice agent)

packages/server/src/server/dictation 是 STT 离线听写,packages/server/src/server/voice 是 realtime voice agent,packages/server/src/server/speech 维护 Sherpa 模型矩阵(scripts/generate-sherpa-tts-matrix.ts),还有专门的 packages/expo-two-way-audio 自定义 Expo native module。在手机上口述需求、AGENT 边跑边听讲,是其差异化卖点之一。

来源:tree(packages/server/src/server/{dictation,voice,speech}/、packages/expo-two-way-audio/)
Docker 风格 CLI 全功能复刻

packages/cli 用 Commander 构建,命令体系刻意贴 docker:paseo agent ls/run/stop/logs/inspect/wait/send/attach、paseo daemon start/stop/restart/status/pair、paseo permit allow/deny/ls、paseo provider ls/models、paseo worktree ls/archive。CI / 远程机器 / 服务器场景下可以无 GUI 完整使用 Paseo;--host workstation.local:6767 直接连远程 daemon。

来源:docs/ARCHITECTURE.md 'packages/cli' 节、packages/cli/src/commands/

技术架构

整体是 'daemon-centric 单进程 + 多端瘦客户' 的 client-server 架构。packages/server(Node.js daemon)是唯一持有真实 agent 子进程与 timeline 状态的进程,packages/app(Expo 跨端 React Native)/ packages/desktop(Electron 套壳并管理 daemon 子进程)/ packages/cli(Commander)/ packages/relay(Cloudflare Workers 上的零知识中继)/ packages/website(TanStack Router 营销站)都通过同一套 WebSocket 协议接入。Daemon 内部按职责切包:bootstrap 拉起 HTTP+WS+AgentManager+Storage+Relay;websocket-server 处理握手与多路复用;session 维护每客户端订阅;agent/agent-manager 是状态机核心(initializing→idle→running→idle,每 turn 起新 epoch、单 agent 限 200 timeline 项),agent/agent-storage 把状态文件持久化到 \$PASEO_HOME/agents/{cwd-with-dashes}/{agent-id}.json,agent/mcp-server 暴露子 agent 创建工具。Provider 体系处于双轨过渡:ACPAgentClient 基类托管所有 stdio/session/streaming/permissions(推荐新接入走这条),AgentClient 直写接口仍服务于现有 claude/codex/opencode;这是个明显但尚在演进的决策。Monorepo 共 8 个 workspace,1700+ 文件,工具链选择激进且统一:oxfmt+oxlint(Rust 实现的 lint/format)、@typescript/native-preview、Vitest、Playwright e2e、Nix flake、lefthook git hooks、13 个 GitHub Actions workflow(含 desktop-release、android-apk-release、deploy-relay、nix-build 等)。设计判断:daemon 集中状态 + 二进制 mux WS + git worktree 隔离 + MCP 可被 agent 自调用,这套组合很贴'多 agent 编排'本质,没看到明显冗余;唯一可能略超前的是 ACP+Direct 双轨同存——长期看应该收敛到 ACP,目前的代价是新人理解成本翻倍。

来源:tree.txt + package.json workspaces + docs/ARCHITECTURE.md + docs/PROVIDERS.md

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) ws — WebSocket 协议层(前后端一致)ws Anthropic Agent SDK / OpenAI CodexAppServer / OpenCode CLI — 三类官方 agent 后端的进程级集成Anthropic Agen… MCP server 实现 — 暴露 agent-to-agent 工具调用MCP server 实现 Sherpa-onnx + 本地 Whisper — STT/TTS 离线推理(packages/server/src/server/speech)Sherpa-onnx +… Expo + 自研 expo-two-way-audio native module — 移动端实时双向音频Expo + 自研 ex… 本地 daemon + 多端客户端的同协议接入本地 daemon + 多端客… 多 Provider 抽象(ACP + Direct 双轨)多 Provider 抽象(AC… Workspace + git worktree 隔离的并行 AgentWorkspace + git wor… MCP 服务端 + agent 间互调MCP 服务端 + agent… E2E 加密 Relay 远程访问E2E 加密 Relay 远程… 实时语音控制(dictation + voice agent)实时语音控制(dictati… Docker 风格 CLI 全功能复刻Docker 风格 CLI 全功… paseo 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言TypeScript(前后端 + CLI 全栈一致)框架Node.js daemon(自研 ws server)+ Expo / React Native(移动端与共享 UI)+ Electron(桌面壳)+ Commander.js(CLI)+ TanStack Router + Cloudflare Workers(官网)
wsAnthropic Agent SDK / OpenAI CodexAp…MCP server 实现Sherpa-onnx + 本地 WhisperExpo + 自研 expo-two-way-audio native …Playwright(移动端与桌面端 e2e)+ Vitest(单测)oxfmt + oxlint(Rust 工具链)+ @typescrip…
全本地 daemon(默认 127.0.0.1:6767),桌面端 Electron 拉起 daemon 子进程;relay 部署在 Cloudflare Workers;安装路径:桌面端从 paseo.sh 或 GitHub Releases 下载、CLI 走 npm i -g @getpaseo/cli;项目自带 Nix flake(含 nix/module.nix)和 13 个 GitHub Actions workflow(CI、移动端发版、桌面端发版、安卓 APK、relay 部署、nix-build、release 同步)
来源:package.json(含 workspaces、devDependencies)+ docs/ARCHITECTURE.md + tree.txt

快速上手

# 前提:先装好至少一个 agent CLI 并完成各自登录 # - Claude Code: https://docs.anthropic.com/en/docs/claude-code # - Codex: https://github.com/openai/codex # - OpenCode: https://github.com/anomalyco/opencode # 路径 A:桌面应用(推荐) # 从 https://paseo.sh/download 或 GitHub Releases 下载安装包 # 打开后 daemon 自动启动,无需其它配置 # 在设置里扫 QR 码即可从手机连入 # 路径 B:CLI / 无 GUI(适合服务器、远程机器) npm install -g @getpaseo/cli paseo # 启动 daemon,终端打印 QR 码 # 常用 CLI 命令 paseo run --provider claude/opus-4.6 "implement user authentication" paseo run --provider codex/gpt-5.4 --worktree feature-x "implement feature X" paseo ls # 列出所有运行中的 agent paseo attach abc123 # 实时观看某个 agent 输出 paseo send abc123 "also add tests" # 给运行中的 agent 追加任务 paseo --host workstation.local:6767 run "run the full test suite" # 连远程 daemon # 可选:为 Agent 装上'编排其他 Agent'的 skill(仍 Unstable) npx skills add getpaseo/paseo
来源:README 'Getting Started' / 'CLI' / 'Orchestration skills' 三节原文

使用场景

1. 个人开发者一台机器同时跑多个 worktree 的 Agent(一个 Agent 重构 backend、另一个补单测、第三个改文档),在 desktop 应用里用 split pane 并行观察;2. 把笔记本/工作站作为 daemon 主机,出门用手机端通过 relay 接入,看 Agent 跑长时间任务(构建、迁移、批量重构)的进度,必要时口述追加指令;3. 团队/个人多 Provider 混编:同 workspace 里 Opus 规划 + Codex 实施 + Sonnet/Haiku 复核,借助 paseo-handoff / paseo-orchestrate skill 让 Agent 自己调度子 Agent;4. CI / 服务器无 GUI 场景,用 npm i -g @getpaseo/cli + paseo --host 远程接入,把 'agent run + attach + wait' 写进发布脚本。

来源:README、docs/PRODUCT.md 'Inside a workspace' / 'Target user'、skills/paseo-* SKILL.md

优势与局限

优势

  • 架构判断准:把 'agent 编排' 而不是 '又一个 IDE 插件' 当作产品形态,daemon-centric 让多端、远程、并行、跨 provider 自然成立——比把这些功能塞进 IDE 简单得多(docs/PRODUCT.md '战略下注')
  • 工程基础设施罕见的完整:13 个 GitHub Actions workflow 覆盖 server CI、桌面端发版、安卓 APK、relay 部署、nix-build;Nix flake、lefthook、oxfmt+oxlint、Vitest、Playwright、knip 死代码检测,0.1.x 阶段就把现代 TS 监控全栈跑起来
  • 文档密度高且与代码一致:docs/ 下 20 份文档(ARCHITECTURE、DESIGN、PRODUCT、PROVIDERS、TESTING、CODING_STANDARDS、GLOSSARY、RELEASE 等),README 简洁但导引清楚,新接入 provider 有专门的 PROVIDERS.md 走查
  • 隐私与商业模型干净:AGPL-3.0、本地 daemon、零遥测、零强制账号、BYOK 不加成本——不加任何中间费的承诺让用户长期信任,跟主流 SaaS 编程助手形成清晰区隔
  • 扩展点清晰且面向 agent 时代:ACPAgentClient 基类把进程/会话/流/权限托管掉,新接入只写 capabilities + 命令;MCP server 把'创建子 agent'抽到工具调用;这两点合起来给了 'agent-of-agents' 一个可重复的实现模板
  • 迭代速度极快:v0.1.62 → v0.1.63-beta.4 在 4 天内 5 个 release,CHANGELOG.md + release-notes-sync workflow 保持产品与发版透明

局限

  • 处于 0.1.x beta,API/协议仍在演进:WebSocket 消息类型、AgentClient 接口、CLI 参数都没有兼容性承诺;packages/cli 的 classify.test.ts 等命名暗示命令分发逻辑仍在重构(可维护性风险——下游脚本会随版本碎裂)
  • Provider 双轨过渡未完成:现存 Direct 实现(claude/codex/opencode)与推荐的 ACP 模式并存,docs/PROVIDERS.md 明确分两套写法;新人理解曲线翻倍,长期一致性靠后续收敛(可扩展性风险)
  • 持久化基于本地 JSON 文件(\$PASEO_HOME/agents/{cwd}/{id}.json)+ 单 agent 200 timeline 项硬上限:长任务 / 多 agent / 高频事件场景下,timeline 压缩与文件并发写的边界还没明确文档化(可测试性 + 稳定性风险)
  • 依赖三类官方 CLI 自身可用性:Claude Code、Codex、OpenCode 都需要用户先各自登录鉴权,Paseo 不接管 key——这是隐私优势同时也是上手摩擦,任何一家上游协议变化都可能让对应 provider 子集断档(稳定性 / 维护性风险)
  • AGPL-3.0 + 自托管的组合,对企业法务有真实摩擦:商业项目嵌入 Paseo 衍生物受 copyleft 约束,限制了在公司内推行的速度(可扩展性——指生态扩张层面)
  • 重客户端,安装/构建成本不轻:Expo + Electron + 自定义原生音频模块 + Sherpa 模型 + 13 个 workflow,monorepo 1700+ 文件;新贡献者搭起本地 'npm run dev' 全套花的时间不短(可维护性风险)
  • Skills(仓库 skills/ 目录)作者自承 Unstable、与个人 setup 耦合:'paseo-orchestrate' 等编排能力仍属实验,复制粘贴落到自己环境上经常需要改 references/* 模板(可测试性风险——很难写自动化回归)
  • 性能数据缺位:README 与 docs 没有给出 daemon 在并发 N 个 agent / N 个客户端订阅下的吞吐、延迟、CPU/内存基线,二进制 mux 是优化点但没披露收益(性能风险无法在材料范围内评估)
来源:综合 docs/ARCHITECTURE.md + docs/PROVIDERS.md + docs/PRODUCT.md + tree.txt + package.json + README

最新版本

v0.1.63-beta.4(2026-04-27)。最近 5 个 release 全部集中在 4 天内(v0.1.62 2026-04-23 → v0.1.63-beta.1 04-24 → beta.2/3 04-26 → beta.4 04-27),符合 docs/PRODUCT.md 中提到的 'Daily releases' 节奏;release notes 同步通过 .github/workflows/release-notes-sync.yml 自动维护到仓库 CHANGELOG.md。

来源:GitHub Releases API 返回的 5 个 tag 与时间戳

总结评价

如果你正同时用 Claude Code、Codex 中两个以上 agent,并且想把'手机看进度、桌面并行、CLI 脚本化、远程接入'这套体验做成生产力闭环,Paseo 是当前 GitHub 上少数把这件事一次做完整的开源方案,AGPL+本地 daemon+BYOK 的组合也让长期信任成本很低。务实建议:1) 优先用桌面应用上手——它会自动管 daemon 子进程,比 CLI 模式少一半坑;2) 0.1.x beta 不要锁主分支跑生产,固定到某个稳定 tag(当前 v0.1.62 是非 beta),等接近 0.2.0 再尝试自动化脚本;3) 想自接入 provider 直接走 ACP,不要再写 Direct 实现——双轨明显在收敛;4) 如果你是企业用户、对 AGPL 敏感或需要多人多端共享 daemon、版本化 changelog 与 SLA,目前不合适——产品形态明显面向个人开发者与小团队,企业级多租户、审计、SSO 都还没有;5) skills/orchestrate 目前只当玩具用,作者自己也说 Unstable,落到自己环境前要改 references/ 模板。

来源:综合分析:docs 全部 + tree + release 节奏
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-04-28 01:18. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件