你不必因生命周期原因离开 Pi 编码代理:2026 年 9 月 21 日,GitHub API 报告 earendil-works/pi 采用 MIT 许可证且未归档,版本 v0.87.0 于当天发布。人们真正迁移的原因是设计选择。在 2026 年 9 月 22 日文档更新之前,Pi 自己的文档称其“有意不包含内置 MCP、子代理、权限弹窗、计划模式、待办事项或后台 bash”,并建议你“将这些工作流构建或安装为扩展或软件包,或使用容器和 tmux 等外部工具”。更新删除了这句话;2026 年 9 月 29 日发布的 v0.99.0 将六项中的一项纳入其中——MCP 现在是默认加载的内置扩展。在 v0.99.2 中,其余五项仍未内置。因此,有用的问题不是哪个代理更好,而是你希望这五项中的哪些项内置,以及从 ~/.pi/agent 迁移会让你承担什么代价。
需要先消除一个歧义,因为搜索结果至少混淆了五种不同事物。本页面介绍的是位于 pi.dev 的终端编码代理,仓库为 earendil-works/pi,npm 包为 @earendil-works/pi-coding-agent。它不是 pi.ai 上 Inflection AI 的 Pi,后者是完全不同的产品;也不是 Pi Network 代币、Raspberry Pi 或数学常数。旧的 shittycodingagent.ai 域名现在会重定向到 pi.dev,而 badlogic/pi-mono 会解析到当前仓库,因此旧链接会落到正确位置,却不会告诉你它们已经迁移。
将离开的原因与目标相匹配
下面每一行都是 Pi 自己的文档中作为有意省略或边界出现过的一个原因,并配有一个记录了相应功能的项目。本文没有进行运行时测试。
| 你希望从 Pi 获得的内容 | 它指向的目标 | 你需要转而承担的内容 |
|---|---|---|
| 将子代理、审批弹窗、计划模式、待办事项和后台 bash 作为内置功能,而不是扩展——MCP 自 v0.99.0 起已内置于 Pi | Oh My Pi,Pi 的一个分叉 | 不同的维护者和版本线,位于 ~/.omp/agent/models.yml 的 YAML 配置,以及需要学习的独立审批模型 |
| 为自托管或非标准端点提供超出 Pi 所列四项的、有文档说明的一组传输协议 | Oh My Pi——记录了十一种 api 值;Pi 在 2026 年 9 月 22 日之前记录了四种,现在不再列出任何值,不过其源代码(v0.99.2)会分发十种 | 同样的分叉注意事项;其中两个值是判断 API,而不是聊天传输协议,Pi 未记录的六个值也未在此测试 |
| 一个用于运行代理的托管环境,而不是使用你自己的 shell | OpenHands | 免费的 SaaS Individual 层级将“Max Daily Conversations”限制为 10;自行运行的 MIT 构建版本标记为 Unlimited |
| 将代理放入你已经使用的编辑器中 | Cline | 编辑器扩展的工作流,而不是终端工作流;其 ClinePass 订阅被记录为“completely optional”,同一页面还表示你可以与其搭配使用任何其他提供商 |
| 一方网关,其供应商自己没有将它称为 early alpha,正如 Earendil 对 Radius 的称呼 | OpenCode(Zen)或 Crush(Hyper) | 第二个账户。OpenCode 称 Zen“completely optional”;Charm 称 Hyper“the official Crush provider”,并未使用该词。两个客户端都记录了可为其他提供商使用你自己的密钥 |
| 基金会,而不是单一公司的管理 | goose,Apache-2.0,现归 Linux Foundation 的 Agentic AI Foundation 管理 | 通往同一端点的两条不同路径可供选择:将内置 OpenAI 提供商指向带有 OPENAI_HOST 的自定义基础 URL,或创建自定义提供商条目;其文档将后者描述为适用于“尚未受支持”的服务 |
| 一家供应商自有的代理,端到端提供 | Claude Code 或 Codex CLI | Codex CLI 在自定义端点方面严格比 Pi 更受限——请参阅常见问题。GitHub API 报告 Claude Code 仓库没有 SPDX 许可证 |
在选择之前,有两个边界值得说明。Pi 的安全页面在 2026 年 9 月 22 日文档更新中重写后明确表示,Pi“可以使用启动它的账户权限读取、修改和执行文件,并且不会在每次工具调用前请求批准”,同时将“缺少内置沙箱”列为通常不属于其安全边界的行为之一。其项目信任提示也不是缺失的权限系统:同一页面表示,信任“控制 Pi 是否加载工作文件夹提供的大多数设置和资源”,并且“不限制工具调用可以访问或影响的内容”。如果隔离是你离开的原因,那么答案是采用审批模式的客户端或容器,而不是默认换用另一个终端代理。
在确定名称之前先检查状态
Pi 的替代方案列表包含处于三种不同状态的项目,而 GitHub 上有一个字段会主动误导人。请读取发布和提交日期,而不是读取 pushed_at。
| 项目 | 许可证 | 最新版本 | 2026 年 9 月 21 日的状态 |
|---|---|---|---|
Pi(earendil-works/pi) | MIT | v0.87.0,2026 年 9 月 21 日 | 活跃;三天内发布了三个版本 |
Oh My Pi(can1357/oh-my-pi) | MIT | v18.2.8,2026 年 9 月 21 日 | 活跃分支;独立产品,不是 Pi 的拼写变体 |
OpenCode(anomalyco/opencode) | MIT | v1.18.31,2026 年 9 月 14 日 | 活跃。sst/opencode重定向至此;opencode-ai/opencode已归档,且是不同的项目 |
Crush(charmbracelet/crush) | FSL-1.1-MIT — GitHub 自己的字段仅报告为 NOASSERTION | v0.96.1,2026 年 9 月 21 日 | 活跃。Functional Source License 并非 OSI 批准的开源许可证;在作此假设前请阅读 LICENSE.md |
goose(aaif-goose/goose) | Apache-2.0 | v1.51.0,2026 年 9 月 17 日 | 活跃;block/goose重定向至此,文档已移至 goose-docs.ai |
OpenHands(OpenHands/OpenHands) | MIT | v1.20.0,2026 年 9 月 17 日 | 活跃;All-Hands-AI/OpenHands重定向至此 |
Cline(cline/cline) | Apache-2.0 | v4.1.19,2026 年 9 月 17 日(桌面版本按其自身的标签线发布) | 活跃:仓库未归档,2026 年 9 月 21 日有推送 |
Codex CLI(openai/codex) | Apache-2.0 | rust-v0.155.1,2026 年 9 月 18 日 | 活跃;其文档已迁移两次,因此几个看似合理的文档 URL 会返回 404 |
| Aider | Apache-2.0 | v0.86.0,2025 年 8 月 9 日 | 休眠但未消亡:未归档,但自 2026 年 5 月 22 日后没有提交 |
| Continue | Apache-2.0 | v2.0.0-vscode,2026 年 6 月 19 日(最新稳定版) | 不再发布。continue.dev 表示它“已加入 Cursor”,并称开源代码库“仍可自由获取”;最近一次代码提交于 2026 年 6 月 19 日。这是迁移来源,而非迁移目的地 |
仓库事实取自 GitHub API 及各项目官网,日期为 2026 年 9 月 21 日。Star 数量和推送时间戳每天都会变化,因此有意省略。Continue 是需要读两遍的那一行:其 pushed_at 字段显示较近的日期,是因为存在仅涉及文档的提交,这正是它持续出现在当前推荐列表中的原因。Kunavo 自己的 Continue 替代方案和 Aider 替代方案页面分别介绍这两个项目。
真正离开 ~/.pi/agent 的是什么
这是对比表格略过的部分,也是实际切换成本所在。Pi 将所有内容保存在一个目录中,而其中七类内容的命运并不相同。
| Pi 存储的内容 | 其中包含的内容 | 迁移时会发生什么 |
|---|---|---|
AGENTS.md / CLAUDE.md | ~/.pi/agent/AGENTS.md处的全局规则,加上祖先目录和当前目录中的规则;AGENTS.override.md会在该目录中替代它们 | 会随之迁移。OpenCode 在项目根目录记录 AGENTS.md,并记录 ~/.config/opencode/AGENTS.md;如果不存在 OpenCode 专用文件,则回退到 ~/.claude/CLAUDE.md。Oh My Pi 将 AGENTS.md 的发现过程记录为其工作区遍历的一部分 |
models.json | 自定义提供商块:baseUrl、api、apiKey、headers、models、modelOverrides | 会重新键入,但 Oh My Pi 除外。其文档称,如果两个 YAML 文件都缺失,且 models.json“位于相同位置”,则会将其迁移到 models.yml——该位置是 ~/.omp/agent/,因此需要自行将文件复制到那里。Oh My Pi 记录的首次运行时会继承的目录包括 .claude、.cursor、.windsurf、.gemini、.codex、.cline、.github/copilot 和 .vscode;~/.pi 不在其中 |
mcp.json | MCP 服务器定义,添加于 v0.99.0(2026 年 9 月 29 日):用户级位于 ~/.pi/agent/mcp.json,项目级位于 .pi/mcp.json,OAuth 令牌单独保存在 ~/.pi/agent/mcp-auth.json | 大部分会随之迁移。Pi 的 MCP 页面称“格式与其他 MCP 客户端一致”,其自身的转换表逐字段映射 OpenCode 的 local 和 remote 条目——这是迁出时需要反向执行的映射。仅 Pi 支持的字段(如 exposure)不会迁移,OAuth 令牌也不会迁移:请在目标客户端中重新登录 |
auth.json | Pi 各 /login提供商的 API 密钥和 OAuth 令牌,自动刷新 | 不会迁移。每个客户端都会生成自己的令牌。迁出时也值得了解:Pi 文档所述的凭据解析顺序(2026 年 9 月 22 日文档更新中的表述)是运行时 --api-key,然后是 auth.json,再然后是 models.json 中的 apiKey,最后是提供商的环境变量——因此,此处的旧令牌仍会静默地优先于你刚配置的密钥 |
sessions/ | 每个会话一个 JSONL 文件,按工作目录组织成树,其中每个条目都有 id 和 parentId | 不会迁移。Pi 记录了两种导出方式——将 /export 导出为 HTML,以及导出到私有 GitHub gist 的 /share——另有一个 /bug 报告,可将当前分支打包为 session.jsonl。在此检查的客户端中没有找到该格式的导入器——这是缺乏证据,而非有文档证明的限制 |
trust.json | 按规范路径记录的每目录项目信任决策,其中 defaultProjectTrust 默认为 ask | 没有可迁移的对应项。它控制的是配置加载,而不是工具调用,因此没有任何内容可在目标客户端中复现为权限策略 |
| 扩展、技能、提示模板、软件包 | TypeScript 模块和工作流资源,位于项目 .pi/ 目录中或全局位于 ~/.pi/agent/,以与 Pi 本身相同的权限运行 | 未找到有文档记录的迁移路径。这正是离开 Pi 时最大且无法量化的成本,因为 Pi 对其剩余五个缺失内置功能的解决方式就是在此构建它们。在估算迁移成本前,先盘点你实际依赖的内容 |
信息取自 Pi 的使用、安全、模型、会话和 提供商页面、OpenCode 的规则页面以及 Oh My Pi 的模型文档,均于 2026 年 9 月 21 日查阅;auth.json行的解析顺序于 2026 年 10 月 1 日从 Pi 更新后的模型页面重新读取,mcp.json行同日从其 MCP 页面读取。
迁移时不要烧掉回头路
# 1. Change nothing in Pi. Everything below leaves ~/.pi/agent intact.
# 2. Rules travel as-is. Pi already reads the repo's AGENTS.md;
# so do the destinations that document AGENTS.md support.
cp ~/.pi/agent/AGENTS.md ~/.config/opencode/AGENTS.md # global rules, OpenCode
# 3. Of the destinations checked here, only Oh My Pi documents a converter,
# and it only fires from its OWN directory — not from ~/.pi/.
mkdir -p ~/.omp/agent
cp ~/.pi/agent/models.json ~/.omp/agent/models.json # omp writes models.yml
# 4. Do NOT copy auth.json. Mint credentials in the destination instead.
# 5. Roll back at any time: pi still reads ~/.pi/agent, sessions included.
pi两个细节决定了切换是干净利落,还是换来一个充满 404 的下午。首先,在一个完整的编辑、测试和审查周期通过之前,将目标客户端置于单独的 worktree 或分支中——Pi 始终(包括会话在内)读取 ~/.pi/agent,因此回滚只需再次运行 pi。其次,在目标客户端中重新填写成本和限制元数据,不要假设它们会随之迁移。Pi 的源代码(v0.99.2)会将自行添加模型的 cost 块默认设为全零,同时将 contextWindow 设为 128,000 个令牌、将 maxTokens 设为 16,384——因此,你正在迁出的 Pi 成本读数可能一直显示为 $0。值得在将目标客户端的数字视为预算之前,检查它是否存在同样的盲点。Pi 定价包含完整的自定义提供商块及其注意事项;本页面有意不重复这些内容。
如果你比较的是特定组合而非某一类别,Oh My Pi 与 Pi 对比会详细介绍这个分支,Pi 与 OpenCode 对比和 Pi 与 Claude Code 对比会分别进行正面对比,而 OpenCode 替代方案则从另一方进行同样的分析。
更换客户端不会改变令牌账单
这些客户端本身都不会向你收费,而且每个客户端都可以使用你配置的任意模型路由——这正是上方表格中 api、baseUrl 和密钥字段的用途。若干供应商还提供自有密钥的第一方替代方案(Radius、Zen、Hyper、ClinePass、OpenHands provider),Claude Code 和 Codex CLI 还可以登录其供应商自己的订阅计划,因此下面的数字仅描述自带路由的情况。无论如何,退出的理由必须是功能,而不是价格:切换代理本身不会改变模型成本。
下面的数字是示例性的令牌算术,不是实测任务成本,也不是账单上限。假设一个会话发送 200,000 个未缓存输入令牌并接收 15,000 个输出令牌,不读取缓存、不写入缓存、不输入图像且不产生工具费用。费率按每百万令牌从实时的 Kunavo 目录呈现。
| 模型 | 每 1M 个令牌的输入 / 输出 | 一次假设会话的估算 |
|---|---|---|
| Claude Haiku 4.5 | $0.70 / $3.50 | $0.192 |
| GPT-5.6 Terra | $0.70 / $4.20 | $0.203 |
| Claude Sonnet 5 | $1.40 / $7.00 | $0.385 |
| Claude Opus 5 | $3.50 / $17.50 | $0.963 |
在将其中任何数字视为预算之前,先按你每天的会话数进行缩放,并将两个说法分开:列出的最低费率与完成任务的最低成本是两回事,因为一个需要尝试三次的小模型,成本可能高于一次就完成修改的更强模型。Kunavo 目录金额是计费下限,而不是上限——当上游报告其费用时,账单取目录成本与上游成本乘以适用加价两者中的较高者,计费页面对此有说明。预付余额的最低充值额为 $10 ,这是资金充值最低额,而不是任务费用或订阅费。
如果你在比较内置代码库索引的代理,需要提前规划一个能力缺口:Kunavo 不提供 embeddings。它不提供任何 embedding 模型,也不提供文本转语音或语音转文本模型,因此需要 embedding 端点的索引步骤必须使用独立的提供商。
Kunavo 在本页面为 Pi 及若干目标客户端提供配置参考。已发布的设置指南不等于兼容性测试:这些客户端都未针对 Kunavo 端点进行运行时测试,上述每项协议声明都来自各项目文档,而不是实际运行结果。如果该分支是你的目标,请从 Pi 集成指南或 Oh My Pi 集成指南开始,测试期间保留一条可用路由,并在准备好针对入选模型为一项范围明确的任务估算价格时创建 Kunavo 账户。
常见问题
最佳的 Pi 编码代理替代方案是什么?
没有唯一赢家,因为真正的问题是 Pi 缺少哪些你需要的功能。在 2026 年 9 月 22 日文档更新之前,Pi 自己的设计原则部分曾表示,它有意不内置 MCP、子代理、权限弹窗、计划模式、待办事项或后台 bash,并建议你将其作为扩展或软件包添加。更新删除了这句话;2026 年 9 月 29 日发布的 v0.99.0 将 MCP 作为内置扩展提供,其余五项在 v0.99.2 中仍未内置。如果你更希望这些功能内置,Oh My Pi 是最接近的选择,因为它是 Pi 的分叉,并且明确记载了这些功能。如果你想要托管代理的运行环境,OpenHands Cloud 提供免费的 Individual 层级。如果你想让代理位于编辑器内,选择 Cline。如果你想要一个其供应商没有称为早期 alpha 阶段的第一方网关——radius.earendil.com 称“Radius 目前处于早期 alpha 阶段”——OpenCode 提供 Zen,其文档称其“完全可选”;Crush 提供 Hyper,Charm 称其为“Crush 的官方提供商”,同时介绍了另外十二个可粘贴自有密钥的提供商。所有状态核查于 2026 年 9 月 21 日。
Pi 编码代理仍在维护吗?
是的,而且维护积极。2026 年 9 月 21 日,GitHub API 报告 earendil-works/pi 采用 MIT 许可证、未归档,并于当天推送;版本 v0.87.0 也于 2026 年 9 月 21 日发布。因此,Pi 不是一个因生命周期原因而需要离开的项目。这对本次比较很重要,因为替代方案列表中出现的两个名称处于不同状态:Continue 已被 Cursor 收购,最后一次代码提交是 2026 年 6 月 19 日;Aider 自 2026 年 5 月 22 日以来没有提交,自 2025 年 8 月 9 日发布 v0.86.0 后也没有新版本。
Oh My Pi 只是 Pi 的另一个名称吗?
不是。Oh My Pi 是一个独立产品,以 Pi 的分叉形式构建,由不同的维护者维护,拥有不同的版本线和不同的配置格式。其 README 声明它是 @mariozechner 开发的 Pi 的分叉;其 LICENSE 列出了 Mario Zechner、Can Bölük 和 Stencil Labs, Inc.;它于 2026 年 9 月 21 日发布 v18.2.8,而 Pi 当时为 v0.87.0。Pi 将 ~/.pi/agent/models.json 作为 JSON 读取;Oh My Pi 将 ~/.omp/agent/models.yml 作为 YAML 读取。绝不要混用它们的配置示例或版本号。第三个陷阱是:npm 软件包 @mariozechner/pi 根本不是较旧的 Pi 版本——注册表将其描述为用于管理 GPU pod 上 vLLM 部署的 CLI。Pi 的 npm 软件包是 @earendil-works/pi-coding-agent;pi.dev 还提供 curl 和 PowerShell 安装程序。
我可以将 Pi 配置迁移到另一个编码代理吗?
部分可以,而且这种区分比大多数迁移建议承认的更明显。项目规则可以迁移:Pi 会从 ~/.pi/agent、祖先目录和当前目录加载 AGENTS.md 或 CLAUDE.md;OpenCode 则记录了项目根目录中的 AGENTS.md 以及 ~/.config/opencode/AGENTS.md,并将 Claude Code 的约定作为后备方案。除 Oh My Pi 外,在这里检查的每个目标中,提供商配置都需要重新输入;Oh My Pi 会将 models.json 转换为 models.yml,但前提是该文件已经位于 ~/.omp/agent/,因此你必须自行将它复制到那里。凭据不会迁移;每个客户端都会生成自己的凭据。会话历史也不会迁移:Pi 将会话作为 JSONL 树存储在 ~/.pi/agent/sessions/ 下,并记录了两种导出方式:/export 导出为 HTML,/share 导出为私有 GitHub gist;此外还有 /bug 报告,可将当前分支打包为 session.jsonl。在这里检查的客户端中,没有找到该格式的导入器;这只是缺乏证据,并不等于有文档明确禁止。
哪种替代方案接受最广泛的自定义 API 端点?
在检查过的客户端中,Oh My Pi 记录的集合最广。直到 2026 年 9 月 22 日 Pi 文档更新之前,其 models 页面为 models.json 列出了四个 api 值:openai-completions(标记为兼容性最高),以及 openai-responses、anthropic-messages 和 google-generative-ai;更新后的页面不再列出任何值,只在一个示例中显示 openai-completions,并将该情况描述为兼容 OpenAI、Anthropic 或 Google 的端点。Pi v0.99.2 的源代码比其文档曾经记录的内容更进一步:它将该字段类型定义为自由字符串,并将其分发到十个内置实现中与之匹配的实现——上述四个,加上 mistral-conversations、azure-openai-responses、openai-codex-responses、bedrock-converse-stream、google-vertex 和 pi-messages——因此 Pi 与 Oh My Pi 的差距更多体现在文档记录内容上,而不是 Pi 实际会分发的内容;Pi 额外的六个值均未在此测试。Oh My Pi 的 models.yml 接受严格超集中的十一个值,新增 openai-codex-responses、azure-openai-responses、bedrock-converse-stream、google-gemini-cli 和 google-vertex;不过其中两个值 typesafe 和 openrouter-decisions 是判断 API,而不是聊天传输协议。Codex CLI 位于范围最窄的一端:其配置参考指出,responses 是唯一受支持的 wire_api 值,并且内置提供商 ID openai、ollama 和 lmstudio 已被保留,无法覆盖。内容读取自各项目于 2026 年 9 月 21 日的自有文档;Pi 的文档和源代码于 2026 年 10 月 1 日重新读取。
我应该从 Pi 切换到 Continue 吗?
不应该。Continue 已停止作为独立产品发布:continue.dev 表示 Continue 已加入 Cursor,并已被 Cursor 收购,同时其开源代码库仍可免费使用。在 GitHub 上,其最新稳定版本是 v2.0.0-vscode,日期为 2026 年 6 月 19 日;最后一次代码提交也是当天,此后只有文档提交。其 GitHub pushed_at 字段仍显示较近的日期,这正是过时文章列表不断推荐它的原因——请查看发布和提交日期。将 Continue 视为迁移来源,而不是目标。
此处检查的内容及方式。Pi 和 Oh My Pi 的仓库状态及最新发布版本于 2026 年 9 月 21 日从 GitHub API 读取;Pi 的使用、安全和模型文档、Oh My Pi 的模型文档以及 OpenCode 的规则页面也于同日读取。Pi 于 2026 年 9 月 22 日更新文档后,其凭据顺序和 api 列表于 2026 年 10 月 1 日在模型页面重新检查;更新后的文档不再说明的自定义模型默认值,则从其 v0.99.2 源代码中检查。当天,在 Pi v0.99.0 发布内置 MCP 后,针对其使用、MCP、设置和 CLI 页面以及 v0.99.2 源代码重新检查了省略功能列表,针对其重写后的安全页面重新检查了沙箱和项目信任相关引文,并检查了其源代码分派的 api 值。剩余各行——OpenCode、Crush、goose、OpenHands、Cline、Codex CLI、Aider 和 Continue——同日从 GitHub API 及各项目链接的页面读取:OpenHands 的定价表、Cline 的 ClinePass 页面、OpenCode 的 Zen 页面、Crush 的 README 和 LICENSE.md、goose 的提供商文档、Codex CLI 的配置参考以及 continue.dev。此处内容没有与上述任何服务的实时账户进行核对。Kunavo 费率从实时目录呈现,此处所有美元数字都是示例性的令牌算术。本页面中的客户端均未针对 Kunavo 进行运行时测试。