### [分享创造] 分享创造: pi2.nvim 更新 —— 新增 :PiSessions 会话总览,跨标签页管理所有 agent 会话
上次发帖介绍了 pi2.nvim 1.0 ,这次带来一个重要更新:**会话列表(`:PiSessions`)**。
先给新来的朋友简单介绍:pi2.nvim 是 [pi coding agent](https://pi.dev) 的 Neovim 前端,基于 [alex35mil/pi.nvim](https://github.com/alex35mil/pi.nvim) 深度扩展的 fork (上游的功劳归上游),在后台跑 `pi --mode rpc`,把 AI 编程助手完整搬进编辑器。设计上「一个标签页 = 一个会话」,多任务时经常同时开好几个标签页跑不同的 agent 。
**新功能 `:PiSessions`:所有活跃会话的实时总览**
一个只读窗口列出全部活跃会话,每行 = 标签页编号 + 状态点 + 会话名:
* 状态点**快闪**:agent 正在干活(流式输出 / 执行工具)
* **慢闪**:正在压缩上下文( compaction )
* 常亮**警告色**:有待处理的 attention 请求
* **绿灯闪烁**:别的标签页的回合完成了,你还没看
* **红灯闪烁**:上次回合出错,你还没看
* 常亮**暗淡**:空闲
* 常亮**错误色**:会话已退出
会话名优先取 `:PiSessionName` 设置的名称,否则回退到第一条用户消息。按 `<CR>` / `o` 直接跳到对应标签页并打开聊天,`r` 刷新会话名,`q` 关闭。
实现上的两个细节:所有标签页共享同一个 buffer ,一次重绘同步刷新所有视图;更新完全事件驱动、零轮询。
配置:
```
require("pi").setup({
sessions_list = {
mode = "follow", -- "follow" | "side" | "float"
position = "left",
width = 40,
height = 12,
float = { width = 0.5, height = 0.5 },
auto_open = false, -- 打开聊天时自动显示列表
},
})
```
**其他近期更新**
* 聊天历史默认改用 render-markdown.nvim 渲染,标题 / 列表 / 代码块开箱即用
* `:PiTree` 长会话可读性修复,纯工具回合显示工具摘要,不再有空白行
* 图片附件发送前自动压缩,附件面板显示压缩后实际大小
仓库: <https://github.com/zgs225/pi2.nvim>
Changelog: <https://github.com/zgs225/pi2.nvim/blob/main/CHANGELOG.md>
要求:Neovim 0.10+,本机装有 pi CLI
```
{
"zgs225/pi2.nvim",
dependencies = { "MeanderingProgrammer/render-markdown.nvim" },
build = "make",
opts = {},
keys = {
{ "<leader>pi", "<Cmd>Pi<CR>", desc = "Pi open chat" },
{ "<leader>ps", "<Cmd>PiSessions<CR>", desc = "Pi sessions overview" },
},
}
```
欢迎试用和反馈,有问题可以直接开 issue 。
https://www.v2ex.com/t/1232028#reply0

