Pigent
All in VS Code —— 不用离开编辑器。
Pi coding agent 的 VS Code 界面:活动栏一个图标,点开是会话树;每个会话在编辑区打开成完整的标签页(不是侧边栏小面板),跑的是真正的 pi 进程。
- 不切终端:读写文件、跑命令、看子代理,全在同一个窗口里完成
- 不切浏览器:没有独立的聊天网页,会话就是编辑器里的文档
- 会话是标签页:可以并排两个会话对比、可以分屏、可以和代码放在同一个布局里、可以用
Ctrl+Tab 切换
- 真进程:每个标签页一个
pi --mode rpc 子进程,会话文件、扩展、MCP、技能都和 CLI 完全共用
前置条件
需要本机已安装 Pi CLI:
npm i -g @mariozechner/pi-coding-agent
pi --version
插件会自动探测全局 pi。找不到时可以在设置里填写 pi.cliPath。
交互设计
这个插件不是「给 agent 套一个侧边栏」,它把每个会话当成一份独立的文档来处理。几个刻意的选择:
每个会话是一个 webview 标签页
会话开在编辑区,不是侧边栏面板。因此它天生具备编辑器标签的全部能力:并排两个会话、拖到另一个窗口、分屏、Ctrl+Tab 切换、和代码文件一起进同一个布局。标签页标题会写成该会话的第一句话(或你重命名后的名字)。
每个标签页一个真正的 pi 进程
一个会话对应一个 pi --mode rpc 子进程,不是把 SDK 塞进插件进程。所以会话文件、扩展、MCP 服务器、技能、模型配置和终端里跑的 pi 完全一致 —— 你在终端里继续同一个会话也不会错乱。关掉标签页,进程就退出,不留后台进程。
重开窗口会回到原来的位置
关掉 VS Code 再打开,之前开着的会话标签会恢复,并且指向同一个会话文件(按会话 id 反查磁盘路径),不是新建一个空会话。
输入框是命令入口,不只是文本框
- 敲
/ 弹出技能、提示模板、扩展命令,↑↓ 挑、Enter 插入
- 选中的命令变成彩色标签贴在输入框上方(紫=技能,蓝=模板),不会混进正文;点
× 移除
- 运行中 Enter 是「插入」(steer),Alt+Enter 是「排队」(follow-up),Alt+Q 把队列取回
- 底部一行:附件、模型、思考强度、上下文环、发送
打开就有内容,不用等进程
标签页一出现就先画 .jsonl 里的历史,pi 在后台启动,模型名和运行状态晚一拍补上。首屏从「等进程握手再读消息」的几秒,降到几十毫秒。
长会话按需加载:默认只渲染最近 200 条,顶部一条「加载更早的 N 条」,点开往上翻,插入时保持你正在看的位置不动。三千条消息的会话首屏约 0.3 秒。
长会话也要能流畅阅读
- 用户消息时间线:右边缘一列刻度,每条你的提问一个点,按消息在主对话里的真实位置分布。点一下直接滚过去,悬停显示消息开头(刻度是按钮,也可以用
Tab 聚焦后回车)
- 思考块、工具调用都是可折叠块,标题带耗时和状态;历史思考默认折叠,正在输出的那一轮自动展开
- 自动滚动只在你看底部时跟随;往上翻就停住,底部浮出
↓ 回到最新
- 上下文压缩后会插入一张可展开的摘要卡片,写明压缩了多少 token、被折叠的内容概要
- 上下文压缩或编辑只影响模型看到的窗口,标签页里始终是完整对话 —— 历史以磁盘文件为准,不会因为压缩过就少掉前面的轮次
- 上千条消息的会话做过渲染优化(增量更新 + 视口外跳过绘制),打开和流式输出都不会卡
子代理在同一个界面里
运行中的子代理出现在输入框上方,点进去是它的实时 transcript,还能直接给它发指令。不需要切终端看另一个窗口。
会话
- 会话树:读取
~/.pi/agent/sessions,按项目分组,显示最后活跃时间;分叉出来的会话以 ⑂ N 挂在父会话下面。
- 编辑区标签页:一个会话一个标签页,历史消息、流式回复、思考块、工具调用都在里面;关掉 VS Code 重开,标签页会恢复到原来的会话,草稿和滚动位置也一起恢复。
- 定位到某一轮:右侧时间线一个刻度对应一条你的提问,点击跳转;也可以直接用滚动条找。
- 草稿与中断:Enter 发送,Shift+Enter 换行;运行中 Enter 立即插入(steer),Alt+Enter 排队(follow-up),Alt+Q 把队列取回输入框。
- 重命名 / 删除 / 导出:右键菜单;导出走
pi --export 生成单文件 HTML。
- 分叉与克隆:每轮回复下方有「分叉」(从该轮的用户消息新建分支)和「克隆」(复制整个会话),列表实时更新。
输入框
/ 命令补全:敲 / 弹出技能、提示模板和扩展命令,↑↓ 选择、Enter 插入;选中的命令显示成彩色标签,不会混进正文。
- 附件:
+ 添加图片或文本文件,图片以 base64 随消息发出,文本内联进 prompt。
- 模型 / 思考强度:底部两个下拉,切换即时生效。
- 上下文环:显示当前用量百分比,悬停看 token 明细,点右侧按钮压缩上下文;压缩后会插入一张可展开的摘要卡片。
子代理
- 运行中的子代理显示在输入框上方,点进去看实时 transcript,也可以直接给它发指令。
- 设置里的「子代理」页可以配置默认模型、默认思考强度,以及每个 agent 的模型/思考覆盖、扫描目录、排除目录。
设置
标题栏齿轮打开设置页:模型、子代理、扩展包、技能、MCP、自定义模型、高级(settings.json / mcp.json / models.json / auth.json / extensions/subagent/config.json 入口)。
配置项
| 设置 |
默认 |
说明 |
pi.cliPath |
自动探测 |
pi 可执行文件路径 |
pi.extraArgs |
[] |
传给每个会话进程的额外参数 |
pi.language |
跟随 VS Code |
界面语言:auto / en / zh-CN |
pi.autoReloadOnUpdate |
false |
扩展升级后自动请求重载窗口 |
pi.rebuildTabsOnUpdate |
false |
扩展升级后自动重建会话标签页(而不是提示重载窗口)。每个重建的标签页会重启自己的 pi 进程 |