Skip to main content

skills-cli

A CLI tool for managing Agent Skills - the open format for giving AI agents new capabilities.

Installation

I recommend installing globally with uv as a tool, which will make it available across your system.

uv tool install skills-cli

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.md with template frontmatter
  • scripts/, references/, and assets/ 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):

  1. ~/.claude/skills
  2. ~/.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.

Metadata

Release files for skills-cli 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skills-cli 0.2.0
File Size Uploaded
skills_cli-0.2.0.tar.gz 17.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skills-cli 0.2.0
File Interpreter ABI Platform
skills_cli-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.6 kB

Release files / skills_cli-0.2.0.tar.gz

Download URL skills_cli-0.2.0.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5a91fefab24835f0747429be16b8341cc62a64204b9e35bea6f2b9533b55c2b4
BLAKE2b-256 checksum
How to use checksums
200206d735de2de6763ea63c2e1c10bcef7318ef80c677ac19aace23a1fd1a18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release files / skills_cli-0.2.0-py3-none-any.whl

Download URL skills_cli-0.2.0-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
944e40c2d5a119742c9f8a3c362577fdbdee69da4aff73faa91a6f629087782a
BLAKE2b-256 checksum
How to use checksums
939b0819c3515c038daa40541309d30507d373b9b60c716367f51d177e18e575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page