@ bettercms-ai/ 安装
将 BetterCMS 代理技能安装到您的机器上的编码代理 .
npx @bettercms-ai/install
在一个终端里,它问 最多两件事, 每一个都有 可能的答案已经得到了,所以 按下 Enter 通过它是正常的安装 :
┌ BetterCMS agent setup v0.4.44
│
◇ Where do you want to install the BetterCMS skills?
│ Globally
│
◇ Configure BetterCMS MCP and agent skills for these editors?
│ Claude Code, Codex CLI, Cursor, Zed
│
◆ MCP configured for Claude Code, Codex CLI, Cursor and Zed
│
◆ BetterCMS agent skills installed (24):
│ ~/.claude/skills 24 installed
│ Claude Code /bettercms
│ ~/.codex/skills 24 installed
│ Codex CLI $bettercms
│ ~/.cursor/skills 24 installed
│ Cursor /bettercms
│
└ Restart Claude Code, Codex CLI, Cursor and Zed and type "set up BetterCMS for this site" in the chat.
- 地点: “这个项目”首先在一个项目内提供(一个文件夹与
package.json, (中文(简体) ),.git或代理文件夹)。 没有代理文件夹的工程会得到您安装的代理, 并创建他们的文件夹 。 在你家的目录中,"全球"是先提供的. - 编辑: 一个问题既包括技能和MCP。 Claude Code, Codex CLI, Cursor, VS Code and Zed 总是被提供;在你的机器上发现的被勾出. 未测试剂在安装时列出,并贴有标签.
- 技能: 全部都一样 将技能 ID 命名为要安装更少的参数 .
- 磁共振: 主机BetterCMS MCP进入每个编辑器的用户级配置(
--no-mcp跳过它。 它从不覆盖已有的bettercms条目,从不写证书。 你第一次用的时候就签了.
脚本,同样的安装是:
npx @bettercms-ai/install --global # every detected agent, in your home directory
npx @bettercms-ai/install --project -y # agent folders inside the current project
npx @bettercms-ai/install -g --agents claude,cursor,vscode,zed --mcp
为什么这个安装器
- 离线. 包裹内的技能船. 安装不需要网络请求, 也不需要账户或信使 .
- 知其所写. 一张收据列出了每个文件 上面有它的sha256, 所以重新运行的报告
unchanged而不是重写,一个升级 刷新版本的下降,和--remove完全删除它写的东西, 而不是其他东西. - 在它写之前显示. 引导流列出它会触及的每一个文件夹和配置;
--dry-run在剧本中做同样的事情.
选项
| 选项 | 含义 |
|---|---|
[skill-ids...] | 仅安装这些技能, by id (bettercms, (中文(简体) ), bettercms-migrate, (中文(简体) ), bettercms-abm); id是下面的文件夹 packages/skills。默认值为全部三个. |
--global, (中文(简体) ), -g | 使用您家目录下的代理根 . |
--project | 在当前目录下使用代理根 . |
--agents a,b | 选择特工 默认情况下,每个目录已经存在的代理都会被使用. |
--mcp | 同时注册BetterCMS MCP服务器(见下文). |
--api <rung|url> | 那个API --mcp 点数 : prod (违约), dev, (中文(简体) ), local,或全数 https:// URL (中文(简体) ). 任何其他值出口2号. |
--remove | 删除早先安装时所写的内容 。 移除所有技能, 或只删除您给出的标识 . |
-y, (中文(简体) ), --yes | 跳过确认提示 . |
--dry-run | 印出结果行而不用写作. |
没有终端(CI、管子)或带 -y没有问题 没有 --global 或者说 --project,项目文件夹(一个带有代理文件夹,或 package.json 或者说 .git 在您安装一些代理时), 表示 --project;在其它任何地方,命令退出2而不是猜测. -y 从不连接 MCP : 这需要 --mcp。 。 。 .
在脚本运行中,每个代理/技能配对打印出一行: installed, (中文(简体) ), updated, (中文(简体) ), unchanged, (中文(简体) ), removed, (中文(简体) ), exists-unmanaged, (中文(简体) ), skipped: <reason> 或者说 failed: <reason>。 。 。 . exists-unmanaged 表示一个 bettercms-<id> 文件夹已经存在, 没有收据列表 。 安装者不会在文件夹里写任何东西 并且继续学习其他技能 退出代码为 0 当没有失败时, 1 当任何失败或曾经失败时 exists-unmanaged,2用于使用错误。 一个没有技能的建筑也被捆绑在2号出口.
写在哪里
每个技能都被复制到 <root>/bettercms-<id>/. 已经从 bettercms- 保持他们的名字不变.
| 探员 | --global 根号 | --project 根号 | 已测试 |
|---|---|---|---|
| 克劳德代码 | ~/.claude/skills | .claude/skills | 对 |
| 代码 CLI | ~/.codex/skills | .agents/skills | 对 |
| 光标 | ~/.cursor/skills | .agents/skills | 对 |
| VS 代码( 副驾驶) | ~/.copilot/skills | .agents/skills | 对 |
| 齐德 | (没有技能文件夹:仅限 MCP) | 对 | |
| 倾角 | ~/.config/amp/skills | .agents/skills | 没有 |
| 双子座CLI | ~/.gemini/skills | .agents/skills | 没有 |
| 打开代码 | ~/.config/opencode/skills | .agents/skills | 没有 |
| Pi | ~/.pi/agent/skills | .pi/skills | 没有 |
| 反重力 | ~/.gemini/antigravity/skills | .gemini/antigravity/skills | 没有 |
| 风起浪起 | ~/.codeium/windsurf/memories/global_rules.md | .windsurf/rules/bettercms-<id>.md | 没有 |
以下为项目根 动词片/技能: 读取共享的代理 .agents/skills 在那里得到一份拷贝, 不是每个一个.
"未测试"指根跟随其他技能安装器使用的会话,但没有人检查过代理机是否实际从中装入技能. 这些行被标记为 * 在输出中.
Windsurf 没有技能文件夹 :
- 全球: 每个技能
SKILL.md身体进入global_rules.md介于<!-- bettercms:<id>:begin v=<version> -->财务报告和审定财务报表<!-- bettercms:<id>:end -->重新运行可以取代整块,所以你永远也不会有两本。 你写在标记外面的任何东西 都保持原样. - 项目: 每个技能都变成一个规则文件.
在这两种情况下 SKILL.md 被结转。 参考文件不是.
无 --mcp,安装者只在上面的代理根内写入.
收据、升级、未安装
每个根都有一个 .bettercms-skills.json 收讫. 它列出了安装器所写的每一个文件, 以及它的sha256.
- 重运行同一版本 改变什么。 文件只有在其字节不同时才被写入,而收件只有在内容发生变化时才被重写.
- 升级 写入新文件。 新版本的档案不再被删除,被更名或退役的技能也是如此.
--remove准确删除收件中列出的文件,然后删除任何留空目录,然后删除收件项。 收件文件一旦被空出, 就会自动打开 。 收据中未包含的任何内容永远不会被删除,包括您在 a 中添加的文件bettercms-*文件夹.
在写出任何内容之前,安装者会检查捆绑的列表和每个文件散列. 每个写入和删除路径都必须在所选的根内部解决,安装者拒绝通过根下方的同义链接.
--mcp
--mcp 连接主机BetterCMS MCP(https://mcp.bettercms.ai· ; --api dev 用途 https://mcp.bettercms.dev,任何其他API自己的 /mcp) (中文(简体) ). 每个编辑的条目 用户级别 配置, 以编辑器的形状 :
| 编辑器 | 何处 | 条目 |
|---|---|---|
| 克劳德代码 | claude mcp add --transport http -s user bettercms <url> (JSON如果 claude CLI不是在你的路径上) | |
| 代码 CLI | ~/.codex/config.toml | [mcp_servers.bettercms] url = "<url>" |
| 光标 | ~/.cursor/mcp.json | mcpServers.bettercms: { url } |
| VS 代码( 副驾驶) | 用户 mcp.json (单位:千美元)~/.config/Code/User, (中文(简体) ), ~/Library/Application Support/Code/User, (中文(简体) ), %APPDATA%\Code\User(中文(简体) ) | servers.bettercms: { type: "http", url } |
| 齐德 | ~/.config/zed/settings.json | context_servers.bettercms: { url } |
| 双子座CLI | ~/.gemini/settings.json | mcpServers.bettercms: { httpUrl } |
| 其他代理人 | JSON 片断已打印 |
如果有的话 bettercms 条目已经存在,结果为 skipped: exists。安装者从不覆盖或合并到该条目,也从不写出一个符号或证书。 一个非普通 JSON (Zed 的设置允许注释) 的配置文件不受影响, 片段会打印为您粘贴 。 您在浏览器的第一个工具呼叫上签名 .
发展
prepack 运行 scripts/build-manifest.mjs。它复制每个 packages/skills/<id>/ 包含一个 SKILL.md 输入 skills/,然后写 manifest.json 加号 .claude-plugin/{plugin.json,marketplace.json}。在技能上失败,没有 name 或者说 description任何不安全的路径 生成的文件被 gitignored .
bun test test/install.test.js
bun test test/build-manifest.test.js