当所有 AI 编程工具都在"帮你决定一切"的时候,Pi 走了完全相反的路:给你一个最小核心,剩下的你自己组装。3000+ 社区包、50+ 扩展示例、30+ LLM 供应商——这不是一个产品,这是一个生态。
🔗 **项目主页:**pi.dev
📂 **GitHub:**earendil-works/pi
📜 **开源协议:**MIT
一、Pi 是什么?
Pi 是一个极简主义的开源 AI 编程 Agent 框架,核心理念只有八个字:“提供原语,而非功能”(Primitives, not features)。
什么意思?Cursor 帮你内建了 Tab 补全、Windsurf 帮你内建了 Cascade 流程、Copilot 帮你内建了 Chat 面板——Pi 什么都不内建。它只给你四个工具(读、写、编辑、运行命令),然后说:
“你需要什么功能,自己搭。搭不了?让我帮你搭。”
这就是 Pi 最特别的地方——它可以自己改造自己。你让 Pi 构建一个子代理系统,它写完代码后 /reload 立刻生效,Pi 就有了子代理能力。
二、三个独特优势
🎯 优势一:30+ LLM 供应商,想用谁用谁
Pi 支持 Anthropic、OpenAI、Google Gemini、Azure、Bedrock、Mistral、Groq、Cerebras、xAI、DeepSeek、Hugging Face、Kimi、MiniMax、小米 MiMo、OpenRouter、Ollama 等 30+ 供应商。
认证方式灵活:
API Key:
export ANTHROPIC_API_KEY=***OAuth 订阅:
/login直接登录 Claude Pro/Max、ChatGPT Plus/Pro、GitHub Copilot自定义供应商:通过
models.json或扩展实现任意 API
会话中随时切换模型:
/model或Ctrl+L→ 打开模型选择器Ctrl+P→ 在收藏模型间快速循环Shift+Tab→ 切换思考深度
💡 **实战场景:**你可以让 Pi 先用便宜快速的模型(如 Groq + Llama)做初步代码分析,遇到复杂逻辑时一句话切到 Claude Sonnet 4 深度推理——同一个会话,无需重启。
🌳 优势二:树状会话——AI 对话的"存档系统"
Pi 的会话不是线性列表,而是一棵树。你可以从任何历史节点分叉,探索不同方案后随时回溯——就像游戏的存档系统。
/tree→ 跳转到任意历史节点/fork→ 从某个消息分叉出新会话/share→ 上传到 GitHub Gist 分享/export→ 导出为 HTML
📎 **示例会话:**在线体验
🧠 优势三:上下文工程——专业玩家的控制权
**AGENTS.md:**全局 + 项目级指令,启动时自动加载
**SYSTEM.md:**按项目替换或追加系统提示词
**自动压缩(Compaction):**接近上下文限制时自动摘要
**技能(Skills):**按需加载,渐进式揭示,不浪费 token
**动态上下文注入:**扩展可以注入消息、过滤历史、实现 RAG
三、四层积木架构
包名职责 pi-coding-agent交互式编程 Agent CLI + TUI pi-agent-coreAgent 运行时(工具调用、状态管理) pi-ai统一多供应商 LLM API pi-tui终端 UI 库(差量渲染)
💡 **关键洞察:**每一个包都可以单独使用。只想用统一 LLM API?装 pi-ai 就行。这种分层设计让 Pi 不只是工具,更是构建块。
四、扩展系统:让 Pi 成为"任何东西"
五行代码写一个危险操作守卫扩展:
`// ~/.pi/agent/extensions/danger-guard.ts import type { ExtensionAPI } from “@earendil-works/pi-coding-agent”;
export default function (pi: ExtensionAPI) { pi.on(“tool_call”, async (event, ctx) => { if (event.toolName === “bash” && event.input.command?.includes(“rm -rf”)) { const ok = await ctx.ui.confirm(“Dangerous!”, “Allow rm -rf?”); if (!ok) return { block: true, reason: “Blocked by user” }; } }); }`
保存后 `/reload` 立即生效。AI 执行 `rm -rf` 前会弹窗让你确认。
**官方 50+ 扩展示例:**
-
- **subagent** — 子代理
-
- **plan-mode** — 计划模式(先规划再执行)
-
- **permission-gate** — 权限门控
-
- **protected-paths** — 路径保护
-
- **ssh** — 远程 SSH 执行
-
- **sandbox** — 沙箱隔离
### 技能系统(Skills)
技能是**按需加载**的能力包,遵循 Agent Skills 标准。启动时只有 name 和 description 在上下文中,当任务匹配时才加载完整指令。
## 五、社区生态:3000+ 包
`# 子代理系统
pi install npm:pi-subagents
# 网络搜索 + 网页抓取 + PDF 提取
pi install npm:pi-web-access
# MCP 协议适配器
pi install npm:pi-mcp-adapter
# 持久记忆
pi install npm:@samfp/pi-memory
# 从 Git 安装
pi install git:github.com/badlogic/pi-doom`
包名功能月下载 context-modeMCP 插件,节省 98% 上下文窗口117K pi-subagents子代理:链式/并行执行99.8K pi-mcp-adapterMCP 协议适配88.9K pi-web-access网络搜索、URL 抓取、PDF 提取59.8K
六、pi-mainframe:5 分钟搭 Web 服务
`npx pi-mainframe
打开 http://127.0.0.1:8888`
你得到:Web UI、REST API、SSE 实时流、Daytona 沙箱、xAI TTS 语音播报、定时任务。
## 七、手把手教程
### 第一步:安装
`npm install -g --ignore-scripts @earendil-works/pi-coding-agent
# 或者 curl(Linux/macOS)
curl -fsSL https://pi.dev/install.sh | sh`
第二步:认证
`export ANTHROPIC_API_KEY=sk-ant…here pi
或者 OAuth 订阅登录
pi
输入 /login 选择供应商`
### 第三步:开始对话
`cd your-project
pi`
默认提供四个工具:read(读文件)、write(写文件)、edit(编辑文件)、bash(执行命令)。
第四步:添加项目指令
在项目根目录创建 AGENTS.md:
`# 项目指令
- 代码修改后运行 npm run check
- 不要在本地运行生产环境迁移
- 回复保持简洁`
修改后 `/reload` 即生效。
### 第五步:安装扩展
`pi install npm:pi-web-access
pi install npm:pi-subagents
/reload`
第六步:写自定义扩展
创建 ~/.pi/agent/extensions/my-first-extension.ts:
`import type { ExtensionAPI } from “@earendil-works/pi-coding-agent”; import { Type } from “typebox”;
export default function (pi: ExtensionAPI) {
pi.registerTool({
name: “timestamp”,
label: “时间戳”,
description: “获取当前时间戳”,
parameters: Type.Object({}),
async execute(id, params, sig, upd, ctx) {
return {
content: [{ type: “text”, text: 当前时间: ${new Date().toISOString()} }],
details: {},
};
},
});
pi.registerCommand(“hello”, {
description: “打个招呼”,
handler: async (args, ctx) => {
ctx.ui.notify(Hello ${args || "world"}!, “info”);
},
});
}`
`/reload # 重载扩展
/hello 世界 # 测试命令`
八、四种运行模式
模式命令适用场景
交互模式pi日常编程
单次执行pi -p query脚本/CI
JSON 事件流--mode json程序集成
SDKimport { Pi }嵌入应用
💡 **真实案例:**OpenClaw 通过 Pi SDK 将编程 Agent 嵌入自己的系统,实现了跨平台的消息驱动编程能力。
九、Pi 的哲学:为什么"少"是"多"
维度传统工具Pi 功能内建、固定用户自建、按需加载 模型绑定供应商30+ 供应商自由切换 扩展等官方更新写个 TS 文件即刻生效 上下文黑箱管理完全可控 会话线性历史树状分支,任意回溯
十、总结
适合你,如果你:
是专业开发者,想要对 AI 编程工具的完全控制权
需要在多个 LLM 模型间灵活切换
想要构建自定义的 AI 编程工作流
希望将 AI 编程能力嵌入到自己的产品中
喜欢终端,享受"一切皆可定制"的体验
Pi 代表了 AI 编程工具的另一种可能——不是产品定义用户,而是用户定义产品。
🔗 相关链接
官网 · GitHub · 包市场(3128+) · Discord · 文档
💬 评论