Pi — 极简可自扩展的 Coding Agent

一个刻意保持小内核的终端 Agent Harness:不写死工作流,而是用 TypeScript 扩展、Skills、提示词模板和主题,让 Agent 按你的方式自我改造。

⭐ GitHub 88.2k 许可证 MIT 作者 Mario Zechner (badlogic) / earendil-works 支持 15+ 模型供应商

Pi 是什么?

Pi(原名 pi-mono,现归属 earendil-works/pi)是一个极简终端 Coding Agent Harness。它的设计哲学是「Primitives, not features」:核心只提供 agent 循环、工具调用和 TUI,其他一切——sub-agents、plan mode、权限门禁、沙箱——都以可组合的扩展形式存在。需要某个功能?直接让 Pi 自己现场写出来,/reload 后继续干活。

🧩

自我改造的 Harness

扩展是拥有完整权限的 TypeScript 模块:可访问工具、命令、快捷键、事件和整个 TUI。官方提供 50+ 示例(sub-agent、plan mode、permission gate、SSH 执行、沙箱等),改完 /reload 即刻生效。

🔌

15+ 供应商、数百模型

Anthropic、OpenAI、Google、Azure、Bedrock、Mistral、Groq、Cerebras、xAI、Kimi、MiniMax、OpenRouter、Ollama 等,API Key 或 OAuth 订阅均可。会话中用 /model 或 Ctrl+L 随时切换。

🌳

树状会话历史

会话以树结构存储在单个文件中,/tree 可跳回任意节点分叉重试;/export 导出 HTML,/share 一键上传 gist 生成可分享的渲染链接。

🎯

真正的上下文工程

极简系统提示词 + AGENTS.md / SYSTEM.md 项目指令 + 可编程 Compaction + Skills 渐进披露 + 扩展注入动态上下文(RAG、长期记忆),上下文窗口完全由你掌控。

四种运行模式

交互式 TUI、pi -p 打印/JSON 流模式(适合脚本)、stdin/stdout JSONL 的 RPC 模式、以及可嵌入 Node.js 应用的 SDK——OpenClaw 就是真实集成案例。

🛡️

供应链加固

依赖精确锁版、shrinkwrap 锁定传递依赖、安装默认 --ignore-scripts、CI 定期 npm audit。权限边界交给容器化(Gondolin micro-VM / Docker / OpenShell)而非内置黑盒。

Monorepo 架构

Pi 以 monorepo 形式组织,每个包都可独立使用——这也是它被称为「Agent 工具箱」而非单纯 CLI 的原因。

作用
pi-coding-agent交互式 coding agent CLI(终端用户入口)
pi-agent-coreAgent 运行时:工具调用与状态管理
pi-ai统一多供应商 LLM API(OpenAI / Anthropic / Google …)
pi-tui带差分渲染的终端 UI 库
pi-telemetry厂商中立的遥测契约、参考适配器与类型 schema

30 秒上手

# 安装(npm 全局)
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

# 或使用安装脚本(Linux / macOS)
curl -fsSL https://pi.dev/install.sh | sh

# 在项目目录中启动
pi

# 登录订阅制供应商,或先设置 API Key
export ANTHROPIC_API_KEY=sk-ant-...

与主流 Coding Agent 对比

对比对象为当前主流的终端/IDE 编码 Agent。GitHub 星数为 2026-08-12 实时查询结果,仅反映社区热度,不代表能力强弱。

维度 Pi Claude Code Codex CLI Gemini CLI OpenCode Aider
出品方 earendil-works
(badlogic 个人项目起家)
Anthropic OpenAI Google Anomaly(社区驱动) Paul Gauthier(社区)
开源许可 MIT 源码可见·非 OSS Apache-2.0 Apache-2.0 MIT Apache-2.0
GitHub ⭐ 88.2k 141k 105k 106k 196k 48.1k
技术栈 TypeScript / Bun TypeScript(分发为二进制/npm) Rust TypeScript / Node TypeScript / Bun + Go TUI Python
模型支持 15+ 供应商,可自定义 provider 与 OAuth 仅 Anthropic 系(含 Bedrock/Vertex) 主推 OpenAI,支持部分兼容端点 主推 Gemini,支持兼容端点 75+ 供应商(Models.dev) 主流 API 几乎全支持(litellm)
扩展机制 TypeScript 扩展 + Skills + 提示词模板 + 主题,可热重载、可打包分享;官方 50+ 示例 插件/Skills/Hooks/MCP,生态最成熟 MCP + AGENTS.md,扩展性较克制 MCP + 扩展,GEMINI.md 插件 + MCP,配置灵活 脚本化 + lint/test 钩子,偏轻量
内置功能取向 刻意极简:无内置 sub-agents / plan mode,需扩展实现(「Primitives, not features」) 全家桶:sub-agents、plan mode、权限模式齐全 云端沙箱任务 + 本地 CLI 双形态 内置 Google 搜索等工具,免费额度大 内置 plan/build 双 agent,开箱即用 专注 git 提交式编辑,功能单一但深
权限/安全模型 默认继承用户权限,无内置权限系统;官方推荐容器化(micro-VM / Docker / OpenShell) 内置权限模式 + 沙箱(seatbelt/bubblewrap) 内置审批模式 + 沙箱 内置审批 + 沙箱选项 基础权限确认 命令执行需确认,粒度较粗
会话管理 树状分支、单文件存储、/share 生成可分享链接、导出 HTML 会话恢复/分叉,云同步(订阅) 本地会话恢复 checkpoint 回滚 会话分享链接 基于 git 历史,弱会话概念
编程化集成 SDK + RPC (JSONL) + JSON 事件流;OpenClaw 已集成 SDK + GitHub Actions SDK + CI 集成 SDK,生态整合中 SDK + 服务器模式 脚本管道友好
适合人群 想掌控 agent 每个字节、喜欢 DIY 工作流的开发者 追求最强开箱体验与生态的团队 OpenAI 生态用户、云端异步任务 预算敏感、Gemini 免费额度用户 想要开源全家桶、多模型自由切换 喜欢 git 原生工作流的极简主义者
⚠️ 说明:星数与功能特性截至 2026-08-12。Claude Code 仓库为源码可见但非 OSI 认证开源许可;各家功能迭代极快,选型前建议以官方文档为准。

一句话选型建议

没有银弹,只有匹配。按团队画像快速对号入座:

选 Pi,如果——

你是「harness 黑客」:厌倦被厂商写死的工作流,想自己定义 agent 行为、UI、上下文策略,或者需要把 agent 嵌入自己的系统(SDK/RPC)。Pi 是唯一一个把「自我改造」当一等公民的 agent。

选 Claude Code,如果——

你要最强的开箱即用体验、最成熟的插件生态,且接受绑定 Anthropic 模型与订阅制。

选 Codex CLI,如果——

你在 OpenAI 生态内,重视云端沙箱里跑异步长任务,或需要 Rust 二进制的性能与单文件分发。

选 Gemini CLI,如果——

预算敏感:个人免费额度慷慨,Gemini 长上下文适合大库阅读,且你常用 Google 系工具。

选 OpenCode,如果——

你想要「开源版 Claude Code」:开箱即用的 plan/build 双 agent,75+ 模型随便换,社区迭代极快。

选 Aider,如果——

你要的是「git 里长出来的 pair programmer」:每次修改即提交、diff 清晰、可脚本化,不要花哨 TUI。