@hasna/skills 0.1.6 → 0.1.7

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
@@ -10,7 +10,7 @@ npx @hasna/skills
10
10
 
11
11
  - **202 ready-to-use skills** across development, business, content, data, media, design, and more
12
12
  - **Interactive TUI** -- browse by category, search, and install from the terminal
13
- - **MCP server** -- 9 tools and 2 resources for AI agent integration
13
+ - **MCP server** -- 10 tools and 2 resources for AI agent integration
14
14
  - **HTTP dashboard** -- React web UI to browse, search, install, and manage skills
15
15
  - **Agent-aware installs** -- copies SKILL.md to `~/.claude/skills/`, `~/.codex/skills/`, or `~/.gemini/skills/`
16
16
  - **Auto-generated index** -- `.skills/index.ts` is updated on every install for easy imports
@@ -52,6 +52,12 @@ skills run image --prompt "a sunset over mountains"
52
52
 
53
53
  # Start the web dashboard
54
54
  skills serve
55
+
56
+ # Smart init: detect project type and install skills for Claude
57
+ skills init --for claude
58
+
59
+ # Browse skills by tag
60
+ skills list --tags api,testing
55
61
  ```
56
62
 
57
63
  ## Categories
@@ -84,23 +90,24 @@ skills serve
84
90
  | `skills install <names...>` | `skills add` | Install one or more skills to `.skills/` |
85
91
  | `skills install <name> --for <agent>` | | Install SKILL.md for claude, codex, gemini, or all |
86
92
  | `skills remove <name>` | `skills rm` | Remove an installed skill |
87
- | `skills list` | `skills ls` | List all available skills |
93
+ | `skills list` | `skills ls` | List all available skills (supports `--tags` to filter by tags) |
88
94
  | `skills list --category <cat>` | | List skills in a category |
89
95
  | `skills list --installed` | | List installed skills |
90
- | `skills search <query>` | | Search skills by name, description, or tags |
96
+ | `skills search <query>` | | Search skills by name, description, or tags (supports `--tags` to filter by tags) |
91
97
  | `skills info <name>` | | Show skill metadata, requirements, and env vars |
92
98
  | `skills docs <name>` | | Show skill documentation (SKILL.md/README.md/CLAUDE.md) |
93
99
  | `skills requires <name>` | | Show env vars, system deps, and npm dependencies |
94
100
  | `skills run <name> [args...]` | | Run a skill directly |
95
101
  | `skills categories` | | List all categories with counts |
96
- | `skills init` | | Generate `.env.example` and update `.gitignore` |
102
+ | `skills tags` | | List all tags with skill counts |
103
+ | `skills init` | | Initialize project, detect deps, and optionally install for agents |
97
104
  | `skills update [names...]` | | Update installed skills (reinstall with overwrite) |
98
105
  | `skills serve` | | Start the HTTP dashboard (auto-assigns free port) |
99
106
  | `skills mcp` | | Start the MCP server on stdio |
100
107
  | `skills mcp --register <agent>` | | Register MCP server with claude, codex, gemini, or all |
101
108
  | `skills self-update` | | Update `@hasna/skills` to the latest version |
102
109
 
103
- All list/search/info commands support `--json` for machine-readable output.
110
+ All list/search/info commands support `--json` for machine-readable output. Search uses fuzzy matching -- typos and abbreviations are tolerated.
104
111
 
105
112
  ## MCP Server
106
113
 
@@ -133,7 +140,7 @@ Add to your MCP config:
133
140
  }
134
141
  ```
135
142
 
136
- ### Tools (9)
143
+ ### Tools (10)
137
144
 
138
145
  | Tool | Description |
139
146
  |------|-------------|
@@ -144,6 +151,7 @@ Add to your MCP config:
144
151
  | `install_skill` | Install a skill (full source to `.skills/` or SKILL.md to agent dir) |
145
152
  | `remove_skill` | Remove an installed skill |
146
153
  | `list_categories` | List all categories with skill counts |
154
+ | `list_tags` | List all skill tags with counts |
147
155
  | `get_requirements` | Get env vars, system deps, and npm dependencies |
148
156
  | `run_skill` | Run a skill by name with optional arguments |
149
157
 
@@ -190,6 +198,7 @@ The dashboard server also exposes a REST API:
190
198
  | `/api/skills/:name/docs` | GET | Raw documentation text |
191
199
  | `/api/skills/:name/install` | POST | Install a skill |
192
200
  | `/api/skills/:name/remove` | POST | Remove a skill |
201
+ | `/api/tags` | GET | All tags with skill counts |
193
202
  | `/api/version` | GET | Current package version |
194
203
  | `/api/self-update` | POST | Update to latest version |
195
204
 
package/bin/index.js CHANGED
@@ -1878,7 +1878,7 @@ var package_default;
1878
1878
  var init_package = __esm(() => {
1879
1879
  package_default = {
1880
1880
  name: "@hasna/skills",
1881
- version: "0.1.6",
1881
+ version: "0.1.7",
1882
1882
  description: "Skills library for AI coding agents",
1883
1883
  type: "module",
1884
1884
  bin: {
@@ -1919,6 +1919,12 @@ var init_package = __esm(() => {
1919
1919
  "typescript",
1920
1920
  "bun",
1921
1921
  "claude",
1922
+ "codex",
1923
+ "gemini",
1924
+ "mcp",
1925
+ "model-context-protocol",
1926
+ "open-source",
1927
+ "skill-library",
1922
1928
  "automation"
1923
1929
  ],
1924
1930
  author: "Hasna",
@@ -36463,15 +36469,7 @@ var program2 = new Command;
36463
36469
  program2.name("skills").description("Install AI agent skills for your project").version(package_default.version).option("--verbose", "Enable verbose logging", false).enablePositionalOptions();
36464
36470
  program2.command("interactive", { isDefault: true }).alias("i").description("Interactive skill browser (TUI)").action(() => {
36465
36471
  if (!isTTY) {
36466
- console.log(`Non-interactive environment detected. Use a subcommand:
36467
- `);
36468
- console.log(" skills list List available skills");
36469
- console.log(" skills search <q> Search skills");
36470
- console.log(" skills install <n> Install a skill");
36471
- console.log(" skills info <n> Show skill details");
36472
- console.log(" skills serve Start web dashboard");
36473
- console.log(` skills --help Show all commands
36474
- `);
36472
+ console.log(JSON.stringify(SKILLS, null, 2));
36475
36473
  process.exit(0);
36476
36474
  }
36477
36475
  render(/* @__PURE__ */ jsxDEV7(App, {}, undefined, false, undefined, this));
@@ -37211,12 +37209,14 @@ program2.command("completion").argument("<shell>", "Shell type: bash, zsh, or fi
37211
37209
  "remove",
37212
37210
  "update",
37213
37211
  "categories",
37212
+ "tags",
37214
37213
  "mcp",
37215
37214
  "serve",
37216
37215
  "init",
37217
37216
  "self-update",
37218
37217
  "completion",
37219
- "outdated"
37218
+ "outdated",
37219
+ "doctor"
37220
37220
  ];
37221
37221
  const skillNames = SKILLS.map((s) => s.name);
37222
37222
  const categoryNames = CATEGORIES.map((c) => c);
package/bin/mcp.js CHANGED
@@ -28599,7 +28599,7 @@ class StdioServerTransport {
28599
28599
  // package.json
28600
28600
  var package_default = {
28601
28601
  name: "@hasna/skills",
28602
- version: "0.1.6",
28602
+ version: "0.1.7",
28603
28603
  description: "Skills library for AI coding agents",
28604
28604
  type: "module",
28605
28605
  bin: {
@@ -28640,6 +28640,12 @@ var package_default = {
28640
28640
  "typescript",
28641
28641
  "bun",
28642
28642
  "claude",
28643
+ "codex",
28644
+ "gemini",
28645
+ "mcp",
28646
+ "model-context-protocol",
28647
+ "open-source",
28648
+ "skill-library",
28643
28649
  "automation"
28644
28650
  ],
28645
28651
  author: "Hasna",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -41,6 +41,12 @@
41
41
  "typescript",
42
42
  "bun",
43
43
  "claude",
44
+ "codex",
45
+ "gemini",
46
+ "mcp",
47
+ "model-context-protocol",
48
+ "open-source",
49
+ "skill-library",
44
50
  "automation"
45
51
  ],
46
52
  "author": "Hasna",