{"_id":"@birdie_moblie/plugin-marketplace-cli","_rev":"5-dbeb63c95bd86efd741a2e4bb0d52c30","name":"@birdie_moblie/plugin-marketplace-cli","dist-tags":{"latest":"1.3.1"},"versions":{"1.0.0":{"name":"@birdie_moblie/plugin-marketplace-cli","version":"1.0.0","license":"UNLICENSED","_id":"@birdie_moblie/plugin-marketplace-cli@1.0.0","maintainers":[{"name":"oren-birdie","email":"oren@birdiecorp.com"}],"bin":{"plugin-marketplace":"dist/cli.js"},"dist":{"shasum":"eb8e6582e43c55512522a1c028958d22d920fde9","tarball":"https://registry.npmjs.org/@birdie_moblie/plugin-marketplace-cli/-/plugin-marketplace-cli-1.0.0.tgz","fileCount":35,"integrity":"sha512-RYKqAe1f+pWBh109pcyG73D9FDOtfFNoqJt6RbCavTH6FO3JeIhoJKjioiTSOt1vxlq2J1Xd846+jbGBG4Oluw==","signatures":[{"sig":"MEUCIA8Jj6/i4gasqg9B48fp9zEuUgIrzCr26hQlEAZf47EWAiEA32eHnA8BZLUjgvpOpUXT646m0vXj6GB8m+ubzhx+SGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85609},"type":"module","gitHead":"9ee223cf0bd23c70ae42377fa97232a1b062190f","private":false,"scripts":{"mp":"tsx src/cli.ts","dev":"tsx watch src/cli.ts","build":"npm run clean && tsc","clean":"rm -rf dist tsconfig.tsbuildinfo"},"_npmUser":{"name":"oren-birdie","email":"oren@birdiecorp.com"},"_npmVersion":"11.12.1","description":"CLI for maintaining Claude Code and Codex plugin marketplace repositories","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ajv":"^8.17.0","chalk":"^5.4.0","js-yaml":"^4.1.0","commander":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/plugin-marketplace-cli_1.0.0_1780991191998_0.0387053249693976","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@birdie_moblie/plugin-marketplace-cli","version":"1.0.1","license":"UNLICENSED","_id":"@birdie_moblie/plugin-marketplace-cli@1.0.1","maintainers":[{"name":"oren-birdie","email":"oren@birdiecorp.com"}],"bin":{"plugin-marketplace":"dist/cli.js"},"dist":{"shasum":"92230ad305456e64d70ae05d1bccefdc23ec4b1d","tarball":"https://registry.npmjs.org/@birdie_moblie/plugin-marketplace-cli/-/plugin-marketplace-cli-1.0.1.tgz","fileCount":38,"integrity":"sha512-tI3IseYplcXQNJHJMc9DOsn6A6AQeISpQ0hf+Wko917p8n8m6M5s4XxdjUYEBPpPT+kV6PyE+VHBLzBSBkiy/A==","signatures":[{"sig":"MEYCIQD6IvvGdm209BErHlmkjN2Ngzs2e8KsH65V09o3Fh3sWwIhAIiEkCzjHEByXwgET1fzzhFvbxXmShv9jwT6lND9daaJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99961},"type":"module","gitHead":"275d357507251ee8de863c24fc258ed323927776","private":false,"scripts":{"mp":"tsx src/cli.ts","dev":"tsx watch src/cli.ts","build":"npm run clean && npm run generate:skill && tsc && chmod +x dist/cli.js","clean":"rm -rf dist src/generated tsconfig.tsbuildinfo","premp":"npm run generate:skill","predev":"npm run generate:skill","generate:skill":"tsx scripts/generate-skill.ts"},"_npmUser":{"name":"oren-birdie","email":"oren@birdiecorp.com"},"_npmVersion":"11.12.1","description":"维护 Claude Code 和 Codex plugin marketplace 仓库的 CLI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ajv":"^8.17.0","chalk":"^5.4.0","js-yaml":"^4.1.0","commander":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/plugin-marketplace-cli_1.0.1_1781148821756_0.6261319820994593","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@birdie_moblie/plugin-marketplace-cli","version":"1.1.0","license":"UNLICENSED","_id":"@birdie_moblie/plugin-marketplace-cli@1.1.0","maintainers":[{"name":"oren-birdie","email":"oren@birdiecorp.com"}],"bin":{"plugin-marketplace":"dist/cli.js"},"dist":{"shasum":"fbdd2394cee95ca6102abbc23ce0efca43ee0661","tarball":"https://registry.npmjs.org/@birdie_moblie/plugin-marketplace-cli/-/plugin-marketplace-cli-1.1.0.tgz","fileCount":42,"integrity":"sha512-ShNIDTr8nyDiuzY0HnOdGeqDQMiL9JPpfIeoA8aXj+L7VYj8/pwOfYezeViYkH10mkELnu0vuTfSc3PKq3FSrQ==","signatures":[{"sig":"MEQCIEwvVC3A7CqspFfZUTHdc5rwBJ1xXsx3i8lDEqE5i5KgAiBQCuTneGXbnfq+YpepJXE7hImt3XeIlVnmVuTkF6wN3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155849},"type":"module","gitHead":"54421a5f761ac63f06c472bb09e06f7846c3f06c","private":false,"scripts":{"mp":"tsx src/cli.ts","dev":"tsx watch src/cli.ts","test":"npm run test:openspec-contracts && npm run test:lsp-contracts","build":"npm run clean && npm run generate:skill && tsc && chmod +x dist/cli.js","clean":"rm -rf dist src/generated tsconfig.tsbuildinfo","premp":"npm run generate:skill","predev":"npm run generate:skill","generate:skill":"tsx scripts/generate-skill.ts","prepublishOnly":"npm run build && npm test","test:lsp-contracts":"tsx scripts/check-lsp-contracts.ts","test:openspec-contracts":"tsx scripts/check-openspec-contracts.ts"},"_npmUser":{"name":"oren-birdie","email":"oren@birdiecorp.com"},"_npmVersion":"11.12.1","description":"维护 Claude Code 和 Codex plugin marketplace 仓库的 CLI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ajv":"^8.17.0","chalk":"^5.4.0","js-yaml":"^4.1.0","commander":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/plugin-marketplace-cli_1.1.0_1782731323383_0.9013248712461417","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@birdie_moblie/plugin-marketplace-cli","version":"1.3.0","license":"UNLICENSED","_id":"@birdie_moblie/plugin-marketplace-cli@1.3.0","maintainers":[{"name":"oren-birdie","email":"oren@birdiecorp.com"}],"bin":{"plugin-marketplace":"dist/cli.js"},"dist":{"shasum":"77a1a3b2f9aafeffd2d6048e7e4b01c43cd9b55e","tarball":"https://registry.npmjs.org/@birdie_moblie/plugin-marketplace-cli/-/plugin-marketplace-cli-1.3.0.tgz","fileCount":72,"integrity":"sha512-Xs17Ay1P2l0QvUHUZkMHvgVwSBZVKdQOLdg1n09Lzr1Ind74Y2ELjGOB9MMv1agb62PEH5/yrXvYzKVttIgMTg==","signatures":[{"sig":"MEUCIQDo8sGj9fQaaJ6X57EBqZYF6FAbfaa3GcrCF6M3nHvgnQIgURAov+75qIQM894o2Fvx+T146gztlJKcu/11ZP5R4EE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405862},"type":"module","gitHead":"d03498189986bf832857317522347764f9106b39","private":false,"scripts":{"mp":"tsx src/cli.ts","dev":"tsx watch src/cli.ts","test":"npm run test:openspec-contracts && npm run test:lsp-contracts && npm run test:hook-contracts && npm run test:agent-plugins-contracts && npm run test:install-repo-contracts","build":"npm run clean && npm run generate:skill && tsc && chmod +x dist/cli.js","clean":"rm -rf dist src/generated tsconfig.tsbuildinfo","premp":"npm run generate:skill","predev":"npm run generate:skill","generate:skill":"tsx scripts/generate-skill.ts","prepublishOnly":"npm run build && npm test","test:lsp-contracts":"tsx scripts/check-lsp-contracts.ts","test:hook-contracts":"tsx scripts/check-hook-contracts.ts","test:openspec-contracts":"tsx scripts/check-openspec-contracts.ts","test:install-repo-contracts":"tsx scripts/check-install-repo-contracts.ts","test:agent-plugins-contracts":"tsx scripts/check-agent-plugins-contracts.ts"},"_npmUser":{"name":"oren-birdie","email":"oren@birdiecorp.com"},"_npmVersion":"11.16.0","description":"维护 Agent Plugins 1.0、Claude Code、Codex 和 Cursor plugin marketplace 仓库的 CLI；支持 install-repo 注册 marketplace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.0","chalk":"^5.4.0","js-yaml":"^4.1.0","commander":"^13.0.0","jsonc-parser":"^3.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/plugin-marketplace-cli_1.3.0_1786947744227_0.0859718835270682","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@birdie_moblie/plugin-marketplace-cli","version":"1.3.1","private":false,"description":"维护 Agent Plugins 1.0、Claude Code、Codex 和 Cursor plugin marketplace 仓库的 CLI；支持 install-repo 注册 marketplace","license":"UNLICENSED","type":"module","bin":{"plugin-marketplace":"dist/cli.js"},"scripts":{"clean":"rm -rf dist src/generated tsconfig.tsbuildinfo","generate:skill":"tsx scripts/generate-skill.ts","build":"npm run clean && npm run generate:skill && tsc && chmod +x dist/cli.js","test:openspec-contracts":"tsx scripts/check-openspec-contracts.ts","test:lsp-contracts":"tsx scripts/check-lsp-contracts.ts","test:hook-contracts":"tsx scripts/check-hook-contracts.ts","test:agent-plugins-contracts":"tsx scripts/check-agent-plugins-contracts.ts","test:install-repo-contracts":"tsx scripts/check-install-repo-contracts.ts","test":"npm run test:openspec-contracts && npm run test:lsp-contracts && npm run test:hook-contracts && npm run test:agent-plugins-contracts && npm run test:install-repo-contracts","prepublishOnly":"npm run build && npm test","premp":"npm run generate:skill","mp":"tsx src/cli.ts","predev":"npm run generate:skill","dev":"tsx watch src/cli.ts"},"dependencies":{"ajv":"^8.17.0","chalk":"^5.4.0","commander":"^13.0.0","js-yaml":"^4.1.0","jsonc-parser":"^3.3.1"},"devDependencies":{"@types/js-yaml":"^4.0.9","@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.7.0"},"gitHead":"1ae2666fb5f598413b25c3fc3d3a25ef09650e6a","_id":"@birdie_moblie/plugin-marketplace-cli@1.3.1","_nodeVersion":"24.14.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-VQcVjAVY0KUa01HnSiKXjRuEaXRv41oKrDO+BtlU6kgXkrCtq+EFTOoZBg9b4NF+4V3HEvUpteOWs7XidF414g==","shasum":"8ab3a367627ea2412310a17c1dbf0d09eabd3e11","tarball":"https://registry.npmjs.org/@birdie_moblie/plugin-marketplace-cli/-/plugin-marketplace-cli-1.3.1.tgz","fileCount":72,"unpackedSize":407422,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHvj+cjFs1ZWJhMlxly5ZwLNRfwYSd3zkQjO1nF8rrKsAiEArO1pqDxgEAsCHzqlWTcdspfaZcc15+Nkz9gzB9QZ4Ro="}]},"_npmUser":{"name":"oren-birdie","email":"oren@birdiecorp.com"},"directories":{},"maintainers":[{"name":"oren-birdie","email":"oren@birdiecorp.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-marketplace-cli_1.3.1_1787030159099_0.27665317425758995"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T07:46:31.826Z","modified":"2026-08-18T05:15:59.614Z","1.0.0":"2026-06-09T07:46:32.122Z","1.0.1":"2026-06-11T03:33:41.942Z","1.1.0":"2026-06-29T11:08:43.529Z","1.3.0":"2026-08-17T06:22:24.367Z","1.3.1":"2026-08-18T05:15:59.259Z"},"license":"UNLICENSED","description":"维护 Agent Plugins 1.0、Claude Code、Codex 和 Cursor plugin marketplace 仓库的 CLI；支持 install-repo 注册 marketplace","maintainers":[{"name":"oren-birdie","email":"oren@birdiecorp.com"}],"readme":"# @birdie_moblie/plugin-marketplace-cli\n\n这是用于维护 Agent Plugins 1.0 / Claude Code / Codex / Cursor plugin marketplace 仓库的 CLI。它负责创建插件骨架、验证 `plugin.yaml`、生成标准包与平台 manifest、更新客户端 marketplace 索引，并打出本地发布包。OpenSpec source adapter metadata 通过插件内 overlay 生成 sidecar，作为兼容层存在，不改变标准或客户端原生输出格式。\n\n## 使用公网 CLI\n\n```bash\nnpx @birdie_moblie/plugin-marketplace-cli --help\n```\n\n## 常用命令\n\n```bash\nnpx @birdie_moblie/plugin-marketplace-cli init-repo [name] --organization \"团队名\" [--no-skill]\nnpx @birdie_moblie/plugin-marketplace-cli init <plugin-name> --type <skill|mcp|lsp|hook>\nnpx @birdie_moblie/plugin-marketplace-cli validate [plugin-name] --all\nnpx @birdie_moblie/plugin-marketplace-cli build [plugin-name] --all\nnpx @birdie_moblie/plugin-marketplace-cli index\nnpx @birdie_moblie/plugin-marketplace-cli release-local\nnpx @birdie_moblie/plugin-marketplace-cli install-repo <source> [--agent <agent>...] [--all]\n```\n\n从其他目录操作指定仓库时，使用 `--root <dir>`：\n\n```bash\nnpx @birdie_moblie/plugin-marketplace-cli --root /path/to/repo validate --all\n```\n\n不传 `--root` 时，CLI 会从当前工作目录向上查找 `marketplace.yaml`。除 `init-repo` 外，找不到 `marketplace.yaml` 会直接报错并提示先初始化仓库。\n\n`install-repo` 的 `<source>` 独立于 `--root`：它把已就绪的 marketplace 注册到所选 agent，不 build、不 validate、不安装插件。来源可以是本地目录、`owner/repo`、HTTPS Git URL 或 SSH Git URL。\n\n```bash\n# 非交互：显式选择 agent\nnpx @birdie_moblie/plugin-marketplace-cli install-repo owner/repo --agent claude --agent codex\n\n# 选择全部五个目标（Cursor 仍需手工 Dashboard 导入）\nnpx @birdie_moblie/plugin-marketplace-cli install-repo ./my-marketplace --all\n\n# TTY 下省略 --agent/--all 时会先探测并交互选择\nnpx @birdie_moblie/plugin-marketplace-cli install-repo https://github.com/org/plugins.git\n```\n\n目标固定顺序：`claude` → `codex` → `copilot` → `vscode` → `cursor`。退出码：全部完成 `0`、部分完成 `2`、无完成或预检失败 `1`、中断 `130`。\n如果已经本地或全局安装该 npm 包，也可以直接使用 `plugin-marketplace` bin 运行同一组命令。\n\n## 插件仓库结构\n\n```text\n.\n├── marketplace.yaml\n├── plugins/\n│   └── my-plugin/\n│       ├── plugin.yaml\n│       ├── plugin.json\n│       ├── mcp.json\n│       └── skills/\n├── .agents/skills/marketplace-maintainer/SKILL.md\n├── .claude/skills/marketplace-maintainer/SKILL.md\n├── .claude-plugin/marketplace.json\n├── .github/plugin/marketplace.json\n├── .agents/plugins/marketplace.json\n├── .cursor-plugin/marketplace.json\n└── marketplace.json\n```\n\n每个插件的 Agent Plugins / Claude Code / Codex 平台信息以 `plugin.yaml` 为唯一来源。根 `plugin.json` 与可选根 `mcp.json` 遵循 Agent Plugins 1.0.0；CLI 离线内置 canonical schema，并校验 fixed Skill discovery 与 MCP 语义。插件也可以额外提供 `openspec-source-adapters.yaml` overlay，用于声明 OpenSpec source adapter metadata。\n\n仓库本身要作为 marketplace 源使用时，以下生成物需要随源码一起提交：\n\n- `plugins/**/plugin.json`\n- `plugins/**/mcp.json`\n- `.claude-plugin/marketplace.json`\n- `.github/plugin/marketplace.json`\n- `.agents/plugins/marketplace.json`\n- `.cursor-plugin/marketplace.json`\n- `.openspec-plugin/source-adapters.json`\n- `plugins/**/.claude-plugin/plugin.json`\n- `plugins/**/.codex-plugin/plugin.json`\n- `plugins/**/.openspec-plugin/plugin.json`\n- `plugins/**/.mcp.json`\n- `plugins/**/.lsp.json`\n- `plugins/**/hooks/hooks.json`\n- `marketplace.json`\n- `plugins/CATALOG.md`\n\nLSP 插件在 `plugin.yaml` 的 `components.lsp` 声明 server metadata：\n\n```yaml\ncomponents:\n  lsp:\n    - name: dart\n      command: dart\n      args: [\"language-server\", \"--protocol=lsp\"]\n      extensionToLanguage:\n        \".dart\": dart\n      startupTimeout: 30000\n      maxRestarts: 3\n      diagnostics: true\n```\n\nCLI 会由 `components.lsp` 生成插件根目录 `.lsp.json`，并只在 Claude Code marketplace 写入 `lspServers` 字段。Codex 当前没有原生 LSP manifest；语义能力必须通过 MCP server 暴露。\n\nHook 插件推荐使用声明式脚本字段：\n\n```yaml\ncomponents:\n  hooks:\n    - event: PreToolUse\n      matcher: Bash\n      type: command\n      script: hooks/check.py\n      interpreter: python3\n      timeoutSeconds: 10\n      statusMessage: \"正在检查命令\"\n```\n\nCLI 会生成带引号的 `${CLAUDE_PLUGIN_ROOT}` 命令供 Claude Code 与 Codex lifecycle\nhook 消费。`script` 必须位于插件目录内且可执行；`validate` 会检查真实路径、生成物精确\n一致性和 stale `hooks/hooks.json`。旧 `pattern` / `command` / `timeout` 仍兼容，其中\nlegacy `command` 继续按插件内脚本路径处理并转换为带引号的插件根路径，legacy\n`timeout` 按毫秒读取并转换为生成文件中的秒。\n\nAgent Plugins MCP 推荐显式声明 transport：\n\n```yaml\ncomponents:\n  mcp:\n    - name: local-server\n      type: stdio\n      command: node\n      args: [\"./mcp/server.mjs\"]\n      cwd: \"${PLUGIN_ROOT}\"\n    - name: remote-server\n      type: streamable-http\n      url: https://example.com/mcp\n      headers:\n        X-Tenant: public\n```\n\n旧 MCP 条目省略 `type` 时继续按 `stdio` 读取。标准输出总会显式写 `type`。stdio 的 `args` / `env` / `cwd` 只允许 `${PLUGIN_ROOT}` 与 `${PLUGIN_DATA}` 两种可展开占位符；`${TOKEN}` 一类 ambient env 写法在标准客户端会保持字面量，CLI 会拒绝。`Authorization`、Cookie、API key 等凭据不能写入可见的 `env`/`headers`，由客户端认证与 secret 管理机制提供。\n\n根 `mcp.json` 保留标准 `${PLUGIN_ROOT}` / `${PLUGIN_DATA}`。原生 `.mcp.json` 会自动转换为 `${CLAUDE_PLUGIN_ROOT}` / `${CLAUDE_PLUGIN_DATA}`，并把 `./` executable/cwd 锚定到插件根；不要手改任一派生文件。\n\nAgent Plugins 1.0 不定义 Marketplace。CLI 生成 `.claude-plugin` / `.github/plugin`、`.agents/plugins` 与 `.cursor-plugin` 索引，是因为对应客户端明确支持这些入口；不会生成虚构的通用 Agent Plugins 市场文件。\n\nOpenSpec sidecar 输出只来自 `openspec-source-adapters.yaml` overlay：\n\n- `plugins/<name>/.openspec-plugin/plugin.json`\n- `.openspec-plugin/source-adapters.json`\n\n不要把 OpenSpec-only 字段加入 `plugin.yaml`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`、`.claude-plugin/marketplace.json`、`.agents/plugins/marketplace.json` 或根 `marketplace.json`。\n\n## 推荐脚本\n\n`plugin-marketplace init-repo` 会给新仓库写入一组 npm scripts，并默认注入 `marketplace-maintainer`\nSKILL 到 `.agents/skills/` 和 `.claude/skills/`，方便维护者继续创建、验证和发布插件。如需只生成基础仓库结构，可传 `--no-skill`。这些 scripts 默认调用公网 `npx`，不要求先执行 `npm install`：\n\n```json\n{\n  \"scripts\": {\n    \"mp\": \"npx @birdie_moblie/plugin-marketplace-cli\",\n    \"validate:plugins\": \"npx @birdie_moblie/plugin-marketplace-cli validate --all\",\n    \"build:plugins\": \"npx @birdie_moblie/plugin-marketplace-cli build --all\",\n    \"build:index\": \"npx @birdie_moblie/plugin-marketplace-cli index\",\n    \"build:all\": \"npm run build:plugins && npm run build:index\",\n    \"ci:local\": \"npm run build:all && npm run validate:plugins\",\n    \"release:local\": \"npm run ci:local && npx @birdie_moblie/plugin-marketplace-cli release-local\"\n  }\n}\n```\n\n如果某个仓库需要固定 CLI 版本，或希望离线维护插件目录，可以手动把 CLI 加为 devDependency：\n\n```bash\nnpm install --save-dev @birdie_moblie/plugin-marketplace-cli\n```\n\n## 维护 CLI 源码\n\n只有需要修改、测试或重新发布 `@birdie_moblie/plugin-marketplace-cli` 时才进入 `tools/`：\n\n```bash\ncd tools\nnpm install\nnpm run build\nnpm test\nnpm run mp -- --root .. build --all\nnpm run mp -- --root .. index\nnpm run mp -- --root .. validate --all\nnpm run mp -- --root .. install-repo . --agent cursor\nnpm pack --dry-run\n```\n\n本仓根目录 `mp` / `ci:local` 指向本地 `tools/dist`，用于验证未发布 CLI。远程用户与 `init-repo` 生成的新仓仍使用已发布 `npx` CLI，无需先 `npm install`。\n","readmeFilename":"README.md"}