📊 页面导航

适用角色与上手难度

角色推荐度上手难度
🛠️ 开发★★★★★★★★★☆
🧪 测试★★★☆☆★★★★☆
📦 产品★★☆☆☆★★★★★

🎯 学习产出: 了解 Pi 的五种定制方式,能自己写提示词模板、技能,并会安装使用第三方 Pi 包

🚀 AI 能力提升: 自动化工作流

扩展与定制

预计阅读时间: 4 分钟

Pi 的核心理念是"适应你的工作流,而不是反过来"。定制方式从简单到复杂有五种:提示词模板、技能、扩展、主题和 Pi 包。

提示词模板(Prompt Templates)

可复用的 Markdown 提示词,会话内输入 /模板名 展开:

<!-- ~/.pi/agent/prompts/review.md -->

Review this code for bugs, security issues, and performance problems.
Focus on: {{focus}}

放到 ~/.pi/agent/prompts/.pi/prompts/,或放进一个 Pi 包 分享给他人。

技能(Skills)

按需加载的能力包,遵循 Agent Skills 标准。通过 /skill:name 调用,或让 agent 自动加载:

<!-- ~/.pi/agent/skills/my-skill/SKILL.md -->

# My Skill

Use this skill when the user asks about X.

## Steps

1. Do this
2. Then that

技能目录:~/.pi/agent/skills/~/.agents/skills/.pi/skills/.agents/skills/(从当前目录向上逐级查找),或放入 Pi 包。

扩展(Extensions)

TypeScript 模块,可以添加自定义工具、命令、快捷键、事件处理器和 UI 组件:

export default function (pi: ExtensionAPI) {
  pi.registerTool({ name: "deploy", ... });
  pi.registerCommand("stats", { ... });
  pi.on("tool_call", async (event, ctx) => { ... });
}

默认导出也支持 async,适合在启动时做一次性初始化(比如拉取远程模型列表后再 pi.registerProvider())。

扩展能做什么:

  • 自定义工具(或完全替换内置工具)
  • 子代理(sub-agents)和 plan mode
  • 自定义压缩和摘要
  • 权限门控与路径保护
  • 自定义编辑器和 UI 组件
  • 状态栏、头部、底部栏
  • Git 检查点与自动提交
  • SSH 和沙箱执行
  • MCP 服务器集成
  • 把 Pi 变得像 Claude Code
  • 等模型时玩 Doom

扩展目录:~/.pi/agent/extensions/.pi/extensions/,或放入 Pi 包。官方示例见 examples/extensions/

主题(Themes)

内置 darklight。主题支持热重载:修改主题文件立即生效。

  • 目录:~/.pi/agent/themes/.pi/themes/ 或 Pi 包
  • 启动时指定:pi --use-theme dark

Pi 包(Pi Packages)

把扩展、技能、提示词模板、主题打包,通过 npm 或 git 分享:

pi install npm:@foo/pi-tools
pi install git:github.com/user/repo
pi install https://github.com/user/repo
pi install ssh://git@github.com/user/repo
pi list                 # 查看已安装
pi update --all         # 更新 pi 和所有包
pi remove npm:@foo/pi-tools

包资源用 pi config 统一启用/禁用(Tab 切换全局/项目作用域)。可在 npmjs.com 或 Pi 社区 Discord 上找包。

安全提示

Pi 包拥有完整的系统访问权限。扩展会执行任意代码,技能可以指示模型执行任何操作(包括运行可执行文件)。安装第三方包前请先审查其源码。

下一步