文章目录一、Pi 扩展系统概览1.1 扩展能做什么?1.2 扩展加载位置1.3 可用导入包二、编写第一个扩展2.1 基本结构2.2 异步工厂函数2.3 扩展组织方式三、扩展事件系统详解3.1 生命周期全景3.2 关键事件详解四、注册自定义工具五、Skills 技能系统5.1 什么是 Skills?5.2 技能加载位置5.3 技能工作原理5.4 技能命令5.5 技能结构5.6 SKILL.md 格式5.7 描述最佳实践5.8 知名技能仓库六、提示词模板(Prompt Templates)6.1 概述6.2 加载位置6.3 模板格式6.4 参数语法6.5 使用方法七、主题定制(Themes)7.1 概述7.2 加载位置7.3 选择主题7.4 创建自定义主题7.5 颜色标记详解7.6 颜色值格式7.7 终端兼容性八、Pi 包管理8.1 概述8.2 安装和管理命令8.3 包来源8.4 创建 Pi 包8.5 约定目录结构8.6 包过滤8.7 依赖管理九、自定义模型(models.json)9.1 最小示例9.2 兼容性配置9.3 完整示例9.4 支持的 API 类型9.5 值解析高级用法9.6 思考级别映射9.7 覆盖内置提供者十、自定义提供商(通过扩展)10.1 快速参考10.2 OAuth 支持10.3 注销提供者十一、常见问题解答十二、总结一、Pi 扩展系统概览扩展(Extensions)是 Pi 最强大的定制能力。它们是 TypeScript 模块,可以订阅生命周期事件、注册 LLM 可调用的自定义工具、添加自定义命令、渲染自定义 TUI 组件,甚至持久化状态到会话文件中。1.1 扩展能做什么?能力描述自定义工具通过pi.registerTool()注册 LLM 可调用的工具事件拦截阻止或修改工具调用、注入上下文、自定义压缩逻辑用户交互通过ctx.ui提示用户(选择、确认、输入、通知)自定义 UI 组件通过ctx.ui.custom()实现完整 TUI 组件和键盘输入自定义命令通过pi.registerCommand()注册如/m