嗨,我是小华同学,专注解锁高效工作与前沿AI工具!每日精选开源技术、实战技巧,助你省时50%、领先他人一步。👉免费订阅,与10万+技术人共享升级秘籍!
不用Copilot,不用Cursor:程序员开始把AI搬进终端。你有没有过这样的经历——想用AI帮写代码,结果要在浏览器、IDE、终端之间来回切换,Copilot要收费,ChatGPT要翻墙,Cursor吃内存,好不容易配置好了,开发节奏也碎了。
我最近挖到一个开源项目,叫 pi(π),定位很有意思:极简终端编程Harness。它不需要图形界面,不需要IDE插件,直接在你的终端里跑AI编程,而且支持15家以上的模型提供商。
今天就把我的使用体验完整分享出来。
背景:为什么终端编程值得关注
先说一个判断:未来两年,AI编程的主战场会从GUI转向CLI。
原因很简单。GUI工具的响应速度受限于渲染层,而终端程序可以直接拿到stdout,在毫秒级别上反馈结果。更重要的是,程序员每天有大量时间泡在终端里,工具越靠近工作流,效率损耗越小——pi正是沿着这个方向做的减法。
目前市面上的AI编程工具分两类:一类是GitHub Copilot、Cursor这类GUI插件,功能强但侵入性高、资源消耗大;另一类是直接调用API的脚本,需要自己处理流式输出、上下文管理和多轮对话。pi做的事情,是在这两者之间找到一个极简的平衡点。
它本质上是一个Harness——你可以理解为"AI编程的脚手架",帮你把模型、工具、会话管理这些脏活累活封装掉,你只需要专注写prompt和看结果。
核心原理:模块化架构与树形会话
pi整个项目由5个核心包组成,分工非常清晰:
pi-agent-core 是运行时核心,负责Agent的工具调用和状态管理。你可以把它理解为AI编程机器人的"大脑",它知道什么时候该调用什么工具,怎么维护多轮对话的状态。
pi-ai 是统一接口层,同时支持15家模型提供商。这个设计很实用——你不需要因为换模型而去学习新的API,直接在配置里改一行就能切换。支持列表包括OpenAI、Anthropic、Google、MiniMax、小米MiMo等国内外主流平台。
pi-coding-agent 是对外的CLI入口,封装了4种运行模式:交互模式、JSON模式、RPC模式和SDK模式。这里重点说一下交互模式——它会在终端里跑一个实时UI,效果大概是这个样子:

这个UI用的是pi-tui(pi自己的终端UI库),实现了差分渲染——简单说就是只更新变化的部分,所以不会有闪烁感,体验比传统终端程序流畅很多。
还有一个我认为是杀手级的特性:树形会话结构。传统的AI编程工具都是线性对话,你问完一个问题,下一个问题是在前一个答案基础上继续。但实际开发中,你会发现一个分支跑偏了想回到之前的节点,或者同时探索两种方案,线性结构就很不方便。pi的树形结构允许你随时开分支、切换分支,甚至把整个会话分享成HTML文件发给同事。

功能能力:四大模式覆盖真实开发场景
说几个我实际用下来觉得有价值的场景。
场景一:日常代码补全和片段生成。 交互模式下,你直接在终端描述需求,AI返回代码片段,确认后粘贴进文件。这比在浏览器和IDE之间切换快很多,尤其适合单文件修改这种轻量场景。
场景二:JSON模式做自动化脚本。 如果你需要把AI编程接入自己的流水线,JSON模式可以直接返回结构化的结果,方便你做解析和后续处理。比如自动生成测试用例、自动写文档注释,这类需求用JSON模式非常顺手。
场景三:RPC模式做远程服务。 把pi当成一个本地AI服务启动,你的其他程序可以通过RPC调用它。这对于需要在团队内部署统一AI编程能力的场景很实用。
场景四:SDK模式嵌入自己的应用。 pi提供了完整的SDK,如果你想在自己的工具里集成AI编程能力,直接import就能用,不需要自己实现模型调用和状态管理。
另外值得提的是扩展性。pi支持TypeScript扩展(Extensions)、技能包(Skills)、提示模板(Prompt Templates)和主题(Themes)。这意味着你可以把它定制成自己团队的工作流——比如定义一套符合你们代码规范的提示模板,或者开发一个内部专用的扩展。

上图是社区里的一个Doom扩展,把AI对话做成了游戏风格——虽然不是刚需,但说明这个扩展体系的灵活性是真实存在的。
应用场景:谁适合用pi
我的判断是,已经习惯在终端工作、有一定自主配置能力的开发者,是pi的核心用户。如果你符合以下特征,pi大概率会进你的日常工具箱:
每天大量时间在终端里工作,用Tmux/Screen分屏,讨厌频繁切换窗口;对某个特定模型有偏好(比如你只用MiniMax或者只用Claude),不想被绑定在某个IDE的生态里;团队需要一套统一的AI编程脚手架,但要保持各自的本地环境干净。
反过来说,如果你追求开箱即用、零配置,或者你需要的是深度IDE集成(如实时代码检查、引用跳转),现有的GUI工具链还是更成熟的选择。
还有一个值得关注的场景:上下文工程(Context Engineering)。pi原生支持AGENTS.md和SYSTEM.md这类上下文注入文件,并且内置了Compaction自动摘要功能——当对话上下文过长时,会自动压缩保留关键信息。这对于处理大型代码库、复杂多轮调试非常有帮助。
部署使用:5分钟上手
pi的安装非常简单,一行命令搞定:
或者如果你用npm:
安装完成后,首次运行会引导你配置API Key。pi支持环境变量配置,也支持交互式输入。建议把Key放到环境变量里,省去每次输入的麻烦。
基础使用:
配置文件在 ~/.config/pi/config.json,你可以在这里预设默认模型、主题、扩展等。
文档这块目前还比较简略,高级功能的配置说明不够充分。不过项目源码注释覆盖率超过70%,关键函数都有使用示例和参数说明,TypeDoc文档也比较完整——看源码基本上能完整还原用法,这对于开源项目来说是加分项。
总结
用了一段时间,我的感受是:pi是一个定位清晰、克制做减法的项目。它没有试图做一个功能堆砌的"AI IDE",而是专注于把终端编程这件事做透。
工具越靠近工作流,效率损耗越小——这是pi最底层的逻辑,也是它最值得被关注的原因。
核心优势总结三点:
第一,多模型统一接口,换模型成本极低;第二,树形会话结构,真正解决了开发过程中的分支探索需求;第三,模块化设计,从CLI到SDK到RPC,覆盖了从个人到团队的不同场景。
项目地址
https://github.com/earendil-works/pi
夜雨聆风