{"_id":"@bebenzhu/skill-manager","_rev":"6-31303dae6a5d2c893c496441b9ad1233","name":"@bebenzhu/skill-manager","dist-tags":{"latest":"3.2.3"},"versions":{"3.0.0":{"name":"@bebenzhu/skill-manager","version":"3.0.0","keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"author":{"name":"bebenzhu"},"license":"MIT","_id":"@bebenzhu/skill-manager@3.0.0","maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"bin":{"skill-manager":"bin/skill-manager.js"},"dist":{"shasum":"93891b3c67a78ec3913e9f09bbb0e178a3ef6d8b","tarball":"https://registry.npmjs.org/@bebenzhu/skill-manager/-/skill-manager-3.0.0.tgz","fileCount":3,"integrity":"sha512-cTj/8/pZKCqVEvNT4j13SfMq34dpOUOKuZvREEB2wjiW1V9R9mkLvZZeWSBtXetbHi7b77G46s08XACKyCbCfw==","signatures":[{"sig":"MEUCIF9Z3aFHwyi6nFrmX18d13j1XDuHFWLunAdIBnM9p8KSAiEA2PJr8NM0DW3ao7qTD81kaDDS19Bz11Z52dmR369ZTxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33437},"engines":{"node":">=18"},"gitHead":"5576343ced62dd961719d01ea0b699fb0b485a5b","_npmUser":{"name":"bebenzhu","email":"bebenzhu@163.com"},"repository":{"url":"https://gitee.com/bebenzhu/ai-skill.git","type":"git"},"_npmVersion":"11.6.2","description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skill-manager_3.0.0_1781155292730_0.3695336574716319","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@bebenzhu/skill-manager","version":"3.1.0","keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"author":{"name":"bebenzhu"},"license":"MIT","_id":"@bebenzhu/skill-manager@3.1.0","maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"bin":{"skm":"bin/skill-manager.js","skill-manager":"bin/skill-manager.js"},"dist":{"shasum":"302b52fecae98bc7d703d9941c7a16f92736673f","tarball":"https://registry.npmjs.org/@bebenzhu/skill-manager/-/skill-manager-3.1.0.tgz","fileCount":3,"integrity":"sha512-P888pNIY9YZ/RqaJjZxl9IimoThfvxrpNIwM3XJ7z9nLBj4QCh1XR4HZoUTshk08nWtxIfZ05hqFw3RzdzRBog==","signatures":[{"sig":"MEYCIQDM0qtC4PCwSHcmZCJq/5g54ArgrN3S3XiMwwilOgdEMwIhAKAiTexxXi31JD62E+jBbLMFKampd3+7b5Qs/4S04BhG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33628},"engines":{"node":">=18"},"gitHead":"5576343ced62dd961719d01ea0b699fb0b485a5b","_npmUser":{"name":"bebenzhu","email":"bebenzhu@163.com"},"repository":{"url":"https://gitee.com/bebenzhu/ai-skill.git","type":"git"},"_npmVersion":"11.6.2","description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skill-manager_3.1.0_1781156494545_0.5801850826907899","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@bebenzhu/skill-manager","version":"3.2.0","keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"author":{"name":"bebenzhu"},"license":"MIT","_id":"@bebenzhu/skill-manager@3.2.0","maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"bin":{"skm":"bin/skill-manager.js","skill-manager":"bin/skill-manager.js"},"dist":{"shasum":"60ab77d2e1c1e409f2f7f9ec4159a378d0805584","tarball":"https://registry.npmjs.org/@bebenzhu/skill-manager/-/skill-manager-3.2.0.tgz","fileCount":3,"integrity":"sha512-FEUNJa7O63IQixzdclMXQEdS7ZHlKc1N0oULZSFaE8MVbos2OCPek9FpBXmIoXDBJSlogQ0uExkojAQY0LGZxA==","signatures":[{"sig":"MEUCIQCCZDw1OZZhObae3mYqCltiXMCpWIbmNgFA2KlKiiaymgIgEOK7Lk1LbidSOIf8vI9iOVI7+S46OVvm22R05HGcH7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52614},"engines":{"node":">=18"},"gitHead":"c8ca48cc151463dae423bde10acf7d60ed4c951b","_npmUser":{"name":"bebenzhu","email":"bebenzhu@163.com"},"repository":{"url":"https://gitee.com/bebenzhu/ai-skill.git","type":"git"},"_npmVersion":"11.6.2","description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skill-manager_3.2.0_1781160717498_0.43130088915250653","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@bebenzhu/skill-manager","version":"3.2.1","keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"author":{"name":"bebenzhu"},"license":"MIT","_id":"@bebenzhu/skill-manager@3.2.1","maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"bin":{"skm":"bin/skill-manager.js","skill-manager":"bin/skill-manager.js"},"dist":{"shasum":"23694c16d0e9fea496d78b0fd8df4b95b1e14441","tarball":"https://registry.npmjs.org/@bebenzhu/skill-manager/-/skill-manager-3.2.1.tgz","fileCount":3,"integrity":"sha512-T/7IoJyc5tlmjTb/t0uM9nw6plMLqrvgU4ilGif7U/rp0VWW6vckIT9Guu1SA4qXgr4jLTrcCfKfS+HMzy+l3w==","signatures":[{"sig":"MEQCIDn3g6AvIXy1ELjTsMrJFq66oAnhDOG/9YBgcOWNpbVgAiA7VDUBne3R/mKPvZkfhaQJvXu/LHeasRkQ2rthcMiLZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52894},"engines":{"node":">=18"},"gitHead":"34ea7b707e8e7a67aa2b67179f40ed4cb1948336","_npmUser":{"name":"bebenzhu","email":"bebenzhu@163.com"},"repository":{"url":"https://gitee.com/bebenzhu/ai-skill.git","type":"git"},"_npmVersion":"11.6.2","description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skill-manager_3.2.1_1781162556526_0.9016239569724447","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@bebenzhu/skill-manager","version":"3.2.2","keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"author":{"name":"bebenzhu"},"license":"MIT","_id":"@bebenzhu/skill-manager@3.2.2","maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"bin":{"skm":"bin/skill-manager.js","skill-manager":"bin/skill-manager.js"},"dist":{"shasum":"2f91cc0dda909464178f3aa2a66748c933eef76b","tarball":"https://registry.npmjs.org/@bebenzhu/skill-manager/-/skill-manager-3.2.2.tgz","fileCount":3,"integrity":"sha512-rRCm3ui0K+9w41SGVQ4ZNhe/PnmrOUrP7BldJwky8xz+riixb2nHBNhsSABU4vL6sTy8m13+xnQi+6HjzVfc0w==","signatures":[{"sig":"MEUCICMnIlxn8OFOy1HP7hWFIEnYuPT9tMrmnoChBVahwzklAiEA/PynEyifkWsXtNx3+T52XNwhWO6nvgW3mPGzq+MeXEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55182},"engines":{"node":">=18"},"gitHead":"2cea1d3d102529d0604f2182731eca144a05dafc","_npmUser":{"name":"bebenzhu","email":"bebenzhu@163.com"},"repository":{"url":"https://gitee.com/bebenzhu/ai-skill.git","type":"git"},"_npmVersion":"11.6.2","description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skill-manager_3.2.2_1781167770630_0.1130026233346062","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@bebenzhu/skill-manager","version":"3.2.3","description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","license":"MIT","author":{"name":"bebenzhu"},"keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"bin":{"skill-manager":"bin/skill-manager.js","skm":"bin/skill-manager.js"},"engines":{"node":">=18"},"repository":{"type":"git","url":"https://gitee.com/bebenzhu/ai-skill.git"},"gitHead":"ccd398d9e3c547da9628bba73dfba606265434e9","_id":"@bebenzhu/skill-manager@3.2.3","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-+j+QoJrgnl4tySEiX9pzRAj9X3zlUQ4Z7zvWHwqvgJ6mnfIDCYmIRoxDhqnKjNv9TVWteZDgbHJEiW8fbKcQdQ==","shasum":"efcd6129e1ae795ecdfe81297b75e2f449251dc3","tarball":"https://registry.npmjs.org/@bebenzhu/skill-manager/-/skill-manager-3.2.3.tgz","fileCount":3,"unpackedSize":55432,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGU1roFDLB7GJLipZ9j//h2Kj6trZWgVvXv6R/kPANGUAiEA3SuHrxZdmhePZgY6XEXVSGMp27Q36Zd1VFAAqcXry50="}]},"_npmUser":{"name":"bebenzhu","email":"bebenzhu@163.com"},"directories":{},"maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skill-manager_3.2.3_1781170554110_0.5484040731718756"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T05:21:32.539Z","modified":"2026-06-11T09:35:54.387Z","3.0.0":"2026-06-11T05:21:32.882Z","3.1.0":"2026-06-11T05:41:34.720Z","3.2.0":"2026-06-11T06:51:57.628Z","3.2.1":"2026-06-11T07:22:36.655Z","3.2.2":"2026-06-11T08:49:30.785Z","3.2.3":"2026-06-11T09:35:54.257Z"},"author":{"name":"bebenzhu"},"license":"MIT","keywords":["skill","manager","ai-cli","claude-code","cursor","copilot","multi-source","multi-device"],"repository":{"type":"git","url":"https://gitee.com/bebenzhu/ai-skill.git"},"description":"AI CLI skills multi-source aggregation and multi-tool distribution manager","maintainers":[{"name":"bebenzhu","email":"bebenzhu@163.com"}],"readme":"# @bebenzhu/skill-manager\n\n> AI CLI skills 多来源聚合 + 多工具分发管理器\n\n聚合多个 skill 来源，分发到多个 CLI 工具，**一处修改，多个工具同步**。\n\n## 解决的痛点\n\n- Claude Code、Codex、Cursor、skills.sh 等工具各自管理自己的 skill，**修改一处不能全局生效**\n- 在多台设备间同步 skill 缺乏统一方案\n- 私人 skill 与公共 skill（从网络下载）混杂，权限不清\n\n## 架构\n\n```\n              ┌─────────────────────────────────────┐\n              │         skill-manager               │\n              │   (聚合 + 分发 + git 同步)            │\n              └─────────────────────────────────────┘\n                          │\n            ┌─────────────┴─────────────┐\n            ▼                           ▼\n   sources（来源）              merged（合并视图）\n   ├─ repo/（git 私人）          ├─ format-sql → repo/format-sql\n   ├─ skills.sh/（公共下载）     ├─ db-sync    → repo/db-sync\n   └─ ...（可配置扩展）           └─ ...\n                                        │\n                              cli targets（CLI 工具）\n                              ├─ ~/.claude/skills  → merged\n                              ├─ ~/.codex/rules    → merged\n                              └─ ...\n```\n\n**核心设计：**\n- **repo** 是私人 skill 的唯一本地源（git 管理）\n- **external_sources** 是外部 skill 来源（不参与 git）\n- **merged** 是逐 skill 链接的合并视图\n- **cli.targets** 通过 junction 指向 merged\n\n修改 merged 下任意 skill（即修改源），所有 CLI 工具即时可见。\n\n## 安装\n\n```bash\nnpm i -g @bebenzhu/skill-manager\n```\n\n## 快速开始\n\n```bash\n# 1. 初始化\nskill-manager init\n# 跟随提示：填写 git 仓库、merged 目录、CLI 路径\n\n# 2. 建立链接（含自动入 repo）\nskill-manager link\n\n# 3. 推送到远程\nskill-manager push\n```\n\n## 命令\n\n> 全名 `skill-manager` 可缩写为 `skm`，两者完全等价（如 `skill-manager link` ≡ `skm link`）。\n\n### 核心命令\n\n| 命令 | 说明 |\n|------|------|\n| `init` | 初始化配置（首次使用） |\n| `link [skill]` | 建立/修复所有链接（含自动入 repo） |\n| `unlink <skill>` | 断开某 skill 的链接（源目录保留） |\n| `add <skill>` | 在 repo 中创建新 skill（带 SKILL.md 模板） |\n| `remove <skill>` | 彻底删除 skill |\n\n### 可观测性\n\n| 命令 | 说明 |\n|------|------|\n| `list` | 列出所有 skill（默认显示 merged 可见视图） |\n| `info <skill> [--verbose]` | 查看 skill 详情（来源/路径/链接/git/同名冲突预警） |\n| `doctor [--fix]` | 健康检查（error/warn/info 分级，可自动修复） |\n| `status` | 架构状态 |\n| `scan` | 扫描所有来源 |\n\n### 同步\n\n| 命令 | 说明 |\n|------|------|\n| `push [<skill>...] [-m msg]` | 增量或全量推送 |\n| `pull [--force]` | 拉取并自动 link（默认拒绝未提交修改） |\n\n### 配置\n\n| 命令 | 说明 |\n|------|------|\n| `config` | 查看/修改配置 |\n| `destroy` | 清理所有本地数据 |\n\n**子命令别名**：`ls` = `list`，`rm` = `remove`，`st` = `status`\n\n### `list` 命令选项\n\n```bash\nskm list                  # 默认输出\nskm list --verbose        # 表格格式，含 NAME/SOURCE/STATUS\nskm list --source repo    # 只显示 repo 来源\nskm list --broken         # 只显示有问题的（断链/孤儿）\nskm list --no-color       # 禁用颜色\n```\n\n### `info` 命令示例\n\n```bash\nskm info format-sql\n# format-sql\n# ────────────────────────────────────────\n# 来源:    repo\n# 路径:    C:\\Users\\chenhao\\.skill-manager\\repo\\format-sql\n# merged:  ✓ format-sql → C:\\Users\\chenhao\\.skill-manager\\repo\\format-sql\n# 可见于:  claude-code ✓, codex ⚠\n# git:     tracked, last commit 4 hours ago\n# 文件: 1 个, 1 个子目录, 21.8KB\n\nskm info format-sql --verbose   # 追加 SKILL.md frontmatter\n```\n\n### `doctor` 命令示例\n\n```bash\n$ skm doctor\n! cli        1 issue\n   ! codex → C:\\Users\\chenhao\\.codex\\rules (不是 junction)\n\n→ 0 error, 1 warn, 0 info\n1 issue(s) require manual fix\n\n$ skm doctor --fix   # 自动修复可修的（如断链）\n```\n\n## 典型工作流\n\n### 场景 1：日常在 Claude Code 中创建 skill\n\n```bash\n# 在 Claude Code UI 中创建 skill（文件落在 ~/.claude/skills/，实际是 merged）\n# 完成后运行：\nskm link                 # 自动将真实目录移入 repo，建立链接\nskm push                 # 推送到远程\n```\n\n### 场景 2：增量推送部分 skill\n\n```bash\nskm push format-sql              # 只推送一个\nskm push format-sql db-sync      # 推送多个\nskm push -m \"fix: 解析 bug\"      # 自定义 commit message\n```\n\n### 场景 3：从零创建全新 skill\n\n```bash\nskm add my-skill        # 在 repo 中创建并生成 SKILL.md 模板\n# 编辑 ~/.skill-manager/repo/my-skill/SKILL.md\nskm link                # 建立链接\n```\n\n### 场景 4：删除一个 skill\n\n```bash\nskm remove my-skill     # 从 repo 和 merged 删除\nskm push                # 同步到远程\n```\n\n### 场景 5：多设备协作\n\n```bash\n# 设备 A：推送到远程\nskm push\n\n# 设备 B：拉取（默认拒绝未提交修改，保护本地数据）\nskm pull\n# 拉取后自动 link，无需手动 skm link\n```\n\n### 场景 6：健康检查\n\n```bash\nskm doctor              # 查看架构状态\nskm doctor --fix        # 自动修复可修复项\nskm info format-sql     # 查看单个 skill 详情\n```\n\n## 配置\n\n配置文件：`~/.skill-manager/config.yml`\n\n```yaml\n# Git 仓库（私人 skill）\ngit_repo: \"https://gitee.com/bebenzhu/ai-skill.git\"\nbranch: master\n\n# 统一合并目录（所有 skill 聚合视图）\nmerged_dir: ~/.skill-manager/merged\n\n# 外部 skill 来源（不参与 git 同步，目录可不存在）\nexternal_sources:\n  skills.sh: ~/.agents/skills\n  # 可扩展：\n  # npm: ~/.npm-skills\n\n# 各 CLI 工具的目标路径（通过 junction 指向 merged_dir）\nclis:\n  claude-code: ~/.claude/skills\n  codex: ~/.codex/rules\n  # cursor: ~/.cursor/rules\n```\n\n## 认证\n\n推荐使用 SSH Key：\n\n```bash\nssh-keygen -t edd25519 -C \"your@email.com\"\n# 将公钥添加到 Gitee/GitHub\n# 仓库地址使用 SSH: git@gitee.com:bebenzhu/ai-skill.git\n```\n\n或使用 Personal Access Token（首次 push 时输入）。\n\n## 目录布局\n\n```\n~/.skill-manager/\n├── config.yml           # 全局配置\n├── repo/                # git 仓库（私人 skill，扁平）\n│   ├── format-sql/\n│   ├── db-sync/\n│   └── ...\n├── merged/              # 逐 skill 链接的合并视图\n│   ├── format-sql → ../repo/format-sql\n│   └── ...\n\n~/.claude/skills         # junction → ~/.skill-manager/merged/\n~/.codex/rules           # junction → ~/.skill-manager/merged/\n```\n\n## 迁移指南（从 skill-sync 升级）\n\n旧工具 `@bebenzhu/skill-sync` 已被弃用（npm deprecate）。新功能只在 `@bebenzhu/skill-manager` 中开发。\n\n**配置和仓库无需改动**：\n- `~/.skill-manager/` 目录保留\n- 现有 skill 文件保留\n- 仅需重新安装包：`npm i -g @bebenzhu/skill-manager`\n\n**命令变更**：\n- 旧版\"建立链接\"类命令已重命名为 `link`\n- 其余命令功能保持或增强\n\n## License\n\nMIT\n","readmeFilename":"README.md"}