skills-cli 0.1.3__tar.gz
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.
- skills_cli-0.1.3/PKG-INFO +253 -0
- skills_cli-0.1.3/README.md +242 -0
- skills_cli-0.1.3/pyproject.toml +21 -0
- skills_cli-0.1.3/setup.cfg +4 -0
- skills_cli-0.1.3/src/skills_cli/__init__.py +3 -0
- skills_cli-0.1.3/src/skills_cli/cli.py +958 -0
- skills_cli-0.1.3/src/skills_cli.egg-info/PKG-INFO +253 -0
- skills_cli-0.1.3/src/skills_cli.egg-info/SOURCES.txt +11 -0
- skills_cli-0.1.3/src/skills_cli.egg-info/dependency_links.txt +1 -0
- skills_cli-0.1.3/src/skills_cli.egg-info/entry_points.txt +2 -0
- skills_cli-0.1.3/src/skills_cli.egg-info/requires.txt +2 -0
- skills_cli-0.1.3/src/skills_cli.egg-info/top_level.txt +1 -0
- skills_cli-0.1.3/tests/test_skills.py +492 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: skills-cli
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: A CLI tool for managing skills.
|
|
5
|
+
Author-email: Ben Anderson <ben@trytaylor.ai>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: pyyaml>=6.0
|
|
10
|
+
Requires-Dist: httpx>=0.27
|
|
11
|
+
|
|
12
|
+
# skills-cli
|
|
13
|
+
|
|
14
|
+
A CLI tool for managing [Agent Skills](https://agentskills.io/) - the open format for giving AI agents new capabilities.
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
I recommend installing globally with `uv` as a tool, which will make it available across your system.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
uv tool install skills-cli
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What are Agent Skills?
|
|
25
|
+
|
|
26
|
+
Agent Skills are folders containing a `SKILL.md` file with instructions, scripts, and resources that agents can discover and use. They allow you to package domain expertise into reusable capabilities for AI agents.
|
|
27
|
+
|
|
28
|
+
A skill directory looks like:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
my-skill/
|
|
32
|
+
├── SKILL.md # Required: instructions + metadata
|
|
33
|
+
├── scripts/ # Optional: executable code
|
|
34
|
+
├── references/ # Optional: documentation
|
|
35
|
+
└── assets/ # Optional: templates, resources
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The `SKILL.md` file must contain YAML frontmatter with at least `name` and `description`:
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
---
|
|
42
|
+
name: my-skill
|
|
43
|
+
description: What this skill does and when to use it.
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
# My Skill
|
|
47
|
+
|
|
48
|
+
Instructions for the agent...
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Commands
|
|
52
|
+
|
|
53
|
+
### `skills create`
|
|
54
|
+
|
|
55
|
+
Create a new skill scaffold with the required structure.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
skills create my-skill
|
|
59
|
+
skills create my-skill --path /path/to/directory
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This creates:
|
|
63
|
+
- `SKILL.md` with template frontmatter
|
|
64
|
+
- `scripts/`, `references/`, and `assets/` directories
|
|
65
|
+
|
|
66
|
+
### `skills validate`
|
|
67
|
+
|
|
68
|
+
Validate a skill directory against the Agent Skills specification.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
skills validate ./my-skill
|
|
72
|
+
skills validate ./my-skill/SKILL.md # Also accepts SKILL.md directly
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Checks for:
|
|
76
|
+
- Valid YAML frontmatter
|
|
77
|
+
- Required fields (`name`, `description`)
|
|
78
|
+
- Name format (lowercase, hyphens only, no consecutive hyphens)
|
|
79
|
+
- Name matches directory name
|
|
80
|
+
- No unexpected frontmatter fields
|
|
81
|
+
- Field length limits
|
|
82
|
+
|
|
83
|
+
### `skills read-properties`
|
|
84
|
+
|
|
85
|
+
Read skill properties and output as JSON.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
skills read-properties ./my-skill
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Output:
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"name": "my-skill",
|
|
95
|
+
"description": "What this skill does.",
|
|
96
|
+
"license": "MIT",
|
|
97
|
+
"metadata": {
|
|
98
|
+
"author": "example"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### `skills to-prompt`
|
|
104
|
+
|
|
105
|
+
Generate available skills block for agent system prompts. Supports XML (default), YAML, and JSON formats.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
skills to-prompt ./skill-a ./skill-b
|
|
109
|
+
skills to-prompt ./skill-a --format yaml
|
|
110
|
+
skills to-prompt ./skill-a -f json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**XML output (default):**
|
|
114
|
+
```xml
|
|
115
|
+
<available_skills>
|
|
116
|
+
<skill>
|
|
117
|
+
<name>
|
|
118
|
+
skill-a
|
|
119
|
+
</name>
|
|
120
|
+
<description>
|
|
121
|
+
Description of skill A.
|
|
122
|
+
</description>
|
|
123
|
+
<location>
|
|
124
|
+
/path/to/skill-a/SKILL.md
|
|
125
|
+
</location>
|
|
126
|
+
</skill>
|
|
127
|
+
</available_skills>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**YAML output:**
|
|
131
|
+
```yaml
|
|
132
|
+
available_skills:
|
|
133
|
+
- name: skill-a
|
|
134
|
+
description: Description of skill A.
|
|
135
|
+
location: /path/to/skill-a/SKILL.md
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**JSON output:**
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"available_skills": [
|
|
142
|
+
{
|
|
143
|
+
"name": "skill-a",
|
|
144
|
+
"description": "Description of skill A.",
|
|
145
|
+
"location": "/path/to/skill-a/SKILL.md"
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### `skills install`
|
|
152
|
+
|
|
153
|
+
Install skills from a local directory, zip file, or GitHub repository.
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# From local directory
|
|
157
|
+
skills install ./my-skill
|
|
158
|
+
|
|
159
|
+
# From zip file
|
|
160
|
+
skills install ./my-skill.zip
|
|
161
|
+
|
|
162
|
+
# From GitHub (whole repo)
|
|
163
|
+
skills install https://github.com/anthropics/skills
|
|
164
|
+
|
|
165
|
+
# From GitHub (specific path in repo)
|
|
166
|
+
skills install https://github.com/owner/repo/tree/main/skills/my-skill
|
|
167
|
+
skills install https://github.com/owner/repo --subpath skills/my-skill
|
|
168
|
+
|
|
169
|
+
# Specify destination (default: ~/.claude/skills or ~/.codex/skills)
|
|
170
|
+
skills install ./my-skill --dest ./local-skills
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
The install command:
|
|
174
|
+
- Validates skills before installing
|
|
175
|
+
- Searches up to 2 levels deep for skills in directories/repos
|
|
176
|
+
- Overwrites existing skills with the same name
|
|
177
|
+
|
|
178
|
+
### `skills list`
|
|
179
|
+
|
|
180
|
+
List installed skills.
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
skills list
|
|
184
|
+
skills list --path ./my-skills-dir
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Output:
|
|
188
|
+
```
|
|
189
|
+
/Users/you/.claude/skills:
|
|
190
|
+
my-skill: Description of my skill...
|
|
191
|
+
another-skill: Another skill description...
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### `skills zip`
|
|
195
|
+
|
|
196
|
+
Package a skill into a zip file for distribution.
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
skills zip ./my-skill
|
|
200
|
+
skills zip ./my-skill --output ./dist/my-skill.zip
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### `skills push`
|
|
204
|
+
|
|
205
|
+
Upload a skill to your Anthropic account via the API.
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Requires ANTHROPIC_API_KEY environment variable
|
|
209
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
210
|
+
|
|
211
|
+
skills push ./my-skill
|
|
212
|
+
skills push ./my-skill --update # Update existing skill
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Skill Name Requirements
|
|
216
|
+
|
|
217
|
+
Skill names must:
|
|
218
|
+
- Be lowercase
|
|
219
|
+
- Contain only letters, numbers, and hyphens
|
|
220
|
+
- Not start or end with a hyphen
|
|
221
|
+
- Not contain consecutive hyphens (`--`)
|
|
222
|
+
- Be 64 characters or less
|
|
223
|
+
- Match the directory name
|
|
224
|
+
|
|
225
|
+
Valid: `my-skill`, `data-analysis`, `pdf-reader`
|
|
226
|
+
Invalid: `My-Skill`, `-skill`, `skill-`, `my--skill`
|
|
227
|
+
|
|
228
|
+
## Default Skill Directories
|
|
229
|
+
|
|
230
|
+
The CLI looks for installed skills in these locations (in order):
|
|
231
|
+
1. `~/.claude/skills`
|
|
232
|
+
2. `~/.codex/skills`
|
|
233
|
+
|
|
234
|
+
## Environment Variables
|
|
235
|
+
|
|
236
|
+
| Variable | Description |
|
|
237
|
+
|----------|-------------|
|
|
238
|
+
| `ANTHROPIC_API_KEY` | Required for `push` command |
|
|
239
|
+
| `ANTHROPIC_API_URL` | API base URL (default: `https://api.anthropic.com`) |
|
|
240
|
+
|
|
241
|
+
## Running Tests
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
uv run python tests/test_skills.py
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## License
|
|
248
|
+
|
|
249
|
+
MIT
|
|
250
|
+
|
|
251
|
+
## Attribution
|
|
252
|
+
|
|
253
|
+
Validation and prompt generation logic adapted from [skills-ref](https://github.com/agentskills/agentskills), licensed under Apache 2.0. Copyright Anthropic, PBC.
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# skills-cli
|
|
2
|
+
|
|
3
|
+
A CLI tool for managing [Agent Skills](https://agentskills.io/) - the open format for giving AI agents new capabilities.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
I recommend installing globally with `uv` as a tool, which will make it available across your system.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
uv tool install skills-cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## What are Agent Skills?
|
|
14
|
+
|
|
15
|
+
Agent Skills are folders containing a `SKILL.md` file with instructions, scripts, and resources that agents can discover and use. They allow you to package domain expertise into reusable capabilities for AI agents.
|
|
16
|
+
|
|
17
|
+
A skill directory looks like:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
my-skill/
|
|
21
|
+
├── SKILL.md # Required: instructions + metadata
|
|
22
|
+
├── scripts/ # Optional: executable code
|
|
23
|
+
├── references/ # Optional: documentation
|
|
24
|
+
└── assets/ # Optional: templates, resources
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The `SKILL.md` file must contain YAML frontmatter with at least `name` and `description`:
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
---
|
|
31
|
+
name: my-skill
|
|
32
|
+
description: What this skill does and when to use it.
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
# My Skill
|
|
36
|
+
|
|
37
|
+
Instructions for the agent...
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Commands
|
|
41
|
+
|
|
42
|
+
### `skills create`
|
|
43
|
+
|
|
44
|
+
Create a new skill scaffold with the required structure.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
skills create my-skill
|
|
48
|
+
skills create my-skill --path /path/to/directory
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This creates:
|
|
52
|
+
- `SKILL.md` with template frontmatter
|
|
53
|
+
- `scripts/`, `references/`, and `assets/` directories
|
|
54
|
+
|
|
55
|
+
### `skills validate`
|
|
56
|
+
|
|
57
|
+
Validate a skill directory against the Agent Skills specification.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
skills validate ./my-skill
|
|
61
|
+
skills validate ./my-skill/SKILL.md # Also accepts SKILL.md directly
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Checks for:
|
|
65
|
+
- Valid YAML frontmatter
|
|
66
|
+
- Required fields (`name`, `description`)
|
|
67
|
+
- Name format (lowercase, hyphens only, no consecutive hyphens)
|
|
68
|
+
- Name matches directory name
|
|
69
|
+
- No unexpected frontmatter fields
|
|
70
|
+
- Field length limits
|
|
71
|
+
|
|
72
|
+
### `skills read-properties`
|
|
73
|
+
|
|
74
|
+
Read skill properties and output as JSON.
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
skills read-properties ./my-skill
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Output:
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"name": "my-skill",
|
|
84
|
+
"description": "What this skill does.",
|
|
85
|
+
"license": "MIT",
|
|
86
|
+
"metadata": {
|
|
87
|
+
"author": "example"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### `skills to-prompt`
|
|
93
|
+
|
|
94
|
+
Generate available skills block for agent system prompts. Supports XML (default), YAML, and JSON formats.
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
skills to-prompt ./skill-a ./skill-b
|
|
98
|
+
skills to-prompt ./skill-a --format yaml
|
|
99
|
+
skills to-prompt ./skill-a -f json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**XML output (default):**
|
|
103
|
+
```xml
|
|
104
|
+
<available_skills>
|
|
105
|
+
<skill>
|
|
106
|
+
<name>
|
|
107
|
+
skill-a
|
|
108
|
+
</name>
|
|
109
|
+
<description>
|
|
110
|
+
Description of skill A.
|
|
111
|
+
</description>
|
|
112
|
+
<location>
|
|
113
|
+
/path/to/skill-a/SKILL.md
|
|
114
|
+
</location>
|
|
115
|
+
</skill>
|
|
116
|
+
</available_skills>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**YAML output:**
|
|
120
|
+
```yaml
|
|
121
|
+
available_skills:
|
|
122
|
+
- name: skill-a
|
|
123
|
+
description: Description of skill A.
|
|
124
|
+
location: /path/to/skill-a/SKILL.md
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**JSON output:**
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"available_skills": [
|
|
131
|
+
{
|
|
132
|
+
"name": "skill-a",
|
|
133
|
+
"description": "Description of skill A.",
|
|
134
|
+
"location": "/path/to/skill-a/SKILL.md"
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### `skills install`
|
|
141
|
+
|
|
142
|
+
Install skills from a local directory, zip file, or GitHub repository.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# From local directory
|
|
146
|
+
skills install ./my-skill
|
|
147
|
+
|
|
148
|
+
# From zip file
|
|
149
|
+
skills install ./my-skill.zip
|
|
150
|
+
|
|
151
|
+
# From GitHub (whole repo)
|
|
152
|
+
skills install https://github.com/anthropics/skills
|
|
153
|
+
|
|
154
|
+
# From GitHub (specific path in repo)
|
|
155
|
+
skills install https://github.com/owner/repo/tree/main/skills/my-skill
|
|
156
|
+
skills install https://github.com/owner/repo --subpath skills/my-skill
|
|
157
|
+
|
|
158
|
+
# Specify destination (default: ~/.claude/skills or ~/.codex/skills)
|
|
159
|
+
skills install ./my-skill --dest ./local-skills
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The install command:
|
|
163
|
+
- Validates skills before installing
|
|
164
|
+
- Searches up to 2 levels deep for skills in directories/repos
|
|
165
|
+
- Overwrites existing skills with the same name
|
|
166
|
+
|
|
167
|
+
### `skills list`
|
|
168
|
+
|
|
169
|
+
List installed skills.
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
skills list
|
|
173
|
+
skills list --path ./my-skills-dir
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Output:
|
|
177
|
+
```
|
|
178
|
+
/Users/you/.claude/skills:
|
|
179
|
+
my-skill: Description of my skill...
|
|
180
|
+
another-skill: Another skill description...
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### `skills zip`
|
|
184
|
+
|
|
185
|
+
Package a skill into a zip file for distribution.
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
skills zip ./my-skill
|
|
189
|
+
skills zip ./my-skill --output ./dist/my-skill.zip
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### `skills push`
|
|
193
|
+
|
|
194
|
+
Upload a skill to your Anthropic account via the API.
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Requires ANTHROPIC_API_KEY environment variable
|
|
198
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
199
|
+
|
|
200
|
+
skills push ./my-skill
|
|
201
|
+
skills push ./my-skill --update # Update existing skill
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Skill Name Requirements
|
|
205
|
+
|
|
206
|
+
Skill names must:
|
|
207
|
+
- Be lowercase
|
|
208
|
+
- Contain only letters, numbers, and hyphens
|
|
209
|
+
- Not start or end with a hyphen
|
|
210
|
+
- Not contain consecutive hyphens (`--`)
|
|
211
|
+
- Be 64 characters or less
|
|
212
|
+
- Match the directory name
|
|
213
|
+
|
|
214
|
+
Valid: `my-skill`, `data-analysis`, `pdf-reader`
|
|
215
|
+
Invalid: `My-Skill`, `-skill`, `skill-`, `my--skill`
|
|
216
|
+
|
|
217
|
+
## Default Skill Directories
|
|
218
|
+
|
|
219
|
+
The CLI looks for installed skills in these locations (in order):
|
|
220
|
+
1. `~/.claude/skills`
|
|
221
|
+
2. `~/.codex/skills`
|
|
222
|
+
|
|
223
|
+
## Environment Variables
|
|
224
|
+
|
|
225
|
+
| Variable | Description |
|
|
226
|
+
|----------|-------------|
|
|
227
|
+
| `ANTHROPIC_API_KEY` | Required for `push` command |
|
|
228
|
+
| `ANTHROPIC_API_URL` | API base URL (default: `https://api.anthropic.com`) |
|
|
229
|
+
|
|
230
|
+
## Running Tests
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
uv run python tests/test_skills.py
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## License
|
|
237
|
+
|
|
238
|
+
MIT
|
|
239
|
+
|
|
240
|
+
## Attribution
|
|
241
|
+
|
|
242
|
+
Validation and prompt generation logic adapted from [skills-ref](https://github.com/agentskills/agentskills), licensed under Apache 2.0. Copyright Anthropic, PBC.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "skills-cli"
|
|
3
|
+
version = "0.1.3"
|
|
4
|
+
description = "A CLI tool for managing skills."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.12"
|
|
7
|
+
dependencies = ["pyyaml>=6.0", "httpx>=0.27"]
|
|
8
|
+
license = "MIT"
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "Ben Anderson", email = "ben@trytaylor.ai" }
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
[project.scripts]
|
|
14
|
+
skills = "skills_cli.cli:main"
|
|
15
|
+
|
|
16
|
+
[build-system]
|
|
17
|
+
requires = ["setuptools>=61.0"]
|
|
18
|
+
build-backend = "setuptools.build_meta"
|
|
19
|
+
|
|
20
|
+
[tool.setuptools.packages.find]
|
|
21
|
+
where = ["src"]
|