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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skills_cli-0.2.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skills_cli-0.2.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file skills_cli-0.2.0.tar.gz.

File metadata

  • Download URL: skills_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for skills_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5a91fefab24835f0747429be16b8341cc62a64204b9e35bea6f2b9533b55c2b4
MD5 0c058db49823b671f5441502f4bc0ee3
BLAKE2b-256 200206d735de2de6763ea63c2e1c10bcef7318ef80c677ac19aace23a1fd1a18

See more details on using hashes here.

File details

Details for the file skills_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: skills_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for skills_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 944e40c2d5a119742c9f8a3c362577fdbdee69da4aff73faa91a6f629087782a
MD5 5154272d11a581a96c24396172f459ed
BLAKE2b-256 939b0819c3515c038daa40541309d30507d373b9b60c716367f51d177e18e575

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page