前段时间 Claude 把我封禁了,没办法,不得不找别的路子。光凭 Codex 也满足不了每天的编码需求,需要一些不一样视角的模型来互补。Cursor 又由于莫名其妙的操作,把我这张号的 500 次变成了按消耗计费。Antigravity 之前没怎么用过,虽然把代理问题解决了,总感觉不太聪明。底子比 Codex 和 Claude 的客户端要慢好多个版本。

社交媒体上关于 Pi 的讨论非常多。大半年前就听说前司内部开发还会用 Pi。我就想自己来琢磨一下,从装上到能干活,先把卡住我的问题记下来。

命令行

Pi 是一个命令行工具,简单得不能再简单。装上之后,从 Codex、Claude 的 GUI 过来的人,第一个疑惑往往是:文件怎么看?我也搜过有没有第三方客户端,结论是不用。有人推荐 oh-my-pi,我的想法是从零开始,做一个更高度自定义的,所以没用它。后面都从最基础的 Pi 开始。

安装、卸载不做重复介绍,直接去 pi.dev 下载就行。装完第一件事是登录。一种是走第三方客户端,推个网页认证。我把 Codex、Antigravity 和 Cursor 三个都登上去了。后面两个没有默认预装插件,网上找其他人开发的就行。Cursor 要注意,要装非 backend 的那款,backend 那款鉴权方式不一样。

另一种是直接用 API token,比如 OpenRouter。我想用的是套餐额度,所以第三方 provider 没关注。它原生支持 Llama,条件允许可以用本地部署。这些都不是重点。

常用指令

斜杠指令看起来蛮多,好像有 80 多个,至少我这边是。

Pi 斜杠指令列表,左下角显示 1/84,可见 settings、model、tree、thinking、scoped-models
Pi 斜杠指令列表,左下角显示 1/84,可见 settings、model、tree、thinking、scoped-models

日常反复用到的,大致就是下面这些。

/model        换模型          /thinking     调推理级别
/tree         从跑偏点分支    /compact      压缩长上下文
/resume       找旧会话        /name         给会话命名
/session      看状态/成本     /reload       重载配置
@file         附文件          !cmd / !!cmd  执行 shell
Enter         纠偏            Alt+Enter     排队后续任务
Esc           中止

我自己最常动的是 /model/thinking。登录之后模型会展开特别多,/thinking 默认偏中,我喜欢调到最大,不然这些 token 怎么消耗得完。/compact 在 Codex 和 Claude 里也有,长了就压缩一下。

清单之外,Codex 里那些 MCP、plan,还有 /goal 那种一口气做完的功能,Pi 核心没有。我个人觉得比较有用的是 sub-agent 和 MCP。Codex 里很多第三方服务是直接用 MCP 接的,比如 Stripe 支付、Resend 邮箱。

Pi 把这些都留给扩展。缺了可以按需补,同一类先装一个。

缺少的内建能力 可选扩展 使用边界
MCP pi-mcp-adapter 把 MCP 工具接入 Pi;工具一多,优先 proxy/search,避免全部常驻上下文
Subagents pi-subagents 单个、并行和链式委派;子代理仍会单独吃上下文和额度
Plan Mode pi-agent-modes 提供 ask/plan/build/review/debug 等模式;藏掉 edit/write 不等于沙箱
权限确认 pi-permission-system allow/ask/deny 规则;这是决策层,不是 OS 沙箱
OS 沙箱 pi-sandbox macOS 用 sandbox-exec,Linux 常用 bubblewrap
后台 Bash pi-background-bash 长命令转后台;进程仍继承本机用户权限

没必要一开始全下。第三方大多是社区写的,版本升级时有风险。网上都建议锁定版本,避免软件升级后自动更新、注入恶意代码。高频指令记住,缺的能力先放着,可以开第一轮对话了。

打断和回退

第一轮对话里,最先卡住我的是怎么停。Codex 可以直接往下打字,还有 /btw 这种不打断进程、问一句当前进展的指令。Claude 里也有类似的。Pi 目前不支持。我给 /btw 的评价是一般有用:Claude 里有时比较弱智,Codex 里问是不是和预期一致,或者问细节,能答,但没有那么聪明。

真要停,按 Esc,这个和 Codex 一致。不一致的是按两次 Esc。Codex 会回到上次对话,Pi 从我的实践看没有这个反应,两次 Esc 默认打开 /tree

Esc、Enter、/tree、Git 看起来都像“回去”,处理的状态并不相同。

现场 先做什么 它能恢复什么 它不能恢复什么
输出明显跑偏,或准备执行危险动作 按一次 Esc 中止当前 run;把排队的 steering/follow-up 恢复到编辑器 已经执行的 shell、已经写入或删除的文件
只是想补一句约束 工作中按 Enter 作为 steering,等当前工具调用结束后尽快交给模型 不是硬中断,不能撤销正在执行的副作用
想回到旧思路重新聊 /tree 对话树与后续模型上下文 磁盘文件、Git index、未跟踪文件
想撤回代理造成的文件修改 git statusgit diff,再定点 git restore Git 已跟踪文件的工作区或暂存区 默认不处理未跟踪文件,也不恢复对话

/tree 对用户并不友好,只回退对话,不回退变更。它没有把 Git 整合进去,也没有文件跟踪。官方的意思是文件交给 Git。但你如果让模型自己操作 Git,我的观察是,即使是聪明的 GPT-5.6 sol 也会陷入迷失。所以还是用第三方更友好一点,比如 pi-rewind

对话能停、能补、能回退之后,下一个问题是怎么把图和文件喂进去。

图片和文件

做前端、看第三方截图的时候,模型得能看见图。我一开始没找到粘贴入口,走了个曲线:先传到图床,把链接丢给模型,让它自己解释。后来才知道,Mac 上是 Ctrl+V,不是习惯的 Command+V。

社区也反馈,有时候模型并不会读这张图片。所以需要留档、后面还要对比的图,我还是上传。不需要留的,Ctrl+V 粘进终端就行。几种入口拿到的东西不一样。

方式 模型实际拿到什么 适用
Ctrl+V / 拖入终端 / @ 本地路径,代理还得 read 本机交互,偶尔发图
pi @image.png 真正的图片附件 图片决定对错时
图床 URL 一段文本,模型可能去 curl,也可能不去 跨机器,或图片本来就要公开
scp 到远端再 read 远端路径 Pi 跑在远程主机上

我这边用的模型基本上都有图片理解能力。没有视觉能力的,比如半年前的 DeepSeek,论坛用户会装 vision-bridge 一类插件。这取决于需求。第三方插件蛮丰富,遇到问题直接搜,基本能解决。经常贴图的话,还有 pi-paster,会把路径换成真正的图片附件。

Pi 跑在远程主机上,读不到你 Mac 的剪贴板。这时把图传到远端再 read。少数情况不建议直接在服务器上改东西,安全第一。敏感截图、未发布设计和含 token 的报错页,也不适合为了喂给 agent 先公开上传。

普通文件也类似,给的是路径。直接 @ 对应文件就可以。终端里拖拽文件进来,在 Pi 里没有那么方便,把路径告诉模型也行。

图和文件能塞了,真开始改项目,坑会换一批。

项目里的坑

我实践下来,Gemini 3.8 Flash 可能对 Git 操作过度微调了,非常喜欢在 Git 树上做微操,反而影响大局。这个时候我会把之前在 Codex、Claude 和 Cursor 里存下来的 agent memory 让它读一遍,写到当前项目里,成为给它的指导意见。

做到一半还发现,它没有把我在其他项目的 skill 导入进来。提醒它帮我软链接过来。注意是软链接。我们所有 skills 都从统一仓库向几处分发,方便管理,而不是每个工具各留一套。这块我在从单 Agent 到跨 Agent 的 Skills 管理里写过。

模型列表是另一个麻烦。尤其是 Cursor,细分类太多。可以用 /scoped-models 做人工筛选。筛的时候我比较清楚 Codex 现在最强的是谁,但不清楚 Grok 在当前的实际水平,种类又太多。本来想自己写个插件,后面发现有人写了,就是 pi-better-models,省了非常多时间。也可以看我做的 TrakToken,上面有不同模型能力的排名。

pi-better-models 模型选择器,按 cursor 搜索后列出 Claude Fable 与 Opus 多个变体,带价格、速度和 Artificial Analysis 评分
pi-better-models 模型选择器,按 cursor 搜索后列出 Claude Fable 与 Opus 多个变体,带价格、速度和 Artificial Analysis 评分

/scoped-models 管候选范围,pi-better-models 帮你看清模型,不会替你自动选。

会话名称也不帮我压缩。我希望它能像 Codex、Claude 那样缩一下,回头才知道不同会话做了什么。这部分应该也会有插件。

输入方式

对话过程中怎么给它输入,需要分清 steering 和 follow-up。

Steering 是这次先做完,下一句再补约束,按 Enter。想让它把当前这件事情做完,先不往过程里塞新内容,按 Alt+Enter。做得快错了,用 Esc 终止。

其余快捷键,我自己常用的是这些。

快捷键 作用
Ctrl+L 选模型
Ctrl+P 循环模型
Shift+Tab 循环 thinking
Ctrl+O 展开/收起工具输出
Ctrl+T 展开/收起 thinking
Ctrl+X 复制最后消息
Esc Esc 默认打开 /tree
/hotkeys 查看其余全部

按键会了,Git 习惯和 skill 也写进项目了。这些文件进模型的顺序是固定的。

载入顺序

Pi 的 system 提示词,按下面这个顺序拼。

默认或自定义 SYSTEM
→ APPEND_SYSTEM
→ AGENTS.md / CLAUDE.md 项目上下文
→ Skills 目录
→ 当前工作目录

它们进 Pi 的位置不同,约束力度也不同。

机制 作用 是否常驻上下文 适合放什么
AGENTS.md / CLAUDE.md 项目规则,按全局、父目录、cwd 叠加 项目特有约束、验证命令、Git 规则
.pi/APPEND_SYSTEM.md 在 system prompt 后追加 少量高优先、跨任务规则
.pi/SYSTEM.md 替换默认 system prompt 完全定制代理;只想加几条规则时别动它
Prompt Template /名称 展开成用户消息 只在调用时进入 重复提示
Skill 先暴露名称和描述,匹配后再读正文 描述常驻,正文按需 专门工作流
Extension TypeScript:工具、命令、钩子、UI 作为代码运行 确定性门禁、审批、自动化

规则能加载,成本也想看清。我在 Claude 里面会看不同占比的 token 数。Pi 里面应该也有这个插件,回头找找能不能装上去。

使用感受

从装上到能改项目,Pi 刚开始并没有那么友好。反应速度可以,也能把不同模型的能力集合在一起,但肯定还是各家自己的客户端调教会更好。Pi 提供的是更高的可玩性。如果你不是在做 Agent 开发研究,这个可玩性不用过度纠结。手上有 Claude、Codex 和 Cursor,用它们把日常工作做好就行。Pi 更适合灵活度更高的活。或者这件事简单,手里还有多余的模型额度,不必上 Claude 那种通用模型,用第二梯队的模型试一试也行。

我一开始就用它改 GitHub Actions 的统一调度,花了一两个小时,效果还算满意。用的是 Gemini 3.8 Flash。偶尔用 Claude 帮我诊断一下方案。

网上大部分话集中在:先用起来,别急着装网友推荐。遇到问题,先定位清楚,再去找对应的参考。我会看 Codex、Claude 里类似功能是怎么做的,再搜有没有现成的第三方。确认好用、自己也需要,再加回来。

同一会话里快速换模型确实爽。爽归爽,我们之前在提效 20% 的 Claude Code Session 优化方法里讲过,换模型缓存会全部失效。目的和成本要自己权衡。可玩性不是这件事的根本。根本是提高生产力,把手上的资源有效利用起来。

能力表里有沙箱,这块我研究不算多。Pi 默认没有权限弹窗,也没有 OS 隔离,继承的是当前用户的文件、网络和凭证。敏感操作不适合直接在裸机上做,未来可能会把沙箱装回来。

Pi 更新迭代实在太快。从 2026 年 5 月迁到 @earendil-works 之后,到 v0.85.1 已经走了很多版。之前的教程可能就没那么有效。

参考资料

官方与文档

文中提到的插件


关于作者