Pi.dev 深度研究报告
研究日期:2026-07-26
数据来源:pi.dev 官网、GitHub 仓库、创始人博客、Armin Ronacher 博客、包生态页、版本新闻、第三方评测
报告版本:v1.0
目录
1. Pi 是什么
一句话定位
Pi 是一个极简的终端 AI 编程 Agent 框架(agent harness)——它不试图成为万能工具箱,而是提供一个最小内核,让你按自己的工作流定制扩展。
核心理念
「Adapt Pi to your workflows, not the other way around.」
(让 Pi 适应你的工作流,而不是让你适应 Pi。)
Pi 的设计哲学可以浓缩为一句话:最小内核 + 最大自由。
- 最小内核:仅 4 个内置工具(read / write / edit / bash),系统提示不到 1000 token
- 最大自由:通过 TypeScript 扩展、Skills、提示模板、主题四个维度,把所有"功能"变成可选件
关键数据
| 指标 | 数值 |
|---|---|
| GitHub Stars | 77,786 |
| Forks | 9,575 |
| Open Issues | 79 |
| 总 Commits | 5,109 |
| 许可证 | MIT |
| 主要语言 | TypeScript |
| 创建时间 | 2025-08-09 |
| 最新版本 | v0.82.1(2026-07-25) |
| 社区包数量 | 58+ |
| 内置 Provider | 15+ |
与同类工具的定位差异
| 工具 | 定位 | 运行环境 | 开源 | 核心策略 |
|---|---|---|---|---|
| Pi | 极简 Agent 框架 | 终端 | MIT | 最小内核 + 扩展 |
| Claude Code | 全能编程助手 | 终端 | 闭源 | 功能全家桶 |
| Codex CLI | OpenAI 官方 CLI | 终端 | 开源 | 绑定 OpenAI |
| Cursor | IDE 集成 | GUI | 闭源 | 编辑器内嵌 |
| opencode | 开源 CLI | 终端 | 开源 | Vercel AI SDK |
| Amp | 代理编程平台 | 终端+Web | 闭源 | Oracle 子代理 |
Pi 不与 IDE 插件竞争,而是面向偏爱终端、追求极致自定义、需要嵌入集成或自动化编码流程的开发者。
2. 创始人与团队
Mario Zechner(badlogic)
| 维度 | 详情 |
|---|---|
| GitHub | badlogic |
| 代表作 | libGDX(Java 游戏开发框架,全球最流行的跨平台游戏引擎之一) |
| 其他项目 | Sitegeist(浏览器内编码代理)、agent-tools(CLI 工具集) |
| 技术背景 | 游戏引擎、Java、TypeScript、LLM 应用 |
| Pi 角色 | 创始人、核心架构师、主要维护者 |
Mario 的 AI 编程工具演进路径:ChatGPT 粘贴代码 → Copilot 自动补全(对他无效)→ Cursor → Claude Code → 自建 Pi。
他对 Claude Code 的体验变化是 Pi 诞生的直接原因:早期 Claude Code 功能简洁、完美适配工作流,但随后变成了"宇宙飞船",80% 功能无用,每次发布的系统提示和工具变化都会破坏工作流。
Armin Ronacher(mitsuhiko)
| 维度 | 详情 |
|---|---|
| GitHub | mitsuhiko |
| 代表作 | Flask(Python 最流行的 Web 框架)、Ruff(Rust linter)、Sentry SDK |
| 当前职位 | Earendil 公司 |
| Pi 角色 | 核心贡献者、架构顾问、生态推动者 |
Armin 在 2025 年 11 月发表的《Agent Design Is Still Hard》是 Pi 架构决策的重要理论支撑。他的核心观点:
- 不要用高层 Agent SDK 抽象——Vercel AI SDK 在工具调用时会崩塌,直接用 OpenAI/Anthropic 底层 SDK
- 显式管理缓存——Anthropic 的付费缓存机制看起来蠢,但可预测性和成本透明度远胜自动管理
- 强化(Reinforcement)是 Agent 循环的核心——每次工具调用后注入额外信息驱动 Agent 前进
- MCP 过度复杂——认同 Mario 的极简 CLI 方案,并基于此构建了 web-browser skill
两人合作的技术互补性
| 维度 | Mario Zechner | Armin Ronacher |
|---|---|---|
| 技术栈 | TypeScript / Java / 游戏引擎 | Python / Rust / Web 后端 |
| 强项 | TUI 渲染、用户交互、工具设计 | 架构设计、缓存策略、Agent 理论 |
| 贡献方向 | pi-tui、pi-coding-agent、核心功能 | pi-ai、Provider 集成、架构重构 |
项目迁移
2026 年 5 月,Pi 从 @mariozechner 个人命名空间迁移到 earendil-works 组织。v0.74.0 是新组织下的首个发布版本。旧包名已废弃,但支持 pi update --self 自动迁移。
3. 架构全景
四大核心包
Pi 是一个 TypeScript monorepo,由四个核心包构成:
1 | earendil-works/pi (monorepo) |
| 包名 | 作用 | 依赖 |
|---|---|---|
| @earendil-works/pi-ai | 统一多 Provider LLM API(Anthropic / OpenAI / Google / Azure / Bedrock 等) | 无(底层) |
| @earendil-works/pi-agent-core | Agent 运行时:工具调用、状态管理、会话生命周期 | pi-ai |
| @earendil-works/pi-tui | 终端 UI 库:差分渲染、无闪烁、保留模式 | 无 |
| @earendil-works/pi-coding-agent | 实际 CLI:会话管理、工具、主题、项目上下文 | 以上三个 |
Agent = Model + Harness
Pi 的设计直接体现了这个方程式:
- Model:通过 pi-ai 接入的任意 LLM
- Harness:四工具核心 + 扩展系统 = 你定制的 Agent 外壳
其他工具把 Harness 固化在产品里,Pi 把它暴露给用户重建。
四种运行模式
| 模式 | 命令 | 适用场景 |
|---|---|---|
| Interactive | pi | 完整 TUI 交互体验,日常编码 |
| Print/JSON | pi -p "query" / pi --mode json | 脚本自动化、CI/CD 集成、事件流 |
| RPC | JSON over stdin/stdout | 非 Node 集成(Python / Go / Rust 等语言) |
| SDK | import { ... } from '@earendil-works/pi-coding-agent' | 嵌入到自有应用(参见 OpenClaw 项目) |
安装方式
1 | # 一键安装(Linux/macOS) |
--ignore-scripts禁用依赖生命周期脚本。Pi 不需要安装脚本即可正常工作。
供应链安全
Pi 在供应链安全方面做了严格加固:
- 所有外部依赖固定到精确版本
.npmrc设置save-exact=true和min-release-age=2(依赖至少发布 2 天后才能使用)- 发布的 CLI 包含
npm-shrinkwrap.json锁定传递依赖 - CI 使用
npm ci --ignore-scripts安装 - 依赖生命周期脚本有明确的白名单
4. 极简设计哲学
这是 Pi 最核心、最反常识的部分。Mario 明确列出了 6 个"不建"的功能,每一个都有详细的设计理由。
4.1 四工具核心
Pi 的完整内置工具集只有 4 个:
| 工具 | 功能 | 参数 |
|---|---|---|
read | 读取文件内容(文本 + 图片) | path, offset(1-indexed), limit |
write | 创建/覆盖文件,自动创建父目录 | path, content |
edit | 精确文本替换(oldText 必须精确匹配) | path, oldText, newText |
bash | 执行 bash 命令 | command, timeout(可选) |
另外有 4 个只读工具(grep / find / ls)默认禁用,用于限制 Agent 修改文件或执行任意命令的场景。
完整系统提示不到 1000 token,对比 Claude Code 动辄 10000+ token 的系统提示,差距巨大。
Mario 的理由:所有前沿模型都经过大量 RL 训练,天生理解"编码代理"是什么,不需要 10000 token 的系统提示来教它。
4.2 六「不建」
| 功能 | Pi 的立场 | 替代方案 | 设计理由 |
|---|---|---|---|
| MCP 支持 | 不内置 | CLI 工具 + README;或安装 pi-mcp-adapter 扩展 | MCP 工具定义消耗 7-9% 上下文窗口,尚未开始工作 |
| 子代理 | 不内置 | bash 自我生成;或安装 pi-subagents 扩展 | 子代理是黑箱中的黑箱,零可见性,调试困难 |
| 权限弹窗 | 不内置 | 容器隔离;或安装 pi-permission-system 扩展 | 安全护栏基本是"安全剧场",代理能写代码又能运行代码 = 游戏结束 |
| 计划模式 | 不内置 | 写 PLAN.md 文件;或安装 pi-plan-mode 扩展 | 直接告诉代理"先思考不操作"就够,不需要专门模式 |
| 内置 To-Do | 不内置 | 写 TODO.md 文件;或安装 rpiv-todo 扩展 | To-Do 列表让模型更困惑,增加状态追踪负担 |
| 后台 Bash | 不内置 | 使用 tmux | 后台进程管理增加复杂度,tmux 提供完全可观测性 |
4.3 为什么不内置 MCP?
这是 Pi 最引发争议的决策。Mario 专门写了一篇博客论证。
MCP 的三大问题:
| 问题 | 数据 | 影响 |
|---|---|---|
| 上下文消耗 | Playwright MCP: 21 工具 / 13.7k tokens;Chrome DevTools MCP: 26 工具 / 18k tokens | 占用 7-9% 上下文窗口,还没开始工作就消耗殆尽 |
| 扩展困难 | 需拉取源码、理解代码库、让 Agent 也理解 | 修改成本高、周期长 |
| 不可组合 | 结果必须经过 Agent 上下文 | 无法保存到文件、管道传递、链式调用 |
替代方案:Bash + CLI 工具
Mario 用 4 个 Node.js 脚本(start / navigate / evaluate / screenshot)+ 1 个 225 token 的 README,替代了 Playwright MCP 的 21 个工具和 13.7k tokens。
| 维度 | MCP 服务器 | Bash + CLI |
|---|---|---|
| Token 消耗 | 13.7k-18.0k | 225(README) |
| 按需加载 | 始终注入上下文 | 仅需时读取 README |
| 可组合性 | 结果经过 Agent 上下文 | 可保存文件、管道传递、链式调用 |
| 扩展性 | 需理解整个代码库 | 写个新脚本,分钟级完成 |
Armin Ronacher 也认同这个观点,基于此构建了 web-browser skill。
4.4 YOLO 模式
Pi 默认且唯一:无权限检查、无安全护栏、无文件操作/命令许可提示。
Mario 的论证逻辑:
- 代理能写代码又能运行代码 = 任何安全护栏都可被绕过
- 防止数据外泄唯一方法是切断网络(使代理无用)或域名白名单(可被绕过)
- 所有人都在 YOLO 模式下才能真正高效工作
- 缓解建议:在容器中运行
引用 Simon Willison 的双 LLM 模式——即使是提出者也承认"这个方案相当糟糕"。
4.5 Terminal-Bench 2.0 验证
Pi 在 Terminal-Bench 2.0 排行榜上表现良好,与工具远更复杂的竞品不相上下。
更有趣的是 Terminal-Bench 团队自己的 Terminus 2——只给模型一个 tmux 会话,模型以文本发送命令并解析终端输出。无 fancy 工具、无文件操作、仅原始终端交互。与 Pi 的极简方法不谋而合。
结论:最小方法同样有效。
5. 扩展系统
四层定制
Pi 的扩展体系分为四个层次,可独立使用也可打包为 Pi Package 分发:
1 | Pi Package |
Extensions
Extensions 是 TypeScript 模块,拥有完整的系统访问权限,可以:
| 能力 | 说明 |
|---|---|
| 添加自定义工具 | 注册新的 Agent 工具 |
| 注册命令和快捷键 | Slash 命令、键盘快捷键 |
| 处理事件和注入 UI | 事件系统、自定义渲染组件 |
| 注入消息 | 每轮对话前注入上下文(feedforward) |
| 过滤消息历史 | 上下文管理、RAG、长期记忆 |
| 构建 UI 组件 | 自定义编辑器、状态栏、覆盖层 |
50+ 官方示例扩展涵盖:sub-agents、plan mode、permission gates、path protection、SSH execution、sandboxing、MCP integration、custom editors、status bars、overlays。
核心特性:让 Pi 自己改自己。 你可以让 Pi 在运行中修改自己的扩展代码,然后 /reload 热重载,继续工作。
Skills
Skills 遵循 Agent Skills 标准,通过 /skill:name 调用——用户手动或 Agent 自动触发。
核心设计:渐进式披露(Progressive Disclosure)——能力定义按需加载,而非每次都注入上下文。这避免了 MCP 式的上下文膨胀。
Prompt Templates
Markdown 文件,支持 {{ variable }} 变量插值。用 /templatename 展开。
1 | --- |
Pi Packages
打包后可通过 npm 或 git 安装:
1 | $ pi install npm:@foo/pi-tools |
社区包生态分析
截至 2026-07-26,Pi 包目录共有 58 个包。按功能分类:
| 分类 | 包数 | 代表包 |
|---|---|---|
| 子代理/工作流编排 | 12 | pi-subagents, pi-crew, pi-dynamic-workflows, pi-task, gentle-pi |
| 安全/权限 | 5 | pi-permission-system, pi-landstrip, pi-goal-list-loop-audit |
| 记忆/上下文 | 7 | pi-hermes-memory, pi-memory, open-zk-kb, context-mode, rpiv-todo |
| 搜索/浏览 | 6 | pi-web-access, pi-deepseek-search, pi-lean-search, agent-browser-native |
| 代码分析 | 4 | pi-lens, pi-shazam, pi-readseek, opencode-codebase-index |
| 模型/Provider | 5 | pi-cursor-sdk, pi-llama-cpp, pi-deepseek-usage, @alexanderfortin/pi-deepseek-usage |
| 计划/审查 | 4 | pi-plan-mode, pi-simplify, plannotator, ponytail |
| 集成/可观测性 | 5 | @braintrust/pi-extension, @raindrop-ai/pi-agent, pi-telegram, @pi-stef/atlassian |
| 预设/个人化 | 4 | bestony-pi-preset, superpowers-zh, @jachy/pi-git-sync, rpiv-ask-user-question |
| 其他 | 6 | pi-fabric, glimpseui, pi-mcp-adapter, chronika-engine, pi-theta, bigpowers |
亮点包:
bigpowers:73 个 Agent Skills,将 17 年软件工程规范综合为独立开发者方法论superpowers-zh:中文增强版 + 4 个中国原创技能,支持 20 款工具pi-doom:让 Pi 玩 DOOM(是的,你没看错)context-mode:节省 98% 上下文窗口,兼容 Claude Code / Gemini CLI / VS Code Copilot
6. 上下文工程
这是 Pi 区别于所有竞品的核心竞争力。Mario 的核心认知:上下文工程至关重要——精确控制进入模型上下文的内容才能产出更好的输出。
AGENTS.md 分层加载
Pi 在启动时从三个层级加载项目指令:
1 | ~/.pi/agent/AGENTS.md # 全局指令(所有项目通用) |
SYSTEM.md
可以完全替换或追加到默认系统提示,按项目定制。
Compaction(上下文压缩)
当接近上下文窗口限制时,自动摘要旧消息。完全可通过扩展自定义:
- 基于 Topic 的压缩
- 代码感知的摘要
- 使用不同模型做摘要
Mario 的实践:Pi 能在不压缩的情况下进行数百次交互的会话,而 Claude Code 不压缩则做不到。
跨 Provider 上下文交接
Pi 从一开始就支持跨提供商的上下文交接——这是其他工具普遍缺失的能力:
1 | import { getModel, complete, Context } from '@earendil-works/pi-ai'; |
技术实现:Anthropic 的思考痕迹被转换为 <thinking></thinking> 标签的内容块。各提供商插入的签名 blob 在后续请求中重放。
系统提示对比
| 工具 | 系统提示长度 | 隐藏注入 | 用户可控 |
|---|---|---|---|
| Pi | < 1,000 tokens | 无 | 完全 |
| Claude Code | 10,000+ tokens | 每次发布变化 | 不可见 |
| Codex | 较长 | 有 | 有限 |
| opencode | Claude 版本是 CC 的删减版 | 有 | 有限 |
Mario 的批评:现有工具在背后注入内容且不在 UI 中展示,使上下文控制变得极难。
工具结果拆分(独创功能)
Pi 的工具结果拆分为两部分——其他统一 API 中未见此设计:
| 部分 | 接收者 | 用途 |
|---|---|---|
output | LLM | 文本/JSON,进入模型上下文 |
details | UI | 结构化数据,仅显示不进入上下文 |
这意味着工具可以返回图片附件(以原生格式附加给 UI),而不占用 LLM 的上下文窗口。
7. 多模型支持
15+ 内置 Provider
| Provider | 认证方式 | 代表模型 |
|---|---|---|
| Anthropic | OAuth / API Key | Claude Opus 5 / Sonnet 5 / Fable 5 |
| OpenAI | API Key | GPT-5.6 / GPT-5.5 |
| API Key | Gemini 2.5 Pro/Flash | |
| Azure | API Key | Azure OpenAI |
| Amazon Bedrock | AWS | Bedrock 上的 Claude |
| Mistral | API Key | Mistral Large/Medium |
| Groq | API Key | 超低延迟推理 |
| Cerebras | API Key | 超低延迟推理 |
| xAI | OAuth / API Key | Grok 4.5 |
| Hugging Face | API Key | 开源模型托管 |
| Kimi (Moonshot) | OAuth / API Key | Kimi K3 / Kimi Coding |
| MiniMax | API Key | MiniMax M2.7 |
| NVIDIA | API Key | NIM 模型 |
| OpenRouter | OAuth / API Key | 多模型路由 |
| Ollama | 本地 | 任意本地模型 |
| Together AI | API Key | 开源模型托管 |
| Qwen Token Plan | API Key | 通义千问国际/中国版 |
会话中切换模型
1 | /model # 打开模型选择器 |
本地模型支持
llama.cpp 集成(v0.81.0 新增):
- 连接 llama.cpp 路由器
- 搜索下载 Hugging Face 模型
- 显式加载/卸载模型并显示实时进度
/llama命令管理
Ollama 集成:
- 本地推理,零成本
- 自定义模型配置
1 | const ollamaModel: Model<'openai-completions'> = { |
统一 LLM API 的四类后端
Pi 只需对接四种 API 即可覆盖几乎所有 LLM 提供商:
- OpenAI Completions API
- OpenAI Responses API(较新)
- Anthropic Messages API
- Google Generative AI API
为何不用 Vercel AI SDK?
Mario 和 Armin 都明确弃用了 Vercel AI SDK:
- Anthropic 的 web search 工具会破坏 Vercel SDK 的消息历史
- Anthropic 的缓存管理在直接用其 SDK 时更简单,错误信息也更清晰
- 自建可获得完全控制,API 设计随心所欲,表面积更小
8. 会话管理
树状会话结构
Pi 的会话以树而非线性列表存储。每个消息可以有多个子分支。
1 | 用户消息 A |
操作:
/tree:打开树状导航器,跳转到任意历史节点- 从任意节点分叉继续
- 所有分支存储在同一个文件中
- 按消息类型过滤
- 标记书签
导出与分享
| 功能 | 命令 | 输出 |
|---|---|---|
| HTML 导出 | /export | 可浏览的 HTML 文件 |
| GitHub Gist 分享 | /share | 可分享 URL,渲染会话 |
SQLite 会话存储(v0.81.0 新增)
会话从 JSONL 文件升级到 SQLite 存储,支持更高效的查询和管理。
差分渲染 TUI
Pi 自建了终端 UI 框架 pi-tui,而非使用现有的 Ink 或 Blessed。
选择追加式 TUI 而非全屏 TUI 的原因:
| 方案 | 采用者 | 优缺点 |
|---|---|---|
| 全屏 TUI | Amp, opencode | 丢失滚动缓冲区,需自实现搜索/滚动,鼠标滚动体验差 |
| 追加式 TUI | Claude Code, Codex, Droid, Pi | 保留原生滚动和搜索,限制 TUI 能力(Pi 认为这是优点) |
差分渲染算法:
- 首次渲染:输出所有行
- 宽度变化:清屏并完全重新渲染
- 正常更新:找到第一个变化的行,从该处重新渲染到末尾
- 防闪烁:使用同步输出转义序列(
CSI ?2026h/CSI ?2026l)
各终端表现:Ghostty / iTerm2 完美无闪烁;VS Code 内置终端有闪烁但比 Claude Code 少。
消息队列与中断
| 操作 | 行为 |
|---|---|
Enter | 发送 steering 消息——在当前工具完成后交付,中断剩余工具 |
Alt+Enter | 发送 follow-up——等待 Agent 完成后处理 |
支持 AbortController 全管道中断,包括工具调用。中断时返回部分结果。
9. 版本演进与生态
版本时间线
| 版本 | 日期 | 核心更新 |
|---|---|---|
| 0.5.0 | 2025-08-09 | 初始版本 |
| 0.73.0 | 2026-05-04 | 小米 MiMo Provider |
| 0.73.1 | 2026-05-07 | 迁移到 earendil-works 组织 |
| 0.74.0 | 2026-05-07 | 新组织首个版本 |
| 0.74.1 | 2026-05-16 | 图片生成支持、Together AI、Windows ARM64 |
| 0.75.x | 2026-05-17~18 | Windows 修复、移除 Codex fast 变体 |
| 0.79.5 | 2026-06-16 | Provider 作用域 API 密钥、HTTP 代理 |
| 0.79.7 | 2026-06-18 | 自动主题模式、Warp 终端图像 |
| 0.79.8 | 2026-06-19 | 选择性 Provider 入口、Mistral 缓存 |
| 0.79.9 | 2026-06-20 | 聊天模板思维兼容(vLLM/DeepSeek) |
| 0.79.10 | 2026-06-22 | 扩展压缩事件上下文 |
| 0.80.0 | 2026-06-23 | SDK API 迁移、Ctrl+J 换行 |
| 0.80.1 | 2026-06-23 | Bedrock 修复 |
| 0.80.3 | 2026-06-30 | Claude Sonnet 5 支持 |
| 0.80.4 | 2026-07-09 | GPT-5.6 元数据、提示缓存可见性 |
| 0.80.6 | 2026-07-09 | max 思维级别、输入定价层 |
| 0.80.7 | 2026-07-14 | 动态工具加载、Fable 5 xhigh/max |
| 0.80.8 | 2026-07-16 | 统一模型运行时、xAI OAuth |
| 0.80.9 | 2026-07-16 | Kimi K3 支持 |
| 0.80.10 | 2026-07-16 | Kimi Coding 思维兼容 |
| 0.81.0 | 2026-07-21 | llama.cpp 本地模型管理、Qwen Token Plan |
| 0.81.1 | 2026-07-21 | 可验证发布源码包 |
| 0.82.0 | 2026-07-24 | 约束式工具采样、OpenRouter/Kimi OAuth |
| 0.82.1 | 2026-07-25 | Claude Opus 5 支持 |
迭代节奏
- 6 周内发布 20 个版本(0.79.5 → 0.82.1)
- 平均每周 3+ 个版本
- 几乎每个版本都支持新模型
- 破坏性变更集中在 0.80.7 和 0.80.8(SDK API 重构)
关键里程碑
| 里程碑 | 版本 | 意义 |
|---|---|---|
| 项目创建 | 0.5.0 | 2025年8月,Mario 个人项目起步 |
| 组织迁移 | 0.74.0 | Armin 加入,专业化运营 |
| 统一模型运行时 | 0.80.8 | ModelRuntime 集中化模型配置和认证 |
| llama.cpp 集成 | 0.81.0 | 本地模型管理成为一等公民 |
| 约束式采样 | 0.82.0 | 工具可要求严格 JSON Schema 采样 |
| Claude Opus 5 | 0.82.1 | 最新最强模型支持 |
社区与生态
| 渠道 | 地址 | 活跃度 |
|---|---|---|
| GitHub Issues | github.com/earendil-works/pi/issues | 新贡献者 issues 默认自动关闭,维护者每日审核 |
| Discord | discord.com/invite/nKXTsAcmbT | 讨论和分享 |
| Hugging Face | huggingface.co/datasets/badlogicgames/pi-mono | 会话数据集共享 |
| 包生态 | pi.dev/packages | 58 个社区包 |
治理态度
Mario 的开源治理风格:
"如果你创造出更符合我需求的东西,我乐意加入你的努力。"
- 欢迎贡献,但保持独裁式管理
- 关闭 issue/PR 时给出原因
- 不满足需求时鼓励 fork
- 不追求用户数量(命名哲学:"给它一个完全无法被 Google 搜索到的名字")
10. 竞品对比与创作者启示
六维对比
| 维度 | Pi | Claude Code | Codex CLI | Cursor | opencode | Amp |
|---|---|---|---|---|---|---|
| 开源 | MIT | 闭源 | Apache | 闭源 | 开源 | 闭源 |
| 运行环境 | 终端 | 终端 | 终端 | IDE | 终端 | 终端+Web |
| 内置工具数 | 4 | 10+ | 4 | N/A | 10+ | N/A |
| 系统提示 | <1k token | 10k+ | 较长 | N/A | 较长 | N/A |
| Provider 数 | 15+ | 1(Anthropic) | 1(OpenAI) | 多 | 多 | 多 |
| 扩展机制 | TS Extensions | 有限 | 有限 | 插件 | Vercel SDK | 有限 |
| MCP 支持 | 扩展实现 | 内置 | 内置 | 内置 | 内置 | N/A |
| 子代理 | 扩展实现 | 内置 | 无 | 无 | 无 | Oracle |
| 会话结构 | 树状 | 线性 | 线性 | N/A | 线性 | 线性 |
| 会话内切模型 | 支持 | 不支持 | 不支持 | 支持 | 支持 | 支持 |
| 本地模型 | llama.cpp + Ollama | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
| 安全模式 | YOLO | 权限弹窗 | 权限弹窗 | N/A | 权限弹窗 | N/A |
| SDK/RPC | 支持 | 不支持 | 不支持 | N/A | 不支持 | N/A |
| 价格 | 免费 | $20+/月 | $20+/月 | $20+/月 | 免费 | $20+/月 |
谁该用 Pi
适合:
- 偏爱终端工作流的开发者
- 需要极致自定义工作流的团队
- 想在不同模型间灵活切换的用户
- 需要嵌入 Agent 到自有应用的产品团队
- 追求上下文工程精确控制的架构师
- 自托管模型用户
不适合:
- 需要 IDE 集成的开发者(用 Cursor)
- 不习惯终端操作的用户
- 需要开箱即用、不想配置的用户(用 Claude Code)
- 需要严格安全护栏的企业环境
Terminal-Bench 2.0 表现
Pi 在 Terminal-Bench 2.0 排行榜上表现良好,使用 Claude Opus 4.5 与 Codex、Cursor、Windsurf 等竞品竞争。每个任务 5 次试验,符合排行榜提交标准。
关键发现:最小方法同样有效——Terminus 2(仅 tmux + 文本命令)与工具远更复杂的代理不相上下,进一步佐证 Pi 的设计理念。
创作者启示
对于技术内容创作者,Pi 提供了丰富的选题素材:
| 选题角度 | 内容方向 | 目标读者 |
|---|---|---|
| 极简哲学 | 为什么 4 个工具就够了?最小内核 vs 功能全家桶 | 所有 AI 编程用户 |
| MCP 替代 | 不用 MCP 也能做浏览器自动化——Bash + CLI 方案 | 工具开发者 |
| 终端工作流 | 从 Claude Code 迁移到 Pi 的完整指南 | 终端爱好者 |
| 开源生态 | 58 个 Pi 包盘点:哪些值得装? | Pi 用户 |
| 上下文工程 | 1000 token 系统提示 vs 10000 token——谁更好? | Agent 开发者 |
| 多模型切换 | 一个会话里用 3 个模型:Pi 的跨 Provider 交接 | 成本优化者 |
| 本地模型 | 用 llama.cpp 在 Pi 中跑本地模型 | 隐私/成本敏感用户 |
技术趋势信号:
- 极简主义回归:功能堆砌到达瓶颈,开发者开始追求最小可用
- MCP 受到挑战:Bash + CLI 方案在 token 效率上碾压 MCP
- 终端 Agent 赛道升温:Pi 77k Star 证明终端 Agent 不是小众需求
- 开源 vs 闭源分化:Pi(MIT)vs Claude Code(闭源)的路线之争
- 多模型成为标配:会话内切换模型不再是奢望而是基本需求
对比 WorkBuddy
作为晚枫评测过的国产 Codex 替代品,WorkBuddy 与 Pi 的定位差异:
| 维度 | WorkBuddy | Pi |
|---|---|---|
| 定位 | 全功能 AI 编程助手 | 极简 Agent 框架 |
| 运行环境 | 桌面 GUI | 终端 |
| 开源 | 闭源 | MIT |
| MCP | 内置支持 | 不内置(可扩展) |
| 扩展机制 | Skills 系统 | TS Extensions + Skills |
| 目标用户 | 中国开发者 | 全球终端开发者 |
两者不是竞争关系而是互补——WorkBuddy 适合需要 GUI 和中文生态的用户,Pi 适合追求极致控制的终端重度用户。
相关阅读
- OpenCode 入门指南,从零基础到实战,看这一篇就够了!
- Claude Code 不让用了,但 AI 编程戒不掉?3 个平替续上
- 我做了个「开源搭子」skill:零基础也能秒推 GitHub,国内自动切镜像
附录:关键链接
报告声明:本研究基于 2026-07-26 的公开信息撰写。Pi 项目迭代极快(6 周内 20 个版本),部分信息可能已更新。



