Pi.dev 深度研究报告

研究日期:2026-07-26
数据来源:pi.dev 官网、GitHub 仓库、创始人博客、Armin Ronacher 博客、包生态页、版本新闻、第三方评测
报告版本:v1.0


目录

  1. Pi 是什么
  2. 创始人与团队
  3. 架构全景
  4. 极简设计哲学
  5. 扩展系统
  6. 上下文工程
  7. 多模型支持
  8. 会话管理
  9. 版本演进与生态
  10. 竞品对比与创作者启示

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 Stars77,786
Forks9,575
Open Issues79
总 Commits5,109
许可证MIT
主要语言TypeScript
创建时间2025-08-09
最新版本v0.82.1(2026-07-25)
社区包数量58+
内置 Provider15+

与同类工具的定位差异

工具定位运行环境开源核心策略
Pi极简 Agent 框架终端MIT最小内核 + 扩展
Claude Code全能编程助手终端闭源功能全家桶
Codex CLIOpenAI 官方 CLI终端开源绑定 OpenAI
CursorIDE 集成GUI闭源编辑器内嵌
opencode开源 CLI终端开源Vercel AI SDK
Amp代理编程平台终端+Web闭源Oracle 子代理

Pi 不与 IDE 插件竞争,而是面向偏爱终端、追求极致自定义、需要嵌入集成或自动化编码流程的开发者。


2. 创始人与团队

Mario Zechner(badlogic)

维度详情
GitHubbadlogic
代表作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)

维度详情
GitHubmitsuhiko
代表作Flask(Python 最流行的 Web 框架)、Ruff(Rust linter)、Sentry SDK
当前职位Earendil 公司
Pi 角色核心贡献者、架构顾问、生态推动者

Armin 在 2025 年 11 月发表的《Agent Design Is Still Hard》是 Pi 架构决策的重要理论支撑。他的核心观点:

  1. 不要用高层 Agent SDK 抽象——Vercel AI SDK 在工具调用时会崩塌,直接用 OpenAI/Anthropic 底层 SDK
  2. 显式管理缓存——Anthropic 的付费缓存机制看起来蠢,但可预测性和成本透明度远胜自动管理
  3. 强化(Reinforcement)是 Agent 循环的核心——每次工具调用后注入额外信息驱动 Agent 前进
  4. MCP 过度复杂——认同 Mario 的极简 CLI 方案,并基于此构建了 web-browser skill

两人合作的技术互补性

维度Mario ZechnerArmin 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
2
3
4
5
earendil-works/pi (monorepo)
├── packages/ai # pi-ai:统一多 Provider LLM API
├── packages/agent # pi-agent-core:Agent 运行时引擎
├── packages/tui # pi-tui:终端 UI 框架
└── packages/coding-agent # pi-coding-agent:交互式编程 CLI
包名作用依赖
@earendil-works/pi-ai统一多 Provider LLM API(Anthropic / OpenAI / Google / Azure / Bedrock 等)无(底层)
@earendil-works/pi-agent-coreAgent 运行时:工具调用、状态管理、会话生命周期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 把它暴露给用户重建。

四种运行模式

模式命令适用场景
Interactivepi完整 TUI 交互体验,日常编码
Print/JSONpi -p "query" / pi --mode json脚本自动化、CI/CD 集成、事件流
RPCJSON over stdin/stdout非 Node 集成(Python / Go / Rust 等语言)
SDKimport { ... } from '@earendil-works/pi-coding-agent'嵌入到自有应用(参见 OpenClaw 项目)

安装方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 一键安装(Linux/macOS)
curl -fsSL https://pi.dev/install.sh | sh

# PowerShell(Windows)
powershell -c "irm https://pi.dev/install.ps1 | iex"

# npm
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

# pnpm
pnpm add -g --ignore-scripts @earendil-works/pi-coding-agent

# bun
bun add -g --ignore-scripts @earendil-works/pi-coding-agent

--ignore-scripts 禁用依赖生命周期脚本。Pi 不需要安装脚本即可正常工作。

供应链安全

Pi 在供应链安全方面做了严格加固:

  • 所有外部依赖固定到精确版本
  • .npmrc 设置 save-exact=truemin-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.0k225(README)
按需加载始终注入上下文仅需时读取 README
可组合性结果经过 Agent 上下文可保存文件、管道传递、链式调用
扩展性需理解整个代码库写个新脚本,分钟级完成

Armin Ronacher 也认同这个观点,基于此构建了 web-browser skill

4.4 YOLO 模式

Pi 默认且唯一:无权限检查、无安全护栏、无文件操作/命令许可提示

Mario 的论证逻辑:

  1. 代理能写代码又能运行代码 = 任何安全护栏都可被绕过
  2. 防止数据外泄唯一方法是切断网络(使代理无用)或域名白名单(可被绕过)
  3. 所有人都在 YOLO 模式下才能真正高效工作
  4. 缓解建议:在容器中运行

引用 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
2
3
4
5
Pi Package
├── Extensions # TypeScript 模块,全系统访问
├── Skills # 可复用 Agent 能力,按需加载
├── Prompt Templates # Markdown 提示模板,/name 展开
└── Themes # 终端视觉主题,热重载

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
2
3
4
5
---
description: Run a code review
---
Review the code for bugs, security issues, and error handling gaps.
Focus on: $1

Pi Packages

打包后可通过 npm 或 git 安装:

1
2
$ pi install npm:@foo/pi-tools
$ pi install git:github.com/badlogic/pi-doom

社区包生态分析

截至 2026-07-26,Pi 包目录共有 58 个包。按功能分类:

分类包数代表包
子代理/工作流编排12pi-subagents, pi-crew, pi-dynamic-workflows, pi-task, gentle-pi
安全/权限5pi-permission-system, pi-landstrip, pi-goal-list-loop-audit
记忆/上下文7pi-hermes-memory, pi-memory, open-zk-kb, context-mode, rpiv-todo
搜索/浏览6pi-web-access, pi-deepseek-search, pi-lean-search, agent-browser-native
代码分析4pi-lens, pi-shazam, pi-readseek, opencode-codebase-index
模型/Provider5pi-cursor-sdk, pi-llama-cpp, pi-deepseek-usage, @alexanderfortin/pi-deepseek-usage
计划/审查4pi-plan-mode, pi-simplify, plannotator, ponytail
集成/可观测性5@braintrust/pi-extension, @raindrop-ai/pi-agent, pi-telegram, @pi-stef/atlassian
预设/个人化4bestony-pi-preset, superpowers-zh, @jachy/pi-git-sync, rpiv-ask-user-question
其他6pi-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
2
3
~/.pi/agent/AGENTS.md      # 全局指令(所有项目通用)
├── parent/AGENTS.md # 父目录指令(团队/组织级别)
└── project/AGENTS.md # 当前项目指令(项目特定)

SYSTEM.md

可以完全替换或追加到默认系统提示,按项目定制。

Compaction(上下文压缩)

当接近上下文窗口限制时,自动摘要旧消息。完全可通过扩展自定义:

  • 基于 Topic 的压缩
  • 代码感知的摘要
  • 使用不同模型做摘要

Mario 的实践:Pi 能在不压缩的情况下进行数百次交互的会话,而 Claude Code 不压缩则做不到。

跨 Provider 上下文交接

Pi 从一开始就支持跨提供商的上下文交接——这是其他工具普遍缺失的能力:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { getModel, complete, Context } from '@earendil-works/pi-ai';

// 从 Claude 开始(带思考)
const claude = getModel('anthropic', 'claude-sonnet-4-5');
const context: Context = { messages: [] };
context.messages.push({ role: 'user', content: 'What is 25 * 18?' });
const claudeResponse = await complete(claude, context, { thinkingEnabled: true });
context.messages.push(claudeResponse);

// 切换到 GPT — 它会看到 Claude 的思考作为 <thinking> 标签
const gpt = getModel('openai', 'gpt-5.1-codex');
context.messages.push({ role: 'user', content: 'Is that correct?' });
const gptResponse = await complete(gpt, context);

// 再切换到 Gemini
const gemini = getModel('google', 'gemini-2.5-flash');
context.messages.push({ role: 'user', content: 'What was the question?' });
const geminiResponse = await complete(gemini, context);

技术实现:Anthropic 的思考痕迹被转换为 <thinking></thinking> 标签的内容块。各提供商插入的签名 blob 在后续请求中重放。

系统提示对比

工具系统提示长度隐藏注入用户可控
Pi< 1,000 tokens完全
Claude Code10,000+ tokens每次发布变化不可见
Codex较长有限
opencodeClaude 版本是 CC 的删减版有限

Mario 的批评:现有工具在背后注入内容且不在 UI 中展示,使上下文控制变得极难。

工具结果拆分(独创功能)

Pi 的工具结果拆分为两部分——其他统一 API 中未见此设计:

部分接收者用途
outputLLM文本/JSON,进入模型上下文
detailsUI结构化数据,仅显示不进入上下文

这意味着工具可以返回图片附件(以原生格式附加给 UI),而不占用 LLM 的上下文窗口。


7. 多模型支持

15+ 内置 Provider

Provider认证方式代表模型
AnthropicOAuth / API KeyClaude Opus 5 / Sonnet 5 / Fable 5
OpenAIAPI KeyGPT-5.6 / GPT-5.5
GoogleAPI KeyGemini 2.5 Pro/Flash
AzureAPI KeyAzure OpenAI
Amazon BedrockAWSBedrock 上的 Claude
MistralAPI KeyMistral Large/Medium
GroqAPI Key超低延迟推理
CerebrasAPI Key超低延迟推理
xAIOAuth / API KeyGrok 4.5
Hugging FaceAPI Key开源模型托管
Kimi (Moonshot)OAuth / API KeyKimi K3 / Kimi Coding
MiniMaxAPI KeyMiniMax M2.7
NVIDIAAPI KeyNIM 模型
OpenRouterOAuth / API Key多模型路由
Ollama本地任意本地模型
Together AIAPI Key开源模型托管
Qwen Token PlanAPI Key通义千问国际/中国版

会话中切换模型

1
2
3
/model          # 打开模型选择器
Ctrl+L # 快速切换
Ctrl+P # 循环收藏模型

本地模型支持

llama.cpp 集成(v0.81.0 新增):

  • 连接 llama.cpp 路由器
  • 搜索下载 Hugging Face 模型
  • 显式加载/卸载模型并显示实时进度
  • /llama 命令管理

Ollama 集成:

  • 本地推理,零成本
  • 自定义模型配置
1
2
3
4
5
6
7
8
9
10
11
12
const ollamaModel: Model<'openai-completions'> = {
id: 'llama-3.1-8b',
name: 'Llama 3.1 8B (Ollama)',
api: 'openai-completions',
provider: 'ollama',
baseUrl: 'http://localhost:11434/v1',
reasoning: false,
input: ['text'],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 128000,
maxTokens: 32000
};

统一 LLM API 的四类后端

Pi 只需对接四种 API 即可覆盖几乎所有 LLM 提供商:

  1. OpenAI Completions API
  2. OpenAI Responses API(较新)
  3. Anthropic Messages API
  4. Google Generative AI API

为何不用 Vercel AI SDK?

Mario 和 Armin 都明确弃用了 Vercel AI SDK:

  • Anthropic 的 web search 工具会破坏 Vercel SDK 的消息历史
  • Anthropic 的缓存管理在直接用其 SDK 时更简单,错误信息也更清晰
  • 自建可获得完全控制,API 设计随心所欲,表面积更小

8. 会话管理

树状会话结构

Pi 的会话以而非线性列表存储。每个消息可以有多个子分支。

1
2
3
4
5
用户消息 A
├── 助手回复 B(尝试方案 1)
│ └── 用户消息 C → 助手回复 D(方案 1 继续)
└── 助手回复 E(尝试方案 2)
└── 用户消息 F → 助手回复 G(方案 2 继续)

操作:

  • /tree:打开树状导航器,跳转到任意历史节点
  • 从任意节点分叉继续
  • 所有分支存储在同一个文件中
  • 按消息类型过滤
  • 标记书签

导出与分享

功能命令输出
HTML 导出/export可浏览的 HTML 文件
GitHub Gist 分享/share可分享 URL,渲染会话

示例会话

SQLite 会话存储(v0.81.0 新增)

会话从 JSONL 文件升级到 SQLite 存储,支持更高效的查询和管理。

差分渲染 TUI

Pi 自建了终端 UI 框架 pi-tui,而非使用现有的 Ink 或 Blessed。

选择追加式 TUI 而非全屏 TUI 的原因:

方案采用者优缺点
全屏 TUIAmp, opencode丢失滚动缓冲区,需自实现搜索/滚动,鼠标滚动体验差
追加式 TUIClaude Code, Codex, Droid, Pi保留原生滚动和搜索,限制 TUI 能力(Pi 认为这是优点)

差分渲染算法:

  1. 首次渲染:输出所有行
  2. 宽度变化:清屏并完全重新渲染
  3. 正常更新:找到第一个变化的行,从该处重新渲染到末尾
  4. 防闪烁:使用同步输出转义序列(CSI ?2026h / CSI ?2026l

各终端表现:Ghostty / iTerm2 完美无闪烁;VS Code 内置终端有闪烁但比 Claude Code 少。

消息队列与中断

操作行为
Enter发送 steering 消息——在当前工具完成后交付,中断剩余工具
Alt+Enter发送 follow-up——等待 Agent 完成后处理

支持 AbortController 全管道中断,包括工具调用。中断时返回部分结果。


9. 版本演进与生态

版本时间线

版本日期核心更新
0.5.02025-08-09初始版本
0.73.02026-05-04小米 MiMo Provider
0.73.12026-05-07迁移到 earendil-works 组织
0.74.02026-05-07新组织首个版本
0.74.12026-05-16图片生成支持、Together AI、Windows ARM64
0.75.x2026-05-17~18Windows 修复、移除 Codex fast 变体
0.79.52026-06-16Provider 作用域 API 密钥、HTTP 代理
0.79.72026-06-18自动主题模式、Warp 终端图像
0.79.82026-06-19选择性 Provider 入口、Mistral 缓存
0.79.92026-06-20聊天模板思维兼容(vLLM/DeepSeek)
0.79.102026-06-22扩展压缩事件上下文
0.80.02026-06-23SDK API 迁移、Ctrl+J 换行
0.80.12026-06-23Bedrock 修复
0.80.32026-06-30Claude Sonnet 5 支持
0.80.42026-07-09GPT-5.6 元数据、提示缓存可见性
0.80.62026-07-09max 思维级别、输入定价层
0.80.72026-07-14动态工具加载、Fable 5 xhigh/max
0.80.82026-07-16统一模型运行时、xAI OAuth
0.80.92026-07-16Kimi K3 支持
0.80.102026-07-16Kimi Coding 思维兼容
0.81.02026-07-21llama.cpp 本地模型管理、Qwen Token Plan
0.81.12026-07-21可验证发布源码包
0.82.02026-07-24约束式工具采样、OpenRouter/Kimi OAuth
0.82.12026-07-25Claude Opus 5 支持

迭代节奏

  • 6 周内发布 20 个版本(0.79.5 → 0.82.1)
  • 平均每周 3+ 个版本
  • 几乎每个版本都支持新模型
  • 破坏性变更集中在 0.80.7 和 0.80.8(SDK API 重构)

关键里程碑

里程碑版本意义
项目创建0.5.02025年8月,Mario 个人项目起步
组织迁移0.74.0Armin 加入,专业化运营
统一模型运行时0.80.8ModelRuntime 集中化模型配置和认证
llama.cpp 集成0.81.0本地模型管理成为一等公民
约束式采样0.82.0工具可要求严格 JSON Schema 采样
Claude Opus 50.82.1最新最强模型支持

社区与生态

渠道地址活跃度
GitHub Issuesgithub.com/earendil-works/pi/issues新贡献者 issues 默认自动关闭,维护者每日审核
Discorddiscord.com/invite/nKXTsAcmbT讨论和分享
Hugging Facehuggingface.co/datasets/badlogicgames/pi-mono会话数据集共享
包生态pi.dev/packages58 个社区包

治理态度

Mario 的开源治理风格:

"如果你创造出更符合我需求的东西,我乐意加入你的努力。"

  • 欢迎贡献,但保持独裁式管理
  • 关闭 issue/PR 时给出原因
  • 不满足需求时鼓励 fork
  • 不追求用户数量(命名哲学:"给它一个完全无法被 Google 搜索到的名字")

10. 竞品对比与创作者启示

六维对比

维度PiClaude CodeCodex CLICursoropencodeAmp
开源MIT闭源Apache闭源开源闭源
运行环境终端终端终端IDE终端终端+Web
内置工具数410+4N/A10+N/A
系统提示<1k token10k+较长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 中跑本地模型隐私/成本敏感用户

技术趋势信号:

  1. 极简主义回归:功能堆砌到达瓶颈,开发者开始追求最小可用
  2. MCP 受到挑战:Bash + CLI 方案在 token 效率上碾压 MCP
  3. 终端 Agent 赛道升温:Pi 77k Star 证明终端 Agent 不是小众需求
  4. 开源 vs 闭源分化:Pi(MIT)vs Claude Code(闭源)的路线之争
  5. 多模型成为标配:会话内切换模型不再是奢望而是基本需求

对比 WorkBuddy

作为晚枫评测过的国产 Codex 替代品,WorkBuddy 与 Pi 的定位差异:

维度WorkBuddyPi
定位全功能 AI 编程助手极简 Agent 框架
运行环境桌面 GUI终端
开源闭源MIT
MCP内置支持不内置(可扩展)
扩展机制Skills 系统TS Extensions + Skills
目标用户中国开发者全球终端开发者

两者不是竞争关系而是互补——WorkBuddy 适合需要 GUI 和中文生态的用户,Pi 适合追求极致控制的终端重度用户。


相关阅读


附录:关键链接

资源地址
官网https://pi.dev
GitHubhttps://github.com/earendil-works/pi
文档https://pi.dev/docs/latest
包目录https://pi.dev/packages
版本新闻https://pi.dev/news
Discordhttps://discord.com/invite/nKXTsAcmbT
创始人博客https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
反 MCP 博客https://mariozechner.at/posts/2025-11-02-what-if-you-dont-need-mcp/
Armin 博客https://lucumr.pocoo.org/2025/11/21/agents-are-hard/
OpenClaw 集成示例https://github.com/OpenClaw/OpenClaw
Terminal-Bench 结果https://gist.github.com/badlogic/f45e8f6e481e5ab7d3a50659da84edaa

报告声明:本研究基于 2026-07-26 的公开信息撰写。Pi 项目迭代极快(6 周内 20 个版本),部分信息可能已更新。