PI Coding Agent - VS Code 扩展 (pi-vscode)
本扩展是社区开发的 PI Coding Agent (pi CLI) 非官方 Visual Studio Code 客户端。它通过 Webview 提供聊天交互界面,并使用 RPC (JSONL) 双向通信协议与 pi 命令行进程保持同步。
[!IMPORTANT]
本项目未获得 pi 项目或其作者的授权、认可或背书,与其不存在官方隶属关系。“PI”仅用于说明本扩展所兼容的命令行工具。
🌟 功能特性
- 💬 侧边栏聊天 Webview:提供现代化的 AI Chat 界面,支持 Markdown 渲染和流式响应(Text & Thinking 思考过程展示)。
- ✅ Codex 风格任务总结:每轮任务结束时以结果为先,汇总主要改动、关键文件与验证结果;文件行号链接可直接跳转到 VS Code 编辑器。
- 🧰 可折叠工具执行卡片:实时展示工具运行状态与输出,在保持消息流简洁的同时保留完整执行上下文。
- 🔌 RPC 双向通信:通过 JSONL 流直接与后台
pi CLI 进程通信,自动同步会话状态、命令列表与当前可用模型。
- 🛠️ 全套 VS Code 原生 UI 交互绑定:
- 通知提示:将 PI 的警告/报错/提示透传为 VS Code
showInformationMessage、showWarningMessage 等。
- 确认确认弹窗:支持 VS Code 原生
modal 模态确认。
- 选项选择:支持
showQuickPick 列表选择。
- 输入框:支持
showInputBox 用户文本输入。
- 临时编辑器修改:支持在 VS Code 中临时开一个 markdown 文件,供用户编辑内容后“提交”返回给 AI 代理,极大地方便了复杂代码片段的协作与调整。
- 📂 会话历史管理:支持会话列表展示,可以直接切换会话、重命名会话以及物理删除历史会话记录。
- 📊 流量与 Token 统计:实时展示当前会话已发送/接收的字节数据,提供 Token 占比统计看板。
- 🔄 模型无缝切换:在聊天界面顶部可以直接下拉切换支持的 AI 模型(如
google/gemini-2.5-flash 等)。
🚀 安装与前置依赖
在使用本扩展之前,您需要确保系统中已经全局安装了 pi 命令行工具:
- 安装 PI CLI:
确保你的全局 npm 环境中安装了
pi:
npm install -g @earendil-works/pi-coding-agent
- 验证 CLI 可用性:
在终端中运行以下命令以确保
pi 可被正常调用:
pi --help
⚙️ 配置说明
在 VS Code 的全局或工作区 settings.json 中,你可以对以下选项进行配置:
| 配置项 |
默认值 |
说明 |
pi.executablePath |
"pi" |
pi 可执行文件在系统中的路径。如果已加入环境变量,保持默认即可;若为特定路径,请填入绝对路径。 |
pi.defaultModel |
"" |
启动 RPC 进程时默认选用的模型 ID(例如 google/gemini-2.5-flash)。 |
📖 使用指南
- 打开项目工作区:PI 需要在有效的工作区目录中运行,请确保您已经在 VS Code 中打开了一个文件夹或项目。
- 打开聊天视图:
- 点击侧边栏活动栏(Activity Bar)上的 PI 图标(或按下快捷命令
Open PI Chat 启动)。
- Webview 界面将自动初始化并与后端的
pi 建立 RPC 连接。
- 开始对话:
- 在输入框中输入您的问题,如:
给这个项目写一个测试脚本。
- 当 AI 需要执行工具(如读取文件、运行终端命令等)并向 VS Code 请求交互确认时,您将直接在 VS Code 顶部看到弹出的操作提示、选择列表或输入框,只需按提示操作即可完成闭环交互。
- 管理会话:
- 点击侧边栏右上角的 历史记录图标 (History),可以展开/折叠历史会话列表。
- 在列表中可切换会话,或者右键/点击操作进行重命名和删除会话。
🛠️ 常见问题排查
- 提示“启动 PI 客户端失败...”:
- 请确认是否已在全局安装了
pi,并且可在您的系统命令行中直接通过 pi 命令启动。
- 若
pi 不在默认 PATH 中,请在 VS Code 配置 pi.executablePath 中填入 pi 二进制文件的绝对路径。
- 提示“请先打开一个项目工作区以使用 PI”:
- PI 默认会将您的会话记录以及临时缓存保存在项目根目录下的
.vscode/pi-sessions 目录中。因此,您需要使用 VS Code 先打开一个具体的项目文件夹。
如果您觉得这个社区扩展有帮助,可以支持其后续维护:
If you find this community extension helpful, you can support its maintenance:
👥 Thank you to all our backers! (感谢所有赞助者!)
感谢以下赞助者对本项目的大力支持:
Thank you to the following sponsors for supporting this project:
暂无赞助记录,虚位以待!
📄 许可证与第三方声明
本项目采用 MIT License,完整条款见安装包及仓库根目录中的 LICENSE。项目包含或改编自 MIT 许可的软件;相关版权所有者、项目来源和许可信息见 THIRD_PARTY_NOTICES.md。
| |