skillmux 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,111 +1,284 @@
1
- # SkillMux
2
-
3
- SkillMux is a local CLI for managing skills across multiple agents. It discovers agent skill directories, keeps a canonical managed store under `.skillmux`, and enables or disables skills by creating or removing symlinks. v0 is local-only: it does not download remote skills or update them from the network.
4
-
5
- ## Requirements
6
-
7
- - Node.js 20 or newer
8
- - Windows, Linux, or macOS
9
-
10
- ## Install and build
11
-
12
- From the repository root:
13
-
14
- ```bash
15
- npm install
16
- npm run build
17
- ```
18
-
19
- For local development, you can also run:
20
-
21
- ```bash
22
- npm run test
23
- npm run typecheck
24
- ```
25
-
26
- After building, the CLI entrypoint is `dist/cli.js`, exposed as the `skillmux` binary in `package.json`.
27
-
28
- ## Supported commands
29
-
30
- - `skillmux agents [--json]`
31
- - Shows the discovered agent directories and whether they exist on disk.
32
- - `skillmux scan [--json]`
33
- - Scans discovered agent skill directories.
34
- - Updates the manifest with the current snapshot.
35
- - `skillmux list [--view records|agents|skills] [--format table|json]`
36
- - Lists scan results as raw records, grouped by agent, or grouped by skill.
37
- - `skillmux import --source <path> --name <name>`
38
- - Copies an existing local skill into the SkillMux managed store.
39
- - `skillmux doctor [--json]`
40
- - Reports configuration, scan, and filesystem issues.
41
- - `skillmux config [--json]`
42
- - Shows the resolved SkillMux home path and any user agent overrides.
43
- - `skillmux enable --skill <skill> --agent <agent>`
44
- - Enables a managed skill for a target agent by creating a managed symlink.
45
- - `skillmux disable --skill <skill> --agent <agent>`
46
- - Disables a managed skill for a target agent by removing the managed symlink.
47
-
48
- Built-in agent IDs currently recognized by default are:
49
-
50
- - `codex`
51
- - `claude`
52
- - `gemini`
53
- - `agents`
54
- - `openclaw`
55
-
56
- ## SkillMux home layout
57
-
58
- SkillMux stores its local state in `<user home>/.skillmux`.
59
-
60
- ```text
61
- ~/.skillmux/
62
- config.json
63
- manifest.json
64
- skills/
65
- <skill-id>/
66
- ```
67
-
68
- - `config.json` stores user overrides for agent discovery.
69
- - `manifest.json` stores managed skills, discovered agent records, activation records, and the last scan snapshot.
70
- - `skills/<skill-id>/` is the canonical local store for a managed skill. Agent entries point at this store through symlinks or junctions.
71
-
72
- Default agent skill directories are resolved from the user home directory:
73
-
74
- - `.codex/skills`
75
- - `.claude/skills`
76
- - `.gemini/skills`
77
- - `.agents/skills`
78
- - `.openclaw/skills`
79
-
80
- User overrides in `config.json` can change the agent display name, supported platforms, root path, skills directory path, and default enablement.
81
-
82
- ## Safe usage notes
83
-
84
- - v0 edits the local filesystem directly. Treat `scan`, `import`, `enable`, and `disable` as state-changing commands.
85
- - SkillMux refuses to replace a non-link entry when disabling a skill. If an entry is not a managed symlink, it will not blindly overwrite it.
86
- - `import` is conservative in `v0`: it copies the source skill into `.skillmux/skills/<skill-id>` and leaves the original source directory untouched.
87
- - The managed store is meant to be the source of truth for enabled skills. Avoid editing files inside agent skill directories by hand.
88
- - If two agents resolve to the same skills directory, `doctor` reports it as a conflict.
89
- - On Windows, directory symlinks are handled as junctions.
90
- - If you change agent paths or config, run `scan` again so the manifest reflects the current filesystem.
91
-
92
- ## Example flow
93
-
94
- ```bash
95
- skillmux agents
96
- skillmux scan
97
- skillmux import --source C:\path\to\find-skills --name find-skills
98
- skillmux list --view agents
99
- skillmux enable --skill find-skills --agent codex
100
- skillmux disable --skill find-skills --agent claude
101
- skillmux doctor
102
- ```
103
-
104
- Typical usage is:
105
-
106
- 1. Scan the current environment.
107
- 2. Import a local skill into the managed store.
108
- 3. Inspect agents or skills.
109
- 4. Enable a managed skill for the agents that should see it.
110
- 5. Disable it for agents that should not.
111
- 6. Run `doctor` when you want a quick consistency check.
1
+ # SkillMux
2
+
3
+ <p align="center">
4
+ <img src="assets/logo.png" alt="SkillMux logo" width="280" />
5
+ </p>
6
+
7
+ SkillMux 是一个用来管理本地 agent skills 的命令行工具。
8
+
9
+ 很多 skills 会通过 `skills.sh` 一类的方式安装到多个 agent 目录里,例如 `.codex/skills`、`.claude/skills`、`.gemini/skills`。这些目录里通常不是多份独立文件,而是一份真实内容加上多处 symlink 或 junction。手动管理这些链接很麻烦,也容易弄乱。
10
+
11
+ SkillMux 的作用就是把这件事接管下来:把 skill 收拢到统一位置,然后按 agent 启用、停用、扫描和检查状态。它既适合人直接用,也适合把仓库链接发给 AI,让 AI 按文档自动安装和操作。
12
+
13
+ ## 适合谁
14
+
15
+ 如果你符合下面任意一种情况,SkillMux 就适合你:
16
+
17
+ - 你已经用过 `skills.sh` 或类似方式安装 skills
18
+ - 你同时在用 Codex、Claude、Gemini 等多个 agent
19
+ - 你想让某个 skill 只对部分 agent 可见
20
+ - 你不想每次停用后再重新下载同一个 skill
21
+ - 你想把本地 skills 管理得更清楚,方便自己或 AI 代管
22
+
23
+ ## 安装
24
+
25
+ 全局安装:
26
+
27
+ ```bash
28
+ npm install -g skillmux
29
+ ```
30
+
31
+ 安装后可直接查看帮助:
32
+
33
+ ```bash
34
+ skillmux --help
35
+ ```
36
+
37
+ 卸载:
38
+
39
+ ```bash
40
+ npm uninstall -g skillmux
41
+ ```
42
+
43
+ 这只会卸载 CLI,不会删除本地的 `~/.skillmux` 数据目录。
44
+
45
+ ## SkillMux 会管理什么
46
+
47
+ SkillMux 默认把自己的数据放在:
48
+
49
+ ```text
50
+ ~/.skillmux/
51
+ config.json
52
+ manifest.json
53
+ skills/
54
+ <skill-id>/
55
+ ```
56
+
57
+ 含义如下:
58
+
59
+ - `config.json`:用户自定义的 agent 目录规则
60
+ - `manifest.json`:SkillMux 记录的托管状态
61
+ - `skills/<skill-id>/`:SkillMux 托管的真实 skill 内容
62
+
63
+ agent 目录里通常只保留指向这里的链接。
64
+
65
+ ## 支持的 agent 目录
66
+
67
+ 内置支持这些常见目录:
68
+
69
+ - `.codex/skills`
70
+ - `.claude/skills`
71
+ - `.gemini/skills`
72
+ - `.agents/skills`
73
+ - `.openclaw/skills`
74
+
75
+ 如果你的环境不在这些目录里,也可以通过 `skillmux config add-agent` 注册自定义 agent。
76
+
77
+ ## 快速开始
78
+
79
+ 先看 SkillMux 找到了哪些 agent:
80
+
81
+ ```bash
82
+ skillmux agents
83
+ ```
84
+
85
+ 如果你的 agent 不在内置列表里,先加进去:
86
+
87
+ ```bash
88
+ skillmux config add-agent --id antigravity --root .gemini/antigravity --name "Gemini Antigravity"
89
+ ```
90
+
91
+ 如果之后不再需要这个自定义 agent 规则,也可以删掉:
92
+
93
+ ```bash
94
+ skillmux config remove-agent --id antigravity
95
+ ```
96
+
97
+ 扫描本地 skills 状态:
98
+
99
+ ```bash
100
+ skillmux scan
101
+ ```
102
+
103
+ 把一个本地 skill 纳入 SkillMux 托管:
104
+
105
+ ```bash
106
+ skillmux import --source C:\path\to\find-skills --name find-skills
107
+ ```
108
+
109
+ 给某个 agent 启用这个 skill
110
+
111
+ ```bash
112
+ skillmux enable --skill find-skills --agent codex
113
+ ```
114
+
115
+ 如果之后想让另一个 agent 看不到它:
116
+
117
+ ```bash
118
+ skillmux disable --skill find-skills --agent claude
119
+ ```
120
+
121
+ 查看当前状态:
122
+
123
+ ```bash
124
+ skillmux list --view skills
125
+ ```
126
+
127
+ 检查坏链、冲突目录和异常状态:
128
+
129
+ ```bash
130
+ skillmux doctor
131
+ ```
132
+
133
+ ## 常用命令
134
+
135
+ ### `skillmux agents`
136
+
137
+ 查看当前识别到的 agent 目录。
138
+
139
+ ```bash
140
+ skillmux agents
141
+ skillmux agents --json
142
+ ```
143
+
144
+ ### `skillmux scan`
145
+
146
+ 扫描本地 agent skills 目录,并刷新 SkillMux 的扫描结果。
147
+
148
+ ```bash
149
+ skillmux scan
150
+ skillmux scan --json
151
+ ```
152
+
153
+ ### `skillmux list`
154
+
155
+ 查看当前状态。
156
+
157
+ ```bash
158
+ skillmux list
159
+ skillmux list --view agents
160
+ skillmux list --view skills
161
+ skillmux list --view records --format json
162
+ ```
163
+
164
+ ### `skillmux import`
165
+
166
+ 把一个已经存在于本地的 skill 导入 SkillMux 托管目录。
167
+
168
+ ```bash
169
+ skillmux import --source C:\path\to\find-skills --name find-skills
170
+ ```
171
+
172
+ 要求:
173
+
174
+ - `--source` 必须指向一个本地 skill 目录
175
+ - 目录根下必须有 `SKILL.md`
176
+ - 导入时会复制到 SkillMux 托管目录,不会删除原目录
177
+
178
+ ### `skillmux enable`
179
+
180
+ 把某个托管 skill 暴露给指定 agent。
181
+
182
+ ```bash
183
+ skillmux enable --skill find-skills --agent codex
184
+ skillmux enable --skill find-skills --agent claude
185
+ ```
186
+
187
+ ### `skillmux disable`
188
+
189
+ 把某个托管 skill 从指定 agent 目录中移除。
190
+
191
+ ```bash
192
+ skillmux disable --skill find-skills --agent codex
193
+ ```
194
+
195
+ ### `skillmux doctor`
196
+
197
+ 检查异常状态,例如:
198
+
199
+ - 坏链
200
+ - 托管目录缺失
201
+ - 看起来像 skill 但未被托管的目录
202
+ - 多个 agent 指向同一个 skills 目录
203
+
204
+ ```bash
205
+ skillmux doctor
206
+ skillmux doctor --json
207
+ ```
208
+
209
+ ### `skillmux config`
210
+
211
+ 查看 SkillMux 解析到的配置和用户覆盖规则。
212
+
213
+ ```bash
214
+ skillmux config
215
+ skillmux config --json
216
+ ```
217
+
218
+ ### `skillmux config add-agent`
219
+
220
+ 添加或覆盖一个自定义 agent 规则。
221
+
222
+ ```bash
223
+ skillmux config add-agent --id antigravity --root .gemini/antigravity
224
+ skillmux config add-agent --id antigravity --root .gemini/antigravity --name "Gemini Antigravity"
225
+ skillmux config add-agent --id antigravity --root .gemini/antigravity --skills skills
226
+ skillmux config add-agent --id antigravity --root .gemini/antigravity --platform win32 --platform linux
227
+ skillmux config add-agent --id antigravity --root .gemini/antigravity --disabled-by-default
228
+ ```
229
+
230
+ 说明:
231
+
232
+ - `--id` 是 agent 的唯一标识
233
+ - `--root` 是相对用户 home 的根目录
234
+ - `--skills` 默认是 `skills`
235
+ - `--platform` 不传时默认写入当前平台
236
+ - `--disabled-by-default` 会把该自定义 agent 标记为默认不启用
237
+
238
+ ### `skillmux config remove-agent`
239
+
240
+ 删除一个自定义 agent 规则。
241
+
242
+ ```bash
243
+ skillmux config remove-agent --id antigravity
244
+ skillmux config remove-agent --id antigravity --json
245
+ ```
246
+
247
+ 说明:
248
+ - 只会删除 `~/.skillmux/config.json` 里的该 agent override
249
+ - 不会删除 `manifest.json`
250
+ - 不会删除任何本地 skill、symlink 或 junction
251
+
252
+ ## 一个典型流程
253
+
254
+ ```bash
255
+ skillmux agents
256
+ skillmux config add-agent --id antigravity --root .gemini/antigravity
257
+ skillmux scan
258
+ skillmux import --source C:\skills\find-skills --name find-skills
259
+ skillmux enable --skill find-skills --agent codex
260
+ skillmux enable --skill find-skills --agent antigravity
261
+ skillmux list --view skills
262
+ skillmux disable --skill find-skills --agent antigravity
263
+ skillmux doctor
264
+ ```
265
+
266
+ ## 使用注意
267
+
268
+ - `scan`、`import`、`enable`、`disable` 会直接修改本地状态
269
+ - `disable` 只会移除受管链接,不会盲删普通目录
270
+ - `import` 不会删除原始 skill 目录
271
+ - Windows 下目录链接使用 junction 语义
272
+ - 如果你手动改过 agent 目录,建议重新执行一次 `skillmux scan`
273
+
274
+ ## 给 AI 使用时的建议
275
+
276
+ 如果你把这个仓库链接发给 AI,让它帮你安装和使用 SkillMux,最有用的信息就是这几件事:
277
+
278
+ - 安装命令是 `npm install -g skillmux`
279
+ - 查看环境先用 `skillmux agents` 和 `skillmux scan`
280
+ - 自定义 agent 入口用 `skillmux config add-agent`
281
+ - 删除自定义 agent 入口用 `skillmux config remove-agent`
282
+ - 把本地 skill 纳入管理用 `skillmux import`
283
+ - 控制某个 skill 对哪些 agent 可见,用 `skillmux enable` 和 `skillmux disable`
284
+ - 检查异常状态用 `skillmux doctor`