本文记录 pi(@earendil-works/pi-coding-agent)这个终端 AI 编码助手的基本情况:如何安装、有哪些核心特性、本机装了哪些插件,以及它的官网 pi.dev 提供了什么。
pi 是什么
pi 是一个极简的终端编码助手(coding agent)。它的定位与其他"大而全"的 agent 相反:核心保持最小,只提供最基本的工具,其余能力全部通过 TypeScript 扩展、Agent Skills、Prompt Templates、主题和 pi 包按需叠加。
- 开发者:Mario Zechner(badlogic)及 Earendil Works 团队
- 开源:MIT,仓库在 GitHub
- 官网:https://pi.dev
- 发布渠道:npm(
@earendil-works/pi-coding-agent) - 依赖:Node.js 22+(也支持 Bun 全局安装)
安装与认证
安装方式(任选其一):
| |
官方安装器还提供 Windows PowerShell 脚本(irm https://pi.dev/install.ps1 | iex)。
认证方式:
- 订阅:
/login登录 Anthropic Claude Pro/Max、OpenAI ChatGPT Plus/Pro(Codex)、GitHub Copilot 等 - API Key:设置
ANTHROPIC_API_KEY等环境变量后直接启动,或通过/login选择 API Key 提供商 - 支持 15+ 提供商、数百个模型:Anthropic、OpenAI、Google、Azure、Bedrock、Mistral、Groq、Cerebras、DeepSeek、NVIDIA、Hugging Face、Kimi、MiniMax、OpenRouter、Ollama 等
在任意项目目录运行 pi 即进入交互式 TUI,压 Enter 提交,Ctrl+L 切换模型,Ctrl+P 在收藏模型间循环。
核心特性
默认只有四个工具
pi 默认只给模型四个工具,分别是读、写、编辑和跑命令:
| 工具 | 作用 |
|---|---|
| read | 读取文件内容 |
| write | 写入/创建文件 |
| edit | 精确编辑文件 |
| bash | 执行 shell 命令 |
这正是 pi 的设计哲学:不给模型一堆花哨工具,先把这四件事做到可靠,其余能力你按需加。
极小的系统提示词
pi 主打"非常省 token"(very token efficient):系统提示词被控制在极小规模,量级约 1000 token,把上下文窗口尽量留给真实的项目内容。核心越精简,提示缓存越便宜,长会话也更耐用。
四种运行模式
- interactive:完整 TUI 交互,日常使用
- print / JSON:
pi -p "query"非交互输出,适合脚本;--mode json输出事件流 - RPC:stdin/stdout 上的 JSON 协议,供非 Node 进程集成
- SDK:把 pi 嵌入自己的应用,例如 OpenClaw 等真实集成
会话树与分支
- 会话以树结构存储,
/tree可以回到任意历史节点继续 - 所有分支都在同一个会话文件里,
/export导出 HTML /share上传到 GitHub Gist 生成可分享链接,方便展示完整会话
运行中介入
- Enter:向正在运行的 agent 发送 steering 消息,当前工具执行完后立即生效
- Alt+Enter:排队 follow-up,等当前回合结束再执行
- 不用干等,边跑边插话
上下文工程
AGENTS.md:项目级说明,启动时从~/.pi/agent/、父目录和当前目录加载SYSTEM.md:按项目替换或追加系统提示词- Compaction:接近上下文上限时自动压缩旧消息,也可用扩展实现主题式或按代码语义的压缩
- Skills:按需加载的能力包,先渐进披露、不影响提示缓存
- Prompt Templates:目录下放 Markdown,
/名称直接展开 - Extensions:TypeScript 模块,可在每一轮前注入消息、过滤历史、实现 RAG 或长期记忆
哲学:原语而非功能
pi 刻意不内置这些功能:MCP、子代理、权限弹窗、计划模式、待办清单、后台 bash。
- 需要用 MCP?装一个适配扩展,或按官方建议直接写带 README 的 CLI 工具
- 需要子代理?装 pi-subagents,或 spawn 多个 pi
- 需要权限确认?在容器里跑,或用扩展自建确认流程(有扩展,最热门的那个就是,权限去而呢我认为会拖累开发速度,不建议,pi的设计哲学也不建议)
官方博客作过完整论述:What if you don’t need MCP? 与 pi coding agent 的长文。好处是核心几乎没有强加的偏好,坏处是很多"开箱即用"的东西要自己装(这也是本文下半部分的意义)。
本机已安装插件
用 pi list 可以查看当前安装的来源,下面按功能分类介绍本机装的插件。
@joyanhui 系列(自己发布的三个)
- @joyanhui/pi-ext-bar-cursor:输入框光标美化。把 pi 默认的方块(反视频)光标替换为终端原生竖线(DECSCUSR),保留
CURSOR_MARKER定位,中文 IME 候选窗不受影响。见 pi agent美化插件:输入框光标改为常见的竖线。 - @joyanhui/pi-ext-float-term:浮动终端。基于 node-pty + overlay,在 pi 内随时唤起 fish、lazygit、yazi、gcp 的浮动终端,支持完整 ANSI 终端模拟、alternate screen 和宽字符。见 pi 插件:浮动终端(float-term)。 主要是在不离开pi的情况下,快捷键执行一些常用命令,不过pi 是支持 !命令(pi会把命令返回当作上下文) 或者 !!命令(pi不会读取命令输出)
- @joyanhui/pi-ext-git-changes:git 工作区变更查看器。一键浮动显示 staged / unstaged / untracked 文件列表,回车把路径填进输入框、e 键 nvim 打开、y 键复制路径,footer 常驻变更计数。见 pi 插件:随时查看工作区文件变更(git-changes)。
第三方便利插件
- @narumitw/pi-subagents:子代理,不用解释了把。
- @narumitw/pi-goal:目标模式。
/goal <目标>对标 codex的goal模式。 - @narumitw/pi-btw:侧边问题。
/btw <问题>在不打断主对话的前提下问个临时小问题,答案在独立全屏界面展示,主任务不被污染。 - pi-mcp-adapter:必装 MCP 适配器。把 MCP server 的工具桥接进 pi,同时强调"按需加载"以避免把上下文窗口烧在大量未使用的工具定义上(官方写过长文说明为什么可能需要放弃 MCP,这是它的取舍折中)。
一个典型的 pi 工作流是这样串起来的:bar-cursor 保证输入框光标舒服、git-changes 随时确认改动了什么、float-term 需要看文件/跑命令/提交代码时不用切终端、subagents 把大任务拆给子代理并行、pi-goal 让长目标在后台自己推进、pi-btw 顺手问答不打断主线。
和DeepSeek Harness的区别以及一些想法
- pi是凭借自身的能力,从一众Agent里面杀出来的。它的优秀不是凭借大厂/大模型做靠山的。而且它是已经被众多程序员验证过的,在ClaudeCode Codex OpenCode 中突围的工具,它的优秀毋庸置疑。
- pi的优秀不仅仅是在在诸多测评里面的可以用更低的成本更短的时间获得更好的代码质量和项目完成度,也不仅仅是它的SDK+插件的这个理念,也不仅仅是它基座的稳健。更重要是 pi在维持如此优秀的理念的情况下,它成熟度非常高 细节体验更做的很到位。
- pi的成功 和 DSH 的异曲同工(or抄作业),证明了这个基座+插件的理念是对的。
- DSH背靠DeepSeek,目前虽然尚不成熟,但是已经有生产力。而且以后可能DeepSeek的模型会基于DSH调优。为了前景也会不错,但是眼下尝鲜使用或者围绕DSH做插件生态的业务是可以的,没有这方面需求,并且不会把d4p模型当作主力的话,建议可以先关注。
最后,其实主流的这几个Agent工具都差不多,切换成本也不高,喜欢什么用什么就好 没必要跟风。但是 不建议 用 oh my pi 这类东西。pi 不安装任何插件 就已经