BB

bestony/bestony-pi

Developer tools
51 stars Quality 55 Trend 55

通过 Pi Package 打包并分发个人常用的 ,安装后即可在 Pi 中自动加载。

Overview

通过 Pi Package 打包并分发个人常用的 ,安装后即可在 Pi 中自动加载。 Pi packages 拥有完整系统权限。Extensions 可执行任意代码,skills 可指示模型执行任意操作。安装第三方包前请先审阅源码。 安装本 preset 时会一并带上下列 Pi 包,并自动加载其 extensions / skills: 它们声明在 dependencies + bundledDependencies 中,资源通过 pi.extensions / pi.skills 的 node_modules/... 路径引用。 1. 在对应目录添加资源: - extensions/.ts — 扩展 - skills/ /SKILL.md — 技能 - prompts/.md — 提示词 - themes/*.json — 主题 2. 本地加载验证: - 运行时第三方依赖放在 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 - 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。

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 等扩展 + librarian skill
pi-init init skill(生成/更新 AGENTS.md)
pi-mcp-adapter MCP 协议适配扩展
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 pi-extension + skills for status line and agent-mode tooling
@narumitw/pi-goal Autonomous single-objective /goal completion extension
@narumitw/pi-plan-mode Codex 风格的只读 /plan 协作模式
pi-xai-oauth xAI OAuth provider / authenticated Grok model catalog
@tintinweb/pi-subagents Claude Code 风格的自主 sub-agents
@tintinweb/pi-tasks Claude Code-style task tracking and coordination
@quintinshaw/pi-dynamic-workflows 动态 workflow(workflow 工具、/workflows 等)
commandcode-go-for-pi Command Code Go/GOAT provider(commandcode 模型目录、reasoning 控制、/cc-usage 用量查询)
pi-dsml 把 DeepSeek 以纯文本返回的 DSML tool call 还原为真实 tool call 并执行

它们声明在 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 会从同名约定目录自动发现资源。

开发

  1. 在对应目录添加资源:
    • extensions/*.ts — 扩展
    • skills//SKILL.md — 技能
    • prompts/*.md — 提示词
    • themes/*.json — 主题
  2. 本地加载验证:
pi -e .
# 或
pi install .
  1. 用 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
    • 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

手动触发

  1. GitHub → Actions → Release → Run workflow
  2. 可选勾选 force_publish

首次启用前请确认:

  • npm 包 Settings → Trusted Publisher 指向 bestony / bestony-pi / daily-release.yml
  • 仓库 Settings → Actions → Workflow permissions 为 Read and write

License

MIT

View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add bestony/bestony-pi