@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
|
|
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
|
|
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
|
|
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`
|
|
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
|
-
|
|
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_ | `
|
|
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
|
|
163
|
+
export SKILLY_DEFAULT_DIRECTORY="$HOME/.config/skilly/skills"
|
|
160
164
|
```
|
|
161
165
|
|
|
162
|
-
`--directory` overrides all other destination options and `
|
|
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
|
-
|
|
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
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
|
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
|
-
|
|
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
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|