pi
模块化 AI 编程 agent 工具链,通过 TypeScript 扩展和 npm 包生态实现高度可
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
模块化 AI 编程 agent 工具链,通过 TypeScript 扩展和 npm 包生态实现高度可
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
上图为 pi 项目的官方 Logo,设计简洁有力,体现了极简主义的开发工具哲学
想象这样一个场景:你正在深夜赶一个紧急需求,AI 给你写了一段代码,你总感觉哪里不对,但又找不到问题在哪。传统方案是你追着 AI 反复问,AI 给出的解释越来越模糊,你越来越焦虑。
Pi 给你提供了另一种可能性——一个以「你」为中心、可深度定制的 AI 编程终端。Pi 不喧宾夺主,不强制你接受它的世界观,而是把自己变成一把趁手的瑞士军刀,你需要什么工具就调什么工具,工具不够用就让 AI 帮你造。
Pi 的作者是 Mario Galic(GitHub @badlogicgames),他更广为人知的身份是 libGDX(一个 Java/Gradle 的跨平台游戏引擎框架,在 GitHub 拥有超过 22,000 颗星)的核心维护者。
libGDX 的用户遍布全球,从独立游戏开发者到商业游戏工作室都在用,这意味着 Mario 对「工程化思维」和「开发者体验」有着极其深刻的理解。他从 2024 年开始将这一理念迁移到 AI 编程工具领域,一手打造了 Pi。所以当你使用 Pi 时,实际上是在用一位有着 15+ 年工程化经验的老兵打磨出来的作品。
Mario 同时运营 exe.dev,该项目也托管在 earendil-works 组织下,形成了以「编程工具链」为核心的生态布局。
Pi 采用 mono-repo 结构(TypeScript/NPM workspace),内部拆分为 4 个独立发布的包,各司其职:
| 包 | 功能 | 类比 |
|---|---|---|
| @earendil-works/pi-coding-agent | 交互式编码 CLI,是用户直接打交道的「前台」 | 餐厅的服务员 |
| @earendil-works/pi-agent-core | Agent 运行时 + 工具调用系统,是「大脑」 | 餐厅的经理 |
| @earendil-works/pi-ai | 统一 LLM API,屏蔽底层模型差异,是「通用接口」 | 餐厅的采购部门 |
| @earendil-works/pi-tui | 终端 UI 渲染库,给 TUI 提供「妆容」 | 餐厅的室内装潢 |
这种分层设计有一个显而易见的好处:解耦。如果你只想用它的统一 LLM API 能力,可以单独引入 @earendil-works/pi-ai;如果你是 TUI 控,@earendil-works/pi-tui 同样可以独立使用。
与市面上大多数「功能堆砌型」编程 agent 不同,Pi 刻意不做 sub-agent 和 plan mode。作者认为,这些功能应该在更上层(prompt 层面)实现,而不是内置到框架里。
Pi 默认提供的工具集极为克制:read(读文件)、bash(执行命令)、edit(编辑文件)、write(写文件),仅此而已。这与 Claude Code 等主流方案一致,但 Pi 的扩展机制让它可以轻松接入更多工具——你甚至可以让 AI 帮你写一个新的扩展。
在 AI 层,Pi 通过 @earendil-works/pi-ai 实现了真正的模型无关设计。从 package.json 可以看到,它原生支持:
这种「统一 API 层」的设计意味着:你可以随时在不同的模型之间切换,无需修改业务代码。对于需要在不同场景下平衡成本和效果的团队来说,这个特性非常实用。
Pi 不是只有一种「交互式终端」模式,而是设计了 4 种运行形态:
特别是 RPC 模式,让它可以嵌入到任何已有工具链中。作者还专门提到了 openclaw/openclaw 作为 SDK 集成的参考案例,说明 Pi 的设计从一开始就是面向工程集成的。
Pi 的 .pi/extensions 目录提供了 TypeScript 扩展机制,而 .pi/skills、.pi/prompts、.pi/git 等子目录则允许用户自定义:
这些配置和扩展可以打包成 Pi Package 通过 npm 发布,实现社区共享。这种「npm 化的 agent 扩展生态」思路非常有意思——你可以像安装 npm 包一样安装别人写的 AI 技能包。
作为一个严肃的工程化工具,Pi 在供应链安全上下了不少功夫:
.npmrc 设置 save-exact=true,所有直接依赖精确到补丁版本npm-shrinkwrap.json,锁定所有传递依赖,防止「上游更新导致 CI 失败」npm run release:local 在真实隔离环境中测试安装流程这些措施在开源项目中极为罕见,反映了 Mario 从 libGDX 带来的工程化基因。
npm install -g @earendil-works/pi-coding-agent
# 或通过 pi-test.sh 从源码运行
硬件要求:无 GPU 需求,普通笔记本即可运行(推荐 2GB RAM + 500MB 磁盘)。
依赖:Node.js >= 18。
首次使用需要配置 LLM API Key(支持上述所有主流模型)。项目文档建议直接在终端让 AI 引导你完成配置——本身就是一种「用 AI 配置 AI」的有趣体验。
Pi 的出现代表了 AI 编程工具领域的一种「第三条路」——既不像 Cursor/Windsurf 那样做 IDE 插件型产品,也不像 Claude Code 那样做功能完备的单一方案,而是做 平台化的 agent harness(AI agent 工具链框架)。
这种思路的核心洞察是:未来不会有唯一一个「完美」的编程 agent,而是会有无数个针对不同场景、不同团队的垂直 agent。Pi 的使命是让构建这些 agent 变得更容易。
Mario Galic 在 2024 年发推号召大家分享开源项目的 coding agent session 数据,推动用真实项目数据训练更可靠的 AI 工具,而不仅是靠 toy benchmark 来评估 AI 编程能力。这个倡议也体现在 Pi 的设计理念中——Pi 是为真实开源工作而生的工具。
如果你对 AI 编程 agent 有深度定制需求,或者想构建自己的 agent 平台,Pi 值得深入研究。
项目地址:https://github.com/earendil-works/pi | 官网:https://pi.dev | Star:53,000+