别的编程助手替你定好了流程,Pi 让你自己写一个
你有一套自己的干活方式,工具偏不认
你手上五六个仓库,攒了一套自己的规矩:改完先跑哪几个检查、提交信息按什么格式写、哪些目录碰之前要先确认、发布前必须过一遍内部接口约定。这套东西是踩过坑攒出来的,你希望 AI 助手照着来。
第一个工具自带 plan 模式,每次先给你一份计划让你确认,可你要的不是计划,是那三个检查;第二个内置 todo 列表,把你的活切成它认为该有的样子;第三个每碰一次文件就弹权限确认,你一路点"允许"点到麻。想加自己的步骤,路只有两条——写一个 MCP server,起一个常驻进程再配一堆 JSON;或者 fork 源码改内部逻辑,然后每次上游发新版都重新合一遍冲突。
两条你都试过。最后还是回到自己开一个终端,手动复制粘贴。
四个工具,剩下的你自己加
Pi 是一个刻意做薄的终端 AI 编码代理:内核只给模型四个工具——读文件、写文件、改文件、跑命令。别的工具烤进产品里的那些能力,在 Pi 这里是你用 TypeScript 写进去的。
写一个扩展就是写一个 .ts 文件放进目录,不用 fork 内核,不用起独立进程。写好之后可以连同技能、提示词模板、主题一起打成一个包,用 npm 或 git 发出去——同事装一下,就拿到了你这套工作方式。

边界也说清楚:
- 它做:读写改文件与执行命令四件事、TypeScript 扩展、技能、提示词模板、主题、会话树与自动压缩、交互终端/JSON 输出/RPC/SDK 四种跑法、二十多家模型提供方
- 它不做:不内置 MCP、子智能体、plan 模式和待办列表——这些留给你自己写或装第三方包;也没有内置权限系统,默认以启动它的那个用户的权限运行,不弹确认框,需要更硬的边界请把它放进容器或沙箱里跑
- 源码以 MIT 开源,你在这里部署的是开源自托管版本
通过阿里云计算巢部署,几分钟开箱可用,并且已经自动对接阿里云百炼(DashScope)——不用自己去申请 Key、配 provider,部署完连上服务器敲 pi 就能对话。
它解决了什么问题
| 你原来怎么干 | 代价 | 用它之后 |
|---|---|---|
| 迁就工具自带的 plan / todo / 权限流程 | 你的流程被改成它认为该有的样子 | 内核不预设流程,你要的那几步自己写进去 |
| 写 MCP server 加一个能力 | 起常驻进程、配 JSON、调协议 | 写一个 TypeScript 文件放进扩展目录 |
| fork 源码改内部逻辑 | 每次上游更新都要重新合冲突 | 扩展在内核之外,升级不冲突 |
| 团队最佳实践靠口头传 | 新人上手全靠问,规矩容易走样 | 打成一个包发出去,装上就有 |
| 试错走偏了只能重开会话 | 前面聊出来的上下文全丢 | 会话是一棵树,回到岔路口换条路继续 |
| 本地装:装 Node、装包、配模型 Key | 装完还要挑 provider、找额度 | 一键部署,已对接百炼,敲 pi 就能用 |
回到开头那五六个仓库:你把那三个检查写成一个扩展,把提交信息格式写成一个提示词模板,把"碰这些目录先确认"做成自己那套确认流程——都是几个文件。然后打成一个包,同事 pi install 一下,整个组的 AI 助手就都按你这套规矩干活了。
而更深一层的变化是:AI 编程工具从"一个你要去适应的产品"变成"一套你自己攒的装备"。以前定制成本高,所以是你迁就它;现在你的工作流不用为工具让步,而且这套装备可以像依赖一样被安装、被版本管理、被整个团队共享——组里的经验第一次有了可执行的形态,不再只是文档里的一段叮嘱。
核心能力
内核只做该做的
对应开头最烦的那件事:工具替你决定了怎么干活。
- 四个内置工具 —— 读、写、改、跑命令,模型拿到的就这些,行为可预期
- 明确不做的清单 —— 没有 MCP、子智能体、plan 模式、内置待办、后台命令,项目把理由写在文档里,也把这些位置留给了你
想加什么,写一个文件
- TypeScript 扩展 —— 一个
.ts文件就是一个扩展,能改工具、改交互、改压缩策略,不碰内核 - 技能与提示词模板 —— 把一段做法写成技能目录,把常用指令写成
/命令,不用每次重复交代 - 打包分享 —— 扩展、技能、模板、主题装进一个 Pi 包,走 npm 或 git 分发,可全局装也可只装在某个项目里
一次对话可以有很多条岔路
试错走偏了不必推倒重来。
- 会话是一棵树 —— 全部历史存在一个 JSONL 文件里,
/tree原地翻看,选任意一个节点接着往下走,还能给关键节点打书签 - 分叉与克隆 —— 从某条历史消息叉出一个新会话,或把当前分支整段复制出来另开一条路
- 自动压缩 —— 上下文快满时自动概括旧消息接着干,完整历史仍在文件里可以回看

不止能在终端里敲
- 四种跑法 —— 交互终端、打印或 JSON 输出、RPC 供别的进程集成、SDK 嵌进自己的应用
- 接谁的模型都行 —— 二十多家提供方,订阅或 API Key 都支持,
/model随时切;也能接本地 llama.cpp
谁最该用
| 用户类型 | 典型场景 | 用它拿到什么 |
|---|---|---|
| 有固定工作流的资深开发 | 一套自己的检查、约定和发布步骤 | 工具照你的规矩走,不用 fork 也不用写 MCP |
| 想统一实践的小团队 | 组里规矩靠口头传,新人上手慢 | 把规矩打成包,装上就生效 |
| 做自动化和流水线的人 | 要把编码代理接进 CI 或自己的服务 | JSON 输出、RPC 和 SDK 三种接法 |
| 想长时间跑任务的人 | 本地机器一关机任务就断 | 跑在云服务器上,会话和上下文都留在服务器 |
技术支持
- 官方仓库:github.com/earendil-works/pi
- 官方文档:pi.dev
- 问题反馈:GitHub Issues
🚀 立即体验
→ 一键部署 Pi Coding Agent
部署完成后,远程连接创建出来的 ECS,敲 pi 进入交互界面。第一件该做的事:随便问它一句,看清屏幕最上方它加载了哪些上下文、技能和扩展——那份清单就是你之后要往里添东西的地方。