快速阅读:Pi 是一个极简的终端编程工具,它几乎不内置任何功能,但可以通过扩展随意定制。这种设计哲学正在改变开发者与工具的关系,也在悄悄改变开源协作的方式。
---
有人用了 Pi 几天,立刻把它变成了每天都在用的主力工具。也有人试了一周,还没拿定主意。这两种反应背后其实是同一个问题:你愿不愿意接受一个“什么都不做”的工具?
Pi 的设计哲学可以用一句话概括:它刻意不做决定。没有子智能体、没有计划模式、没有权限弹窗、没有内置待办事项,连 MCP 都没有。你想要这些?自己写扩展,或者去 npm 上找别人写好的装上。
这听起来像是偷懒,其实是一种相当自信的立场。大多数工具的问题不是功能不够多,是功能太固执,它们替你做了太多决定。Pi 的逻辑是:把工具做成一个骨架,用户自己填肉。
这种设计引发了一个有趣的现象,有观点认为,这正在改变开源软件的协作方式。过去你用一个开源工具,遇到问题就提 issue,想要功能就发 PR。现在换了一种玩法:你下载一个“技能文件”,让编程智能体帮你把功能加进去。软件不再是一个固定的制品,而是每个人手里略有不同的活物。
理论上这很美好。现实的问题是:每个人跑的是自己那份独特的软件,一旦出了 bug,排查起来会是什么处境?有网友一针见血地补了一刀:“而且是几分钟前才改过的版本。”
Pi 用 TypeScript 写成,这让一部分人不满。有人质疑为什么在 AI 编程时代要用一门 Web 语言做终端工具。支持者的回答是:动态语言可以在运行时加载和执行代码,扩展热更新是真实需求,而静态语言很难优雅地满足这一点。
争论随即扩散。有人拿出了 Rust 移植版,有人提到 Erlang 天然适合这类问题,甚至有人写了一个 Zig 版本,然后自己坦白“用 Zig 写挺烂的,这门语言就是个词语的集合”。
对普通用户来说,Pi 最实际的优势可能是模型无关性。它支持 15 个以上的提供商,可以在会话中途切换模型,可以接入本地模型,可以用 OpenRouter 走更便宜的路线。有用户反映,同样是 GPT-5.3-Codex,在 Pi 上跑比在官方 Codex CLI 上流畅得多,“就好像官方工具让它两只手绑在背后打架”。
Pi 的域名是别人捐的。它在 GitHub 上也有一个备用地址,叫 shittycodingagent.ai,这大概是作者给自己的工具起的最诚实的外号。
用过的人说,一旦习惯了工具对你完全透明,就很难再回去接受那些把模型在干什么藏起来的产品。但这到底是真正的透明,还是只是把复杂性转移给了用户自己,恐怕还需要更多时间来回答。
---
简评:
有意思的是,Pi可能正在杀死它所依赖的开源精神。过去的开源是“我修好了,大家都能用”;现在变成了“我修好了,但只在我的版本上能跑”。每个人手里都是一个略有不同的活物,这不叫个性化,这叫软件的方言化。想象一下:你在论坛求助,别人问你用的什么版本,你说“昨晚让AI改了三个扩展那个版本”——这对话能进行下去吗?当软件从“产品”变成“食材”,我们确实获得了自由,但也失去了“标准答案”这个安全网。
---
Pi官网:pi.dev