A CLI tool for managing skills.
Project description
skills-cli
A CLI tool for managing Agent Skills - the open format for giving AI agents new capabilities.
Installation
pip install skills-cli
Or install from source:
git clone https://github.com/your-username/skills-cli
cd skills-cli
pip install -e .
What are Agent Skills?
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.
A skill directory looks like:
my-skill/
├── SKILL.md # Required: instructions + metadata
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
└── assets/ # Optional: templates, resources
The SKILL.md file must contain YAML frontmatter with at least name and description:
---
name: my-skill
description: What this skill does and when to use it.
---
# My Skill
Instructions for the agent...
Commands
skills create
Create a new skill scaffold with the required structure.
skills create my-skill
skills create my-skill --path /path/to/directory
This creates:
SKILL.mdwith template frontmatterscripts/,references/, andassets/directories
skills validate
Validate a skill directory against the Agent Skills specification.
skills validate ./my-skill
skills validate ./my-skill/SKILL.md # Also accepts SKILL.md directly
Checks for:
- Valid YAML frontmatter
- Required fields (
name,description) - Name format (lowercase, hyphens only, no consecutive hyphens)
- Name matches directory name
- No unexpected frontmatter fields
- Field length limits
skills read-properties
Read skill properties and output as JSON.
skills read-properties ./my-skill
Output:
{
"name": "my-skill",
"description": "What this skill does.",
"license": "MIT",
"metadata": {
"author": "example"
}
}
skills to-prompt
Generate available skills block for agent system prompts. Supports XML (default), YAML, and JSON formats.
skills to-prompt ./skill-a ./skill-b
skills to-prompt ./skill-a --format yaml
skills to-prompt ./skill-a -f json
XML output (default):
<available_skills>
<skill>
<name>
skill-a
</name>
<description>
Description of skill A.
</description>
<location>
/path/to/skill-a/SKILL.md
</location>
</skill>
</available_skills>
YAML output:
available_skills:
- name: skill-a
description: Description of skill A.
location: /path/to/skill-a/SKILL.md
JSON output:
{
"available_skills": [
{
"name": "skill-a",
"description": "Description of skill A.",
"location": "/path/to/skill-a/SKILL.md"
}
]
}
skills install
Install skills from a local directory, zip file, or GitHub repository.
# From local directory
skills install ./my-skill
# From zip file
skills install ./my-skill.zip
# From GitHub (whole repo)
skills install https://github.com/anthropics/skills
# From GitHub (specific path in repo)
skills install https://github.com/owner/repo/tree/main/skills/my-skill
skills install https://github.com/owner/repo --subpath skills/my-skill
# Specify destination (default: ~/.claude/skills or ~/.codex/skills)
skills install ./my-skill --dest ./local-skills
The install command:
- Validates skills before installing
- Searches up to 2 levels deep for skills in directories/repos
- Overwrites existing skills with the same name
skills list
List installed skills.
skills list
skills list --path ./my-skills-dir
Output:
/Users/you/.claude/skills:
my-skill: Description of my skill...
another-skill: Another skill description...
skills zip
Package a skill into a zip file for distribution.
skills zip ./my-skill
skills zip ./my-skill --output ./dist/my-skill.zip
skills push
Upload a skill to your Anthropic account via the API.
# Requires ANTHROPIC_API_KEY environment variable
export ANTHROPIC_API_KEY=sk-ant-...
skills push ./my-skill
skills push ./my-skill --update # Update existing skill
Skill Name Requirements
Skill names must:
- Be lowercase
- Contain only letters, numbers, and hyphens
- Not start or end with a hyphen
- Not contain consecutive hyphens (
--) - Be 64 characters or less
- Match the directory name
Valid: my-skill, data-analysis, pdf-reader
Invalid: My-Skill, -skill, skill-, my--skill
Default Skill Directories
The CLI looks for installed skills in these locations (in order):
~/.claude/skills~/.codex/skills
Environment Variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Required for push command |
ANTHROPIC_API_URL |
API base URL (default: https://api.anthropic.com) |
Running Tests
uv run python tests/test_skills.py
License
MIT
Attribution
Validation and prompt generation logic adapted from skills-ref, licensed under Apache 2.0. Copyright Anthropic, PBC.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skills_cli-0.1.1.tar.gz.
File metadata
- Download URL: skills_cli-0.1.1.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f83fd3327e811f47deef4363603077306c16e86a7747844823e49bbbc2695bb4
|
|
| MD5 |
6dff8cd68a908c4ee2f3e3a47aee9027
|
|
| BLAKE2b-256 |
444e42abb464f52bedc0299684973b849597058c3966fdbabbc3e7e1d3699f8b
|
File details
Details for the file skills_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: skills_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c49820c513298c97de8de344a07e6830ad622a09736d343e033b022131e764e0
|
|
| MD5 |
ddb48faddba9dc6e2d04335e0adc4a49
|
|
| BLAKE2b-256 |
ff10ee66ea65172e171aafb745041afe456c8f6c116a21d20e91926f3c34bead
|