内容
# 跨代理技能管理
[](https://www.npmjs.com/package/swarmskills)
[](https://www.npmjs.com/package/swarmskills)
[](https://github.com/swarmclawai/swarmskills/blob/main/LICENSE)
[](https://github.com/swarmclawai/swarmskills/actions/workflows/ci.yml)
用于在约 45 个代码 CLI 代理中管理技能的 CLI 和 MCP 服务器。
- **多代理**: 支持多种代理,包括 Claude Code、Cursor、Codex、Goose、Gemini CLI、OpenCode、GitHub Copilot、Windsurf、OpenHands、Qwen Code、Cline、Continue、Crush、iFlow、Junie、Kiro、Kode、Roo Code、Kilo Code、Antigravity、Amp、Droid、Firebender、Replit、Warp、Augment、Bob、CodeBuddy、Command Code、Cortex Code、Deep Agents、Kimi、MCPJam、Mistral Vibe、OpenClaw、TRAE、TRAE CN、Mux、Neovate、Pi、Pochi、Qoder、Zencoder、AdaL、Hermes 等,以及用户定义的自定义工具。
- **CLI**: 列出、显示、搜索、同步技能;管理 Claude Code 插件和市场。
- **MCP 服务器**: 18 种工具,允许 Claude(或其他 MCP 客户端)发现、安装、启用和同步技能。
所有代理都使用相同的 `SKILL.md` + YAML 前置格式;`swarmskills` 知道每个代理在哪里查找它们。
## 安装
```sh
npm install -g swarmskills
```
需要 Node.js 20+。
## CLI 使用
### 多代理
```sh
# 查看所有支持的工具及其在本机上是否被检测到
swarmskills tools list
swarmskills tools list --detected
swarmskills tools detect cursor
# 列出特定工具的技能
swarmskills list --tool=cursor
swarmskills list --tool=goose
# 列出所有检测到的工具的技能
swarmskills list --skills --all-tools
# 在所有检测到的工具中搜索技能
swarmskills search "test driven" --tool=all
# 从非 Claude 工具显示技能内容
swarmskills show my-skill --tool=cursor
# 注册自定义工具
swarmskills tools add-custom myagent /abs/path/to/skills --name "我的代理"
swarmskills tools remove-custom myagent
```
### 设置默认工具
不想每次都输入 `--tool=cursor`?选择一个默认工具,`list`、`show`、`search`(不带 `--tool`)将使用它。
```sh
# 交互式选择器 - 显示所有检测到的工具,您选择一个
swarmskills tools set-default
# 直接传递密钥
swarmskills tools set-default cursor
swarmskills tools set-default all # 默认跨工具发现
swarmskills tools get-default # 显示有效默认工具 + 来源
swarmskills tools clear-default # 恢复到 claude-code
```
解析优先级(从高到低):
1. 命令上显式 `--tool=<key>` 标志
2. `SWARMSKILLS_DEFAULT_TOOL` 环境变量
3. `defaults.tool` 在 `~/.config/swarmskills/config.json` 中
4. `claude-code`
### 同步技能
```sh
# 将 Claude Code 中的技能镜像到 Cursor + Goose(默认符号链接)
swarmskills sync my-skill --from claude-code --to cursor,goose
# 将一个工具的所有技能镜像到另一个工具
swarmskills sync --all --from claude-code --to cursor
# 强制覆盖,复制而不是符号链接
swarmskills sync my-skill --from claude-code --to cursor --copy --force
```
### Claude Code 插件(仅限 Claude)
```sh
swarmskills list # 插件 + Claude Code 技能
swarmskills enable superpowers@claude-plugins-official
swarmskills disable superpowers@claude-plugins-official
swarmskills install superpowers@claude-plugins-official
swarmskills marketplace list
swarmskills marketplace add my-marketplace owner/repo
swarmskills marketplace refresh claude-plugins-official
```
## MCP 服务器使用
将以下内容添加到您的 MCP 配置文件(`~/.claude.json` 或项目 `.mcp.json` 或任何其他 MCP 感知客户端):
```json
{
"mcpServers": {
"swarmskills": {
"command": "npx",
"args": ["-y", "swarmskills-mcp"]
}
}
}
```
服务器暴露了 18 种工具:
| 工具 | 目的 |
|------|---------|
| `list_skills` | 列出工具的技能,或所有检测到的工具 |
| `show_skill` | 读取技能的完整 SKILL.md |
| `search_skills` | 模糊搜索技能、插件和市场目录 |
| `list_tools` | 支持的 CLI 代理注册表,带有检测/安装标志 |
| `detect_tool` | 探测单个工具密钥 |
| `add_custom_tool` / `remove_custom_tool` | 注册/注销用户定义的 CLI 代理 |
| `get_default_tool` / `set_default_tool` / `clear_default_tool` | 管理在未传递 `tool` 时使用的默认工具 |
| `sync_skill` | 将技能从一个工具同步到其他工具 |
| `list_plugins` | 列出已安装的 Claude Code 插件 |
| `enable_plugin` / `disable_plugin` | 切换 Claude Code 插件 |
| `install_plugin` / `uninstall_plugin` | 管理 Claude Code 插件 |
| `list_marketplaces` | 列出 Claude Code 市场 |
| `list_marketplace_catalog` | 显示市场提供的插件 |
| `add_marketplace` / `remove_marketplace` | 管理 Claude Code 市场 |
| `refresh_marketplace` | `git pull` 市场克隆 |
> **重启注意事项**:大多数 CLI 代理在会话开始时读取其技能状态。变更工具(`enable`、`install`、`sync`)返回 `requiresRestart: true` - 重启受影响的代理以使更改生效。
对于 HTTP 传输而不是 stdio:
```sh
swarmskills-mcp-http --port 4100
```
## 支持的工具(内置)
| 密钥 | 显示名称 | 默认技能目录 |
|-----|--------------|--------------------|
| `claude-code` | Claude Code | `~/.claude/skills` (+ 插件缓存) |
| `cursor` | Cursor | `~/.cursor/skills` |
| `codex` | Codex | `~/.codex/skills` |
| `goose` | Goose | `~/.config/goose/skills` |
| `gemini-cli` | Gemini CLI | `~/.gemini/skills` |
| `github-copilot` | GitHub Copilot | `~/.copilot/skills` |
| `windsurf` | Windsurf | `~/.codeium/windsurf/skills` |
| `opencode` | OpenCode | `~/.config/opencode/skills` |
| `openhands` | OpenHands | `~/.openhands/skills` |
| `qwen-code` | Qwen Code | `~/.qwen/skills` |
| `cline` | Cline | `~/.agents/skills` |
| `continue` | Continue | `~/.continue/skills` |
| `crush` | Crush | `~/.config/crush/skills` |
| `iflow` | iFlow CLI | `~/.iflow/skills` |
| `junie` | Junie | `~/.junie/skills` |
| `kiro` | Kiro CLI | `~/.kiro/skills` |
| `kode` | Kode | `~/.kode/skills` |
| `roo-code` | Roo Code | `~/.roo/skills` |
| `kilo-code` | Kilo Code | `~/.kilocode/skills` |
| `antigravity` | Antigravity | `~/.gemini/antigravity/skills` |
| `amp` | Amp | `~/.config/agents/skills` |
| `droid` | Droid | `~/.factory/skills` |
| `firebender` | Firebender | `~/.firebender/skills` |
| `replit` | Replit | `~/.config/agents/skills` |
| `warp` | Warp | `~/.agents/skills` |
| `augment` | Augment | `~/.augment/skills` |
| `bob` | IBM Bob | `~/.bob/skills` |
| `codebuddy` | CodeBuddy | `~/.codebuddy/skills` |
| `command-code` | Command Code | `~/.commandcode/skills` |
| `cortex` | Cortex Code | `~/.snowflake/cortex/skills` |
| `deepagents` | Deep Agents | `~/.deepagents/agent/skills` |
| `kimi` | Kimi Code CLI | `~/.config/agents/skills` |
| `mcpjam` | MCPJam | `~/.mcpjam/skills` |
| `mistral-vibe` | Mistral Vibe | `~/.vibe/skills` |
| `mux` | Mux | `~/.mux/skills` |
| `neovate` | Neovate | `~/.neovate/skills` |
| `openclaw` | OpenClaw | `~/.openclaw/skills` |
| `pi` | Pi | `~/.pi/agent/skills` |
| `pochi` | Pochi | `~/.pochi/skills` |
| `qoder` | Qoder | `~/.qoder/skills` |
| `trae` | TRAE IDE | `~/.trae/skills` |
| `trae-cn` | TRAE CN | `~/.trae-cn/skills` |
| `zencoder` | Zencoder | `~/.zencoder/skills` |
| `adal` | AdaL | `~/.adal/skills` |
| `hermes` | Hermes Agent | `~/.hermes/skills`(递归) |
路径列表参考了 [`xingkongliang/skills-manager`](https://github.com/xingkongliang/skills-manager) - 致谢。
`.config/...` 路径也遵循 `XDG_CONFIG_HOME` 设置。需要此列表中没有的工具?`swarmskills tools add-custom <key> <skillsDir>`。
## 工作原理
对于每个工具,swarmskills 解析磁盘技能目录并从每个 `SKILL.md` 中分析 YAML 前置元数据。Claude Code 还具有插件捆绑的技能,位于 `~/.claude/plugins/cache/<marketplace>/<plugin>/skills/` 下,通过相同的 `list_skills` API 显示。
管理状态:
- `~/.claude/skills/` - Claude Code 独立技能
- `~/.claude/plugins/installed_plugins.json` - Claude 插件注册表
- `~/.claude/plugins/known_marketplaces.json` - Claude 市场注册表
- `~/.claude/settings.json` `enabledPlugins` - Claude 每个插件的启用标志
- `~/.config/swarmskills/config.json` - swarmskills 的配置(自定义工具、默认值)
所有写入都是原子的(写入 `.tmp` 然后重命名)。
要在测试中使用非默认主目录:
```sh
SWARMSKILLS_HOME=/path/to/fake-home swarmskills tools list
```
## 开发
```sh
pnpm install
pnpm test
pnpm build
```
## 许可证
MIT © SwarmClaw AI