reskill 1.8.0 → 1.10.0

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
@@ -46,6 +46,7 @@ npx reskill@latest <command> # Or use npx directly
46
46
  | Command | Alias | Description |
47
47
  | --------------------- | -------------------- | ----------------------------------------- |
48
48
  | `init` | - | Initialize `skills.json` |
49
+ | `find <query>` | - | Search for skills in the registry |
49
50
  | `install [skills...]` | `i` | Install one or more skills |
50
51
  | `list` | `ls` | List installed skills |
51
52
  | `info <skill>` | - | Show skill details |
@@ -57,9 +58,9 @@ npx reskill@latest <command> # Or use npx directly
57
58
  | `logout` | - | Remove stored authentication ¹ |
58
59
  | `whoami` | - | Display current logged in user ¹ |
59
60
  | `doctor` | - | Diagnose environment and check for issues |
61
+ | `completion install` | - | Install shell tab completion |
60
62
 
61
63
  > ¹ Registry commands (`publish`, `login`, `logout`, `whoami`) require a private registry deployment. Not available for public use yet.
62
- | `completion install` | - | Install shell tab completion |
63
64
 
64
65
  ### Common Options
65
66
 
@@ -72,6 +73,9 @@ npx reskill@latest <command> # Or use npx directly
72
73
  | `--all` | `install` | Install to all agents |
73
74
  | `-y, --yes` | `install`, `uninstall`, `publish` | Skip confirmation prompts |
74
75
  | `-f, --force` | `install` | Force reinstall even if already installed |
76
+ | `-s, --skill <names...>` | `install` | Select specific skill(s) by name from a multi-skill repo |
77
+ | `--list` | `install` | List available skills in the repository without installing |
78
+ | `-r, --registry <url>` | `install` | Registry URL override for registry-based installs |
75
79
  | `-j, --json` | `list`, `info`, `outdated`, `doctor` | Output as JSON |
76
80
 
77
81
  Run `reskill <command> --help` for complete options and detailed usage.
@@ -102,6 +106,10 @@ npx reskill@latest install https://example.com/skills/my-skill-v1.0.0.tar.gz
102
106
  npx reskill@latest install oss://bucket/path/skill.tar.gz
103
107
  npx reskill@latest install s3://bucket/path/skill.zip
104
108
 
109
+ # Registry-based (requires registry deployment)
110
+ npx reskill@latest install @scope/skill-name@1.0.0
111
+ npx reskill@latest install skill-name
112
+
105
113
  # Install multiple skills at once
106
114
  npx reskill@latest install github:user/skill1 github:user/skill2@v1.0.0
107
115
  ```
@@ -191,6 +199,7 @@ Skills are installed to `.skills/` by default and can be integrated with any age
191
199
  | Codex | `.codex/skills/` |
192
200
  | Windsurf | `.windsurf/skills/` |
193
201
  | GitHub Copilot | `.github/skills/` |
202
+ | OpenCode | `.opencode/skills/` |
194
203
 
195
204
  ## Publishing Skills
196
205
 
package/README.zh-CN.md CHANGED
@@ -43,23 +43,24 @@ npx reskill@latest <command> # 或直接使用 npx
43
43
 
44
44
  ## 命令
45
45
 
46
- | 命令 | 别名 | 说明 |
47
- | --------------------- | -------------------- | ------------------------ |
48
- | `init` | - | 初始化 `skills.json` |
49
- | `install [skills...]` | `i` | 安装一个或多个 skills |
50
- | `list` | `ls` | 列出已安装的 skills |
51
- | `info <skill>` | - | 查看 skill 详情 |
52
- | `update [skill]` | `up` | 更新 skills |
53
- | `outdated` | - | 检查过期的 skills |
54
- | `uninstall <skill>` | `un`, `rm`, `remove` | 卸载 skill |
55
- | `publish [path]` | `pub` | 发布 skill 到 registry ¹ |
56
- | `login` | - | 登录 registry ¹ |
57
- | `logout` | - | 登出 registry ¹ |
58
- | `whoami` | - | 显示当前登录用户 ¹ |
59
- | `doctor` | - | 诊断环境并检查问题 |
46
+ | 命令 | 别名 | 说明 |
47
+ | --------------------- | -------------------- | ------------------------- |
48
+ | `init` | - | 初始化 `skills.json` |
49
+ | `find <query>` | - | registry 中搜索 skills |
50
+ | `install [skills...]` | `i` | 安装一个或多个 skills |
51
+ | `list` | `ls` | 列出已安装的 skills |
52
+ | `info <skill>` | - | 查看 skill 详情 |
53
+ | `update [skill]` | `up` | 更新 skills |
54
+ | `outdated` | - | 检查过期的 skills |
55
+ | `uninstall <skill>` | `un`, `rm`, `remove` | 卸载 skill |
56
+ | `publish [path]` | `pub` | 发布 skill 到 registry ¹ |
57
+ | `login` | - | 登录 registry ¹ |
58
+ | `logout` | - | 登出 registry ¹ |
59
+ | `whoami` | - | 显示当前登录用户 ¹ |
60
+ | `doctor` | - | 诊断环境并检查问题 |
61
+ | `completion install` | - | 安装 Shell Tab 补全 |
60
62
 
61
63
  > ¹ Registry 相关命令(`publish`、`login`、`logout`、`whoami`)需要部署私有 registry 后才能使用,暂不对外开放。
62
- | `completion install` | - | 安装 Shell Tab 补全 |
63
64
 
64
65
  ### 常用选项
65
66
 
@@ -72,6 +73,9 @@ npx reskill@latest <command> # 或直接使用 npx
72
73
  | `--all` | `install` | 安装到所有 Agent |
73
74
  | `-y, --yes` | `install`, `uninstall`, `publish` | 跳过确认提示 |
74
75
  | `-f, --force` | `install` | 强制重新安装 |
76
+ | `-s, --skill <names...>` | `install` | 从多 skill 仓库中选择指定 skill |
77
+ | `--list` | `install` | 列出仓库中可用的 skills(不安装) |
78
+ | `-r, --registry <url>` | `install` | 覆盖 registry URL(用于 registry 安装) |
75
79
  | `-j, --json` | `list`, `info`, `outdated`, `doctor` | JSON 格式输出 |
76
80
 
77
81
  运行 `reskill <command> --help` 查看完整选项和详细用法。
@@ -102,6 +106,10 @@ npx reskill@latest install https://example.com/skills/my-skill-v1.0.0.tar.gz
102
106
  npx reskill@latest install oss://bucket/path/skill.tar.gz
103
107
  npx reskill@latest install s3://bucket/path/skill.zip
104
108
 
109
+ # Registry 安装(需要部署 registry)
110
+ npx reskill@latest install @scope/skill-name@1.0.0
111
+ npx reskill@latest install skill-name
112
+
105
113
  # 一次安装多个 skills
106
114
  npx reskill@latest install github:user/skill1 github:user/skill2@v1.0.0
107
115
  ```
@@ -191,6 +199,7 @@ Skills 默认安装到 `.skills/`,可与任何 Agent 集成:
191
199
  | Codex | `.codex/skills/` |
192
200
  | Windsurf | `.windsurf/skills/` |
193
201
  | GitHub Copilot | `.github/skills/` |
202
+ | OpenCode | `.opencode/skills/` |
194
203
 
195
204
  ## 发布 Skills
196
205
 
package/dist/cli/index.js CHANGED
@@ -1783,10 +1783,15 @@ const installer_SKILLS_SUBDIR = 'skills';
1783
1783
  // Quote description to prevent YAML injection from special characters
1784
1784
  const safeDescription = parsed.description.replace(/"/g, '\\"');
1785
1785
  const agent = getAgentConfig('cursor');
1786
+ // Read globs from metadata if available
1787
+ const globs = parsed.metadata?.globs;
1788
+ const globsValue = 'string' == typeof globs && globs.length > 0 ? `"${globs}"` : '';
1789
+ // Read alwaysApply from metadata if available (default: false)
1790
+ const alwaysApply = parsed.metadata?.alwaysApply === true;
1786
1791
  const bridgeContent = `---
1787
1792
  description: "${safeDescription}"
1788
- globs:
1789
- alwaysApply: false
1793
+ globs: ${globsValue}
1794
+ alwaysApply: ${alwaysApply}
1790
1795
  ---
1791
1796
 
1792
1797
  ${CURSOR_BRIDGE_MARKER}
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/core/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAAoD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAyJlC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMjF;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM3C;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;IAOlE;;;;;;;OAOG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,aAAa,CAAC;IAiGzB;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS,EAAE,EACzB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAWzC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAK7D;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKlD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAiBpE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;IAgB1F;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAcnD;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IA4C9B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;CAiB/B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/core/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAAoD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAyJlC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMjF;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM3C;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;IAOlE;;;;;;;OAOG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,aAAa,CAAC;IAiGzB;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS,EAAE,EACzB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAO,GACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAWzC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAK7D;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKlD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAiBpE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;IAgB1F;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAcnD;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAoD9B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;CAiB/B;AAED,eAAe,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1520,10 +1520,15 @@ const installer_SKILLS_SUBDIR = 'skills';
1520
1520
  // Quote description to prevent YAML injection from special characters
1521
1521
  const safeDescription = parsed.description.replace(/"/g, '\\"');
1522
1522
  const agent = getAgentConfig('cursor');
1523
+ // Read globs from metadata if available
1524
+ const globs = parsed.metadata?.globs;
1525
+ const globsValue = 'string' == typeof globs && globs.length > 0 ? `"${globs}"` : '';
1526
+ // Read alwaysApply from metadata if available (default: false)
1527
+ const alwaysApply = parsed.metadata?.alwaysApply === true;
1523
1528
  const bridgeContent = `---
1524
1529
  description: "${safeDescription}"
1525
- globs:
1526
- alwaysApply: false
1530
+ globs: ${globsValue}
1531
+ alwaysApply: ${alwaysApply}
1527
1532
  ---
1528
1533
 
1529
1534
  ${CURSOR_BRIDGE_MARKER}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reskill",
3
- "version": "1.8.0",
3
+ "version": "1.10.0",
4
4
  "description": "AI Skills Package Manager - Git-based skills management for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",