bestony-pi-preset
Bestony's personal Pi coding agent preset — skills, extensions, prompts, and themes.
Package details
Install bestony-pi-preset from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:bestony-pi-preset- Package
bestony-pi-preset- Version
0.0.89- Published
- Oct 11, 2026
- Downloads
- 10.4K/mo · 2,765/wk
- Author
- bestony
- License
- MIT
- Types
- extension, skill, theme, prompt
- Size
- 66.1 MB
- Dependencies
- 18 dependencies · 0 peers
Pi manifest JSON
{
"skills": [
"./skills",
"node_modules/@dietrichgebert/ponytail/skills",
"node_modules/pi-init/skills/init/SKILL.md",
"node_modules/@quintinshaw/pi-dynamic-workflows/skills/workflow-authoring",
"node_modules/@quintinshaw/pi-dynamic-workflows/skills/workflow-patterns"
],
"themes": [
"./themes"
],
"prompts": [
"./prompts"
],
"extensions": [
"./extensions",
"node_modules/@dietrichgebert/ponytail/pi-extension/index.js",
"node_modules/@lanlance/pi-recap/extensions/recap.ts",
"node_modules/@narumitw/pi-goal/dist/index.ts",
"node_modules/@narumitw/pi-plan-mode/dist/index.ts",
"node_modules/pi-web-access/index.ts",
"node_modules/pi-cache-optimizer/index.ts",
"node_modules/pi-session-name/src/index.ts",
"node_modules/pi-session-name/src/index.ts",
"node_modules/@quintinshaw/pi-dynamic-workflows/extensions/workflow.ts",
"node_modules/@trevonistrevon/pi-loop/dist/index.js",
"node_modules/@mohndoe/pi-atlas/src/index.ts",
"node_modules/pi-dsml/extensions/index.ts",
"node_modules/statusline-pi/src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
bestony-pi-preset
Bestony 的 Pi coding agent preset。
通过 Pi Package 打包并分发个人常用的 extensions / skills / prompts / themes,安装后即可在 Pi 中自动加载。
Security: Pi packages 拥有完整系统权限。Extensions 可执行任意代码,skills 可指示模型执行任意操作。安装第三方包前请先审阅源码。
安装
# 从 git 安装
pi install git:github.com/bestony/bestony-pi
pi install https://github.com/bestony/bestony-pi
# 从 npm 安装
pi install npm:bestony-pi-preset
仅当前会话试用(不写入 settings):
pi -e /path/to/bestony-pi
pi -e git:github.com/bestony/bestony-pi
安装到项目级(写入 .pi/settings.json,可团队共享):
pi install -l npm:bestony-pi-preset
卸载 / 管理
pi remove npm:bestony-pi-preset # 或对应 source
pi list
pi update --extensions
pi config # 启用/禁用具体资源
内置依赖(bundled pi packages)
安装本 preset 时会一并带上下列 Pi 包,并自动加载其 extensions / skills:
| 包 | 提供 |
|---|---|
| pi-web-access | Web 搜索 / URL 抓取 / GitHub / YouTube 等扩展 |
| pi-init | init skill(生成/更新 AGENTS.md) |
| pi-cache-optimizer | Prompt/KV cache 命中优化 |
| pi-session-name | 自动生成会话标题并同步终端标题状态 |
| @lanlance/pi-recap | Claude Code-style session recap / status line above the Pi status bar |
| @mohndoe/pi-atlas | 在 Pi 内查看 agent 用量与花费(cost / 语言 / 模型 / 项目 / 工具,数据来自 session 日志) |
| @dietrichgebert/ponytail | 编码风格人格与强度切换(off/lite/full/ultra)+ review/audit/debt 等 skills |
| @narumitw/pi-goal | Autonomous single-objective /goal completion extension |
| @narumitw/pi-plan-mode | Codex 风格的只读 /plan 协作模式 |
| @quintinshaw/pi-dynamic-workflows | 动态 workflow(workflow 工具、/workflows 等) |
| @trevonistrevon/pi-loop | 持久化 loop / workflow / task / subagent orchestration / 后台 monitor(/loop、/tasks 等) |
| pi-dsml | 把 DeepSeek 以纯文本返回的 DSML tool call 还原为真实 tool call 并执行 |
| statusline-pi | 紧凑型底部状态栏扩展(目录、git 分支变更、上下文剩余、响应速度、模型与 PR 编号) |
它们声明在 dependencies + bundledDependencies 中,资源通过 pi.extensions / pi.skills 的 node_modules/... 路径引用。
包结构
bestony-pi/
├── package.json # pi manifest + pi-package keyword
├── README.md
├── extensions/ # .ts / .js 扩展
├── skills/ # SKILL.md 技能目录
├── prompts/ # .md 提示词模板
└── themes/ # .json 主题
package.json 中的 pi 字段声明资源路径:
{
"name": "bestony-pi-preset",
"keywords": ["pi-package"],
"pi": {
"extensions": ["./extensions"],
"skills": ["./skills"],
"prompts": ["./prompts"],
"themes": ["./themes"]
}
}
路径相对于包根目录;数组支持 glob 与 !exclusions。
若省略 pi manifest,Pi 会从同名约定目录自动发现资源。
开发
- 在对应目录添加资源:
extensions/*.ts— 扩展skills/<name>/SKILL.md— 技能prompts/*.md— 提示词themes/*.json— 主题
- 本地加载验证:
pi -e .
# 或
pi install .
- 用
pi config检查资源是否被加载。
依赖约定
- 运行时第三方依赖放在
dependencies(pi install会执行npm install) - 若 import Pi 核心包,放入
peerDependencies且版本为"*",不要打包:@earendil-works/pi-ai@earendil-works/pi-agent-core@earendil-works/pi-coding-agent@earendil-works/pi-tui- 上述包的旧 scope 名
@mariozechner/pi-*,Pi 运行时同样以虚拟模块提供; 放进dependencies(即使写成 alias)会安装真实副本并触发 host-provided 警告 typebox
- 部分第三方包对 Pi 核心包的 peer range 已过期(如
@mohndoe/pi-atlas要求@earendil-works/pi-tui >=0.74.0 <0.77.0,而本 preset 跟随 Pi 运行时 0.84.x)。 仓库根目录.npmrc因此设置force=true,让npm ci容忍这类冲突但不丢弃 peer 树。 不要改用legacy-peer-deps(会从 lock 中移除整个@earendil-works/*peer 子树)。
自动发布
发布使用 npm Trusted Publisher(OIDC),无需在仓库中配置 NPM_TOKEN。Workflow 文件:.github/workflows/daily-release.yml。
触发方式
| 触发 | 行为 |
|---|---|
push 到 main |
自动发布。若当前 package.json 版本已在 npm 上存在,则自动 patch 升版、创建 chore(release): x.y.z commit、annotated vX.Y.Z tag 和 GitHub Release 并推回远端 |
每日北京时间 0:00(cron: 0 16 * * * UTC) |
用 npm-check-updates 更新依赖;有变更才升版发布;无变更则跳过 |
| 手动 Run workflow | 同日更逻辑;可勾选 force_publish 强制发一版 |
Bot 自己的 chore(release): 提交不会再次触发发布,避免循环。
版本规则
- 你已手动升版且该版本尚未发布 → 直接按该版本发布
- 你未升版(版本已在 npm 上)→ CI 自动 patch 并帮你推送 release commit
手动触发
- GitHub → Actions → Release → Run workflow
- 可选勾选
force_publish
首次启用前请确认:
- npm 包 Settings → Trusted Publisher 指向
bestony/bestony-pi/daily-release.yml - 仓库 Settings → Actions → Workflow permissions 为 Read and write
License
MIT