给 Pi Agent 装个图形界面
上一期介绍了 Pi Agent——那个在终端里跑、62k Star 的 AI 编程代理。它的核心体验全在命令行里:敲 pi 进入对话,用快捷键操作,看文本输出。终端爱好者觉得很爽,但有时你就是想用鼠标点一点、看看会话树长什么样、或者给 AI 换个模型。
pi-web 就是干这个的——给 Pi Agent 套了一个浏览器界面。装完之后打开 http://localhost:30141,你所有的 Pi 会话都在一个网页里,可以浏览、搜索、分支、删改。后端直接读取 Pi 在磁盘上的 .jsonl 会话文件,不需要迁移数据或换数据库。
项目 807 Star,MIT 协议,用 Next.js 构建。
一句话启动
不需要安装,直接跑:
npx @agegr/pi-web@latest
或者全局安装后再启动:
npm install -g @agegr/pi-web
pi-web
默认端口 30141,打开浏览器访问即可。如果端口冲突,可以用 -p 参数改:
pi-web -p 8080
PORT=8080 pi-web # 也可以用环境变量
为什么需要它?
Pi Agent 把所有会话存在 ~/.pi/agent/sessions/ 下,目录结构是编码后的路径名加时间戳,直接看文件系统基本分不清哪个是哪个。
pi-web 把这些会话按工作目录分组展示,每个会话一目了然。你可以在网页里:
- 浏览所有历史会话,按项目分组
- 打开任意会话,逐条查看 AI 的思考和输出
- 从某一句话分叉出一个全新的会话(Fork)
- 在同一次会话里回退到之前某个节点,继续对话
- 实时观看 AI 流式输出
- 中途切换模型、开关工具
- 压缩长会话释放上下文空间
- 中途打断 AI 或追加后续指令
核心功能详解
会话浏览器
主界面列出所有 Pi 会话,按工作目录分组。每个项目一个组,组里按时间排列所有历史会话。点进去就能看到完整的对话记录。这个功能对于 Pi 的重度用户来说非常实用——终端的 /resume 只能恢复上一次会话,而这里可以看到所有。
会话分叉(Fork)
任何一个历史会话里,你可以在某条用户消息处点击 Fork,创建一个全新的独立会话文件,从那个点开始继续。原来的会话不受影响。这在「想试试另一种做法」的场景里非常有用。
分支导航(Branch Navigator)
和 Fork 不同,分支导航是在同一个会话文件里操作。你可以回退到之前的任意节点,然后从那里继续对话。Pi 原生的 /tree 命令能看到会话树,pi-web 用图形化的方式呈现这棵树,点击即可切换分支。
模型切换
侧边栏的 Models 面板列出了所有可用的模型。你可以在对话进行到一半时切换模型——前一个任务用 DeepSeek 省钱,遇到复杂逻辑切到 Claude。配置直接写到 Pi 的 models.json,下次 pi 启动也生效。
工具开关
侧边栏列出 Agent 可以使用的所有工具(read、write、edit、bash 等),每个工具都有开关。你可以临时关掉某些工具的权限,比如「只读不改」的场景。提供了 NONE(全关)、DEFAULT(默认)、FULL(全开)三个预设。
实时流式输出
AI 的回复通过 Server-Sent Events (SSE) 逐 token 推送到浏览器,和终端里的体验一致。即使刷新页面,正在进行的流也会自动恢复连接。
会话压缩
长对话可以触发压缩操作——让 Agent 把之前的对话总结成摘要,释放上下文窗口空间。这在处理复杂项目的长时间对话里特别有用。
中断与追加
AI 正在生成回复时,可以点打断按钮直接截停。AI 回复完成后,可以追加一条后续消息,不需要开始新的对话轮次。
技术原理
pi-web 是一个 Node.js 应用,同时包含后端 API 和前端 SPA:
- 后端——直接读写 Pi Agent 在磁盘上的
.jsonl会话文件,通过 SSE 流式转发 Agent 的回复 - 前端——Next.js + Tailwind CSS,纯浏览器端渲染
- 通信——REST API + SSE 实时推送
- 存储——零数据库,Pi 的本地文件就是数据源
Agent 进程被管理在内存中,10 分钟无活动自动回收,避免资源泄漏。
和 pi-web-access 的区别
虽然名字很像,但这是两个完全不同的东西:
- pi-web-access——Pi Agent 的功能扩展包,给 AI 加上网络搜索、网页抓取能力
- pi-web(本文)——Pi Agent 的 Web 图形界面,管理会话和交互
我的看法
pi-web 是一个很「薄」的工具——它几乎不做任何自己的事,只是把 Pi 已有的能力用网页呈现出来。但这个「薄」正是它的优点:不需要迁移数据、不需要学新概念、不绑定特定工作流。装完就能用,会话文件是 Pi 原生的,随时可以回到终端继续。
如果你已经是 Pi 的用户,pi-web 几乎是必装的。它把 Pi 最值得炫耀的功能(会话树、分支、模型切换)从「你要记住几个命令」变成了「点一下就行」。807 Star 说明它的用户认可度不错。
唯一需要注意的是它目前只是一个本地开发工具——没有用户认证、没有协作功能、不打算做成 SaaS。作者保持了工具的纯粹性:一个更好的 Pi 界面,仅此而已。
项目地址:agegr/pi-web · 许可:MIT · 🌟 807 Stars(截至 2026-06-16)