Extensions:TypeScript 扩展点全景
Pi 的 extensions 是 TypeScript 模块,不是 YAML/JSON 也不是 hook 脚本。它们能注册工具、命令、快捷键、provider、UI 渲染器,订阅 30+ 种生命周期事件——这套 API 是 Pi 「minimal core」哲学的具体兑现。本章拆解扩展点的全景。
什么是 Extension
Extension 是 default-export function (pi: ExtensionAPI) { ... } 这种形态的 TypeScript 模块。它能做的所有事可以归为三类:
- 订阅生命周期事件:监听 agent 跑过程中的各种钩子
- 注册新能力:工具、命令、provider、UI 渲染、快捷键
- 主动操作 session:发消息、切分支、提交 prompt
安全提示:Extension 以完整系统权限运行,可执行任意代码。只安装可信来源的扩展——这一点 Pi 在文档顶部用粗体强调。
目录约定
| 路径 | 作用域 |
|---|---|
~/.pi/agent/extensions/*.ts | 全局 |
~/.pi/agent/extensions/*/index.ts | 全局(子目录形态) |
.pi/extensions/*.ts | 项目本地 |
.pi/extensions/*/index.ts |