pi-personal-tools1.0.2
Personal Pi commands for commits, session handoff, token reports, and Windows Terminal status.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-personal-tools
集中维护四个个人扩展并打包为 Pi Package,不包含其他扩展、Skills、用户配置或账号凭证。TypeScript 源码由 Pi 直接加载,无需编译。
包含内容
| 入口 | 用途 |
|---|---|
/commit [Jira单号] |
检查改动、确认提交范围并创建 Git commit |
/commit self "正文" |
保留用户正文,补充提交前缀与 AI 标签,并在确认后提交 |
/handoff-copy [下一步说明] |
生成中文交接摘要,确认后创建新会话并填入输入框;不写系统剪贴板 |
/report-token [最近助手回复数] |
分析当前会话分支的 Token、工具输出、重试及压缩指标,保存 Markdown 报告 |
terminal-tab-status |
在 Windows Terminal 中显示标题动画、等待状态及提示音,无斜杠命令 |
/commit 使用无 scope 的提交前缀(如 fix: 正文、feat: 正文),提交信息追加 AI-Generated: true。最终确认由模型调用 commit_confirm 交互面板:默认选中“确认提交”,直接按 Enter;按 Tab 切到修改意见输入框,输入后 Enter 返回意见给模型,调整后重新确认;Esc 取消且保留暂存。完整提交信息和改动范围先在聊天中展示;面板只保留确认提交、修改意见和按键提示三行内容,行间各留一个空行,不重复详情,不必再手输“确认”。
确认工具不执行 Git 提交;它核对已审阅的 tree,并在确认后复核仓库、HEAD、暂存内容和会话分支,变化或读取失败不批准。模型提交前仍须再次核对并使用原样 message,只执行一次提交;这不是原子 Git 事务,也不绕过原有范围/敏感信息确认规则。非 TUI 模式不支持该面板,仍需明确文字确认;取消和错误不能自动降级或提交。
安装
另一台电脑需先安装 Pi,并单独配置模型登录或 API 凭证。Git 必须可从 PATH 调用。建议先使用相同 Pi 版本验证。
复制此完整目录到另一台电脑后,通过实际目录路径安装:
pi install ./pi-personal-tools
本地路径安装直接引用该目录,不复制资源;安装后不要删除该目录。
本机唯一维护目录为 C:\Dev\pi-extensions\pi-personal-tools,全局安装命令:
pi install C:/Dev/pi-extensions/pi-personal-tools
之后只修改本目录内的源码,执行 /reload(或重启 Pi)加载修改,不再向 ~/.pi/agent/extensions/ 复制这四个文件。
发布到 npm 后安装(不固定版本,方便后续更新):
pi install npm:pi-personal-tools
安装后重启 Pi 或执行 /reload。如果同一电脑已通过 ~/.pi/agent/extensions/ 加载这四个文件,先将原文件移到自动加载目录之外备份,或通过 pi config 禁用原本地入口,避免重复命令或重复事件处理。此包不会自动删除旧文件。
发布新版本后,npm 用户执行以下命令,再在 Pi 中 /reload:
pi update npm:pi-personal-tools
npm 安装不会自动跟随本地源码修改。若安装时指定了固定版本(例如 npm:pi-personal-tools@1.0.0),需用 pi install npm:pi-personal-tools 改为追踪最新版,或显式安装所需新版本。本地开发与 npm 安装应择一使用,避免加载两个来源的同名扩展。
使用条件
/handoff-copy仅支持交互式 TUI,需要当前可用模型,会调用模型生成摘要;确认后内容放入新会话输入框,按 Enter 才发送。/report-token需要 Git 仓库,并要求 Git 忽略.agent/token-reports/,否则拒绝写入。例如在仓库根目录的.gitignore添加:/.agent/token-reports/参数范围为
1..10000;统计使用会话已记录的数据,不代表供应商完整账单。历史会话和报告不会随包迁移。terminal-tab-status只在交互式 Windows Terminal(存在WT_SESSION)中生效,其他终端不显示这些状态。宿主提供
@earendil-works/pi-ai、@earendil-works/pi-coding-agent、@earendil-works/pi-tui与工具 schema 所需typebox;它们仅声明为 peerDependencies,不随包捆绑。
验证与发布
在源码目录运行(现有 commit 测试使用 Node.js 原生 TypeScript 加载,建议 Node.js 22.18+ 或 24+):
npm install --ignore-scripts
npm test
npm pack --dry-run
测试使用隔离 Git 环境的真实临时仓库和 TUI Input/键盘组件,覆盖 Enter、Tab/中文意见、空意见、Esc、abort/shutdown、过期 tree、HEAD/会话分支变化、长提交信息下的紧凑布局、行间距和窄屏,以及子目录 diff.relative 下的全仓库暂存核对。另用真实 Pi loader 与离线 faux provider 验证交互结果返回模型和实际取消,不调用网络模型、不在调用方仓库自动提交。真人终端的输入法、间距/resize 与关闭后的焦点恢复仍需实际体验,不将组件/离线宿主测试视为真人 TUI 验收。
临时试用包而不添加配置:
pi --no-extensions -e .
确认功能、包内容、代码再分发权限及 npm 包名可用后再发布。首次发布可使用当前版本;后续发布前需提高 package.json 版本号,例如 npm version patch --no-git-tag-version,再重新运行上述验证。npm 不允许覆盖已发布的同名同版本包:
npm login
npm publish --access public
公开发布会公开这些扩展源码,包括提交规则和提示词。首次发布前可修改 package.json 的名称为自己的 scope(例如 @yourname/pi-personal-tools),并相应替换安装命令。不要将 auth.json、会话、Token 报告或其他本机私密文件加入发布内容。