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.
@@ -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"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ """skills-cli: A CLI tool for managing skills."""
2
+
3
+ __version__ = "0.1.0"