@xelandernt/skilly 0.0.30 → 0.0.31

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 @@
10
10
 
11
11
  Manage [Agent Skills](https://agentskills.io/specification) from the command line or Python.
12
12
 
13
- `skilly` creates specification-compliant skills, installs skills from GitHub or Python dependencies, and keeps managed skills up to date.
13
+ `skilly` creates specification-compliant skills, installs skills from GitHub, Python, or Node dependencies, and keeps managed skills up to date.
14
14
 
15
15
  ## Table of Contents
16
16
 
@@ -62,17 +62,14 @@ brew install xelandernt/skilly/skilly
62
62
  ## Quick Start
63
63
 
64
64
  ```shell
65
- uvx skilly scan # Find skills from Python dependencies
66
- uvx skilly download <github-url> # Install skills from GitHub
67
- uvx skilly list # Browse installed skills
68
- uvx skilly update # Preview available updates
65
+ uvx skilly --help
69
66
  ```
70
67
 
71
68
  ## CLI Commands
72
69
 
73
70
  | Command | Purpose |
74
71
  |---------|---------|
75
- | `scan` | Find skills provided by the project's Python dependencies |
72
+ | `scan` | Find skills provided by Python and Node project dependencies |
76
73
  | `download <github-url>` | Install one or more skills from GitHub |
77
74
  | `list` | Browse, update, or remove installed skills |
78
75
  | `update` | Preview available updates; `--yes` applies all |
@@ -102,18 +99,25 @@ Existing skills are rejected unless `--overwrite` is passed.
102
99
 
103
100
  ### Install Dependency Skills
104
101
 
105
- `skilly scan` reads `pyproject.toml` and the project's `.venv`, then surfaces skills shipped by dependencies:
102
+ `skilly scan` discovers skills shipped by your project's dependencies across two ecosystems:
103
+
104
+ - **Python** — reads `pyproject.toml` and scans the project's `.venv` for packages that bundle skills in a `skills/` directory.
105
+ - **Node** — reads `package.json` (`dependencies`, `devDependencies`, `optionalDependencies`) and scans `node_modules/` for packages that bundle skills in a `skills/` directory.
106
106
 
107
107
  ```shell
108
108
  uvx skilly scan
109
109
  ```
110
110
 
111
- Include or exclude specific extras and dependency groups (flags are repeatable):
111
+ Both ecosystems are scanned by default whenever the corresponding manifest and package directory exist. Results are shown with their source (e.g. `node:dependencies`, `python:project`) and status (`installable`, `installed`, `updatable`).
112
+
113
+ Include or exclude specific Python extras and dependency groups:
112
114
 
113
115
  ```shell
114
116
  uvx skilly scan --group dev --group test --exclude-extra docs
117
+ uvx skilly scan --no-project-dependencies # skip [project].dependencies
115
118
  ```
116
119
 
120
+
117
121
  ### Install GitHub Skills
118
122
 
119
123
  ```shell
@@ -142,7 +146,7 @@ uvx skilly list --directory ~/custom # Explicit directory
142
146
 
143
147
  | Flags | Resolved destination |
144
148
  |----------------------|-------------------------------------------------------|
145
- | _none_ | `SKILLY_DIRECTORY` if set, otherwise `.agents/skills` |
149
+ | _none_ | `SKILLY_DEFAULT_DIRECTORY` if set, otherwise `.agents/skills` |
146
150
  | `--local` | `.agents/skills` |
147
151
  | `--global` | `~/.agents/skills` |
148
152
  | `--claude` | `.claude/skills` |
@@ -156,14 +160,14 @@ uvx skilly list --directory ~/custom # Explicit directory
156
160
  Set a default destination:
157
161
 
158
162
  ```shell
159
- export SKILLY_DIRECTORY="$HOME/.config/skilly/skills"
163
+ export SKILLY_DEFAULT_DIRECTORY="$HOME/.config/skilly/skills"
160
164
  ```
161
165
 
162
- `--directory` overrides all other destination options and `SKILLY_DIRECTORY`.
166
+ `--directory` overrides all other destination options and `SKILLY_DEFAULT_DIRECTORY`.
163
167
 
164
168
  ### Configure Destinations
165
169
 
166
- `skilly configure` lets you choose which directories skilly should manage. Interactive terminals open a two-tab TUI (Global / Local). Non-interactive runs accept flags.
170
+ `skilly configure` lets you choose which directories skilly should manage and which one opens by default. Interactive terminals open a two-tab TUI (Global / Local) showing all known agent directories as toggleable checkboxes (agents, claude, codex, copilot). Non-interactive runs accept flags.
167
171
 
168
172
  ```shell
169
173
  uvx skilly configure # Open the TUI
@@ -171,7 +175,12 @@ uvx skilly configure --show # Print current config as TOML
171
175
  uvx skilly configure --reset # Restore defaults
172
176
  ```
173
177
 
174
- Add or remove custom directories:
178
+ In the TUI:
179
+ - **Space** toggles a known directory on or off, or removes a custom one.
180
+ - **Enter** sets the highlighted directory as the default (marked with a ★).
181
+ - **Ctrl+S** saves; you must have a default directory selected before saving.
182
+
183
+ Add or remove custom directories via CLI:
175
184
 
176
185
  ```shell
177
186
  uvx skilly configure --add-global /opt/skills
@@ -180,20 +189,20 @@ uvx skilly configure --remove-global /opt/skills
180
189
  uvx skilly configure --remove-local .project/skills
181
190
  ```
182
191
 
183
- Enable or disable built-in destinations (valid keys: `agents_global`, `agents_local`, `claude_global`, `claude_local`, `codex_global`, `codex_local`, `copilot_global`, `copilot_local`):
184
-
185
- ```shell
186
- uvx skilly configure --enable agents_global --disable copilot_global
187
- ```
188
-
189
192
  Configuration is stored in `~/.skilly.toml`:
190
193
 
191
194
  ```toml
192
- enabled_builtin = ["agents_global", "agents_local", ...]
193
- custom_global_dirs = []
194
- custom_local_dirs = []
195
+ default_directory = ".agents/skills"
196
+
197
+ [global]
198
+ directories = ["~/.agents/skills", "/opt/skills"]
199
+
200
+ [local]
201
+ directories = [".agents/skills", ".project/skills"]
195
202
  ```
196
203
 
204
+ The default directory opens first in interactive menus (`list`, `scan`, etc.).
205
+
197
206
  ### GitHub Authentication
198
207
 
199
208
  Set a token for higher API rate limits (first available wins: `SKILLY_GITHUB_TOKEN`, `GITHUB_TOKEN`, `GH_TOKEN`):
@@ -235,12 +244,35 @@ for match in repository.scan_project():
235
244
  Stateless discovery functions for one-shot reads:
236
245
 
237
246
  ```python
238
- from skilly import discover_installed_skills, discover_venv_skills
247
+ from skilly import (
248
+ discover_installed_skills,
249
+ discover_node_modules_skills,
250
+ discover_venv_skills,
251
+ )
239
252
 
240
253
  installed = discover_installed_skills()
241
- dependency_skills = discover_venv_skills()
254
+ python_skills = discover_venv_skills()
255
+ node_skills = discover_node_modules_skills()
256
+ ```
257
+
258
+ `ProjectSettings` accepts a `NodeProjectSettings` to control node scanning:
259
+
260
+ ```python
261
+ from skilly import NodeProjectSettings, ProjectSettings, SkillRepository
262
+
263
+ repository = SkillRepository(
264
+ directory=Path(".agents/skills"),
265
+ project=ProjectSettings(
266
+ node=NodeProjectSettings(
267
+ include_dependencies=True,
268
+ include_dev_dependencies=False,
269
+ ),
270
+ ),
271
+ )
242
272
  ```
243
273
 
274
+ Set `node=None` to skip node ecosystem scanning entirely.
275
+
244
276
  SkillsMP client with typed results:
245
277
 
246
278
  ```python
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xelandernt/skilly",
3
- "version": "0.0.30",
3
+ "version": "0.0.31",
4
4
  "description": "Native npm launcher for the skilly CLI.",
5
5
  "license": "MIT",
6
6
  "bin": {
Binary file
Binary file