@wxk6b1203/pi-init
pi extension: /init command that explores the project and creates or updates AGENTS.md
Package details
Install @wxk6b1203/pi-init from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@wxk6b1203/pi-init- Package
@wxk6b1203/pi-init- Version
0.1.2- Published
- Sep 2, 2026
- Downloads
- 285/mo · 24/wk
- Author
- ping1008
- License
- MIT
- Types
- extension
- Size
- 18.8 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
English | 中文
pi-init
pi 编码代理的扩展:添加 /init [可选说明] 命令,让 agent 探索当前项目并生成(或更新)项目根目录的 AGENTS.md,供后续任何编码 agent 使用。
用法
/init # 探索项目,生成/更新 AGENTS.md
/init <额外说明> # 同上,并附带你的额外指示(agent 会仔细权衡)
示例:
/init
/init 重点关注 Rust crate 结构,用中文撰写
命令会把一段精心编写的 prompt 发送给当前会话的 agent,agent 随后自行探索项目(清单文件、lockfile、CI 配置、目录结构、现有规范等)并写入 AGENTS.md;若 AGENTS.md 已存在,则在其基础上更新,保留仍然有效的内容。如果 agent 正在忙,/init 会自动排队为 follow-up。
Prompt 存放位置(不在代码里)
模板按以下顺序解析,命中第一个非空文件即用:
| 优先级 | 位置 | 用途 |
|---|---|---|
| 1 | <项目>/.pi/init/prompt.md |
项目级覆盖 |
| 2 | ~/.pi/agent/init/prompt.md |
全局覆盖 |
| 3 | 扩展自带 prompts/init.md |
默认模板 |
模板支持:
---frontmatter(加载时会被剥离,仅作文档说明用);- 占位符
{{cwd}}— 当前项目绝对路径; - 占位符
{{userInstructions}}—/init后面的额外文字,为空时替换为(none); - 若模板未包含
{{userInstructions}}且用户带了额外说明,处理函数会自动在末尾追加 "Additional user instructions" 段落。
安装
方式一(推荐,npm 包,可用 pi update 升级):
pi install npm:@wxk6b1203/pi-init
方式二(全局扩展目录):复制或软链本目录到 pi 的全局扩展目录:
cp -r . ~/.pi/agent/extensions/pi-init
方式三(项目本地):复制到某项目的 .pi/extensions/pi-init/。
卸载:pi remove npm:@wxk6b1203/pi-init;升级:pi update npm:@wxk6b1203/pi-init 或 pi update --all。
快速试用:
pi -e ./index.ts
然后输入 /init。
开发
npm --prefix .tooling install # 首次:安装 typescript + @types/node(用于类型检查)
npm run check # tsc --noEmit,基于 pi 真实类型定义校验 API 用法
npm test # 冒烟测试:jiti 加载 index.ts + mock 验证行为(不调用模型)
说明:
- 扩展运行时零 npm 依赖,只用 Node 内置模块;
@earendil-works/pi-coding-agent的导入由 pi 内置的 jiti alias 解析。 node_modules/里是指向本机 pnpm store 的 junction(jiti/typebox/@earendil-works),供npm test与npm run check使用,已被 git 忽略。test/smoke.mjs用 mockExtensionAPI验证:命令注册、模板解析优先级、frontmatter 剥离、占位符替换、追加分节等。
发布(维护者)
包名 @wxk6b1203/pi-init。首次发布前:
- 在 npmjs.com 创建组织
wxk6b1203(免费计划即可,公开包不限量)——scope 与 npm 用户名不同时,npm 将其视为组织 scope; - 确认
~/.npmrc里有//registry.npmjs.org/:_authToken=...(npm whoami --registry=https://registry.npmjs.org/能返回用户名即就绪)。
git commit ... # pnpm publish 要求干净工作区(npm publish 无此要求)
pnpm publish # 发布前自动跑 check + test;源和 access 已由 publishConfig 固定
- 发布目标由
package.json的publishConfig固定为官方 npmjs + public,与本机默认源(公司源/淘宝镜像)无关; - 项目
.npmrc与用户~/.npmrc中的@wxk6b1203:registry映射保证 scope 路由正确; - 若 pnpm 因分支/工作区检查拦截,加
--no-git-checks; - 升级版本:
npm version patch|minor|major后再 publish;用户端pi update npm:@wxk6b1203/pi-init。
License
MIT