@wxk6b1203/pi-init

pi extension: /init command that explores the project and creates or updates AGENTS.md

Packages

Package details

extension

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-initpi 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 testnpm run check 使用,已被 git 忽略。
  • test/smoke.mjs 用 mock ExtensionAPI 验证:命令注册、模板解析优先级、frontmatter 剥离、占位符替换、追加分节等。

发布(维护者)

包名 @wxk6b1203/pi-init。首次发布前:

  1. npmjs.com 创建组织 wxk6b1203(免费计划即可,公开包不限量)——scope 与 npm 用户名不同时,npm 将其视为组织 scope;
  2. 确认 ~/.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.jsonpublishConfig 固定为官方 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