Skip to main content

skillman: a CLI for managing Claude skills

███████╗ ██╗ ██╗ ██╗ ██╗ ██╗ ███╗ ███╗ █████╗ ███╗ ██╗ ██╔════╝ ██║ ██╔╝ ██║ ██║ ██║ ████╗ ████║ ██╔══██╗ ████╗ ██║ ███████╗ █████╔╝ ██║ ██║ ██║ ██╔████╔██║ ███████║ ██╔██╗ ██║ ╚════██║ ██╔═██╗ ██║ ██║ ██║ ██║╚██╔╝██║ ██╔══██║ ██║╚██╗██║ ███████║ ██║ ██╗ ██║ ███████╗ ███████╗ ██║ ╚═╝ ██║ ██║ ██║ ██║ ╚████║ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═══╝

Tests and Build Code Quality Python 3.8+ License: MIT PyPI

A Python CLI for managing Claude skills from GitHub repositories. Handles installation, versioning, and synchronisation of skills across user and project scopes -- mostly gracefully.

Installation

Via pip (from PyPI)

Once published to PyPI:

pip install skillman

The uv tool is a fast, all-in-one Python package installer and tool runner:

uv tool install skillman

Or run directly without installing:

uv run --with skillman skillman init

Install uv

Via pipx

pipx install skillman

From source (development)

Clone the repository and install in development mode:

git clone https://github.com/chrisvoncsefalvay/skillman.git
cd skillman
pip install -e .

Or with development dependencies:

pip install -e ".[dev]"

Quick start

Create an empty manifest in your project:

skillman init

List installed skills:

skillman list

Commands

skillman init

Create empty skills.toml in current directory.

skillman add [options]

Add and install a skill from GitHub.

By default, the tool displays a security warning before installation to help you make informed decisions about which skills to install.

Options:

  • -s, --scope <local|user>: Installation scope (default: local)
  • --no-verify: Skip skill validation
  • --force: Overwrite existing skill
  • --dangerously-skip-permissions: Skip security warning (not recommended)

Skill specification format:

  • Single skill repo: username/reponame[@version]
  • Skill in repository folder: username/reponame/foldername[@version]
  • Nested skill (multi-tier): username/reponame/folder1/folder2/...[@version]
  • Version: @1.2.3 (tag), @abc1234 (SHA), @latest or omitted (latest)

Supports arbitrary nesting levels. The tool will look for SKILL.md in the specified path.

Example:

skillman add anthropics/skills/canvas-design
skillman add anthropics/skills/document-skills/docx
skillman add myorg/repo/custom-skill@1.2.3

skillman remove [options]

Remove skill from manifest and filesystem.

Options:

  • -s, --scope <local|user>: Only remove from specified scope
  • --keep-files: Remove only from manifest, keep installed files

skillman verify

Check if skill exists at source and has valid structure.

skillman list [options]

List installed skills with status.

Options:

  • -s, --scope <local|user>: Show only specified scope

Status values:

  • synced: Installed and matches manifest version
  • outdated: Installed version differs from manifest
  • orphaned: Installed but not in manifest
  • missing: In manifest but not installed

skillman show

Display detailed skill information.

skillman update [|--all] [--dry-run]

Update installed skills to versions specified in manifest.

Options:

  • --all: Update all skills
  • --dry-run: Show what would happen

Examples:

skillman update canvas-design
skillman update --all
skillman update --dry-run

skillman fetch [--dry-run]

Fetch and update all skills (alias for update --all).

skillman sync [options]

Synchronise skills between manifest and installed.

Options:

  • --up: Update skills to latest matching manifest constraints
  • --down: Add installed-but-unlisted skills to manifest
  • -y, --yes: Don't prompt for confirmation
  • --dry-run: Show what would happen

skillman clean [options]

Remove orphaned skills (installed but not in manifest).

Options:

  • -s, --scope <local|user>: Clean only specified scope
  • --dry-run: Show what would happen
  • -y, --yes: Don't prompt for confirmation

skillman config [args]

Manage configuration.

Subcommands:

  • get <key>: Get configuration value
  • set <key> <value>: Set configuration value
  • list: List all configuration values

Configuration keys:

  • default-scope: Default installation scope (local or user)
  • github-token: GitHub token for private repositories

Configuration file location: ~/.skillman/config.toml

Example:

skillman config set github-token your-token-here
skillman config get default-scope
skillman config list

Installation paths

Skills are installed to:

  • User scope: ~/.claude/skills/user/
  • Project scope: ./.claude/skills/

Manifest file

Skills are declared in skills.toml:

[tool.skillman]
version = "1.0.0"

[[skills]]
name = "canvas"
source = "anthropics/skills/canvas-design"
version = "latest"
scope = "user"
aliases = ["design"]

[[skills]]
name = "custom"
source = "myorg/repo/custom-skill"
version = "1.0.0"
scope = "local"

Security considerations

Skills can execute code and access system resources. Before installing a skill, you should:

  1. Install only from trusted sources: Only install skills from repositories you trust or that have been recommended by reliable sources.

  2. Review skill functionality: Use skillman verify to examine what a skill does before installing it.

  3. Understand permissions: Skills can:

    • Read, create, and modify files on your system
    • Execute system commands
    • Access and manipulate data
  4. Permission warnings: By default, skillman displays a security warning and asks for confirmation before installing any skill. This helps you make informed decisions.

  5. Skipping warnings: The --dangerously-skip-permissions flag allows skipping the security warning. This is not recommended except for trusted, well-known skills.

For detailed information about skill security and permissions, see: Using Skills in Claude - Security

Skill metadata extraction

Skillman automatically extracts metadata from SKILL.md front matter in YAML format:

---
title: My Skill
description: What this skill does
license: MIT
author: Author Name
version: 1.0.0
tags:
  - documentation
  - productivity
---

# Skill content...

Extracted metadata is displayed when:

  • Verifying a skill: skillman verify username/repo/skill
  • Showing skill details: skillman show skillname

If no YAML front matter is present, the first non-header paragraph from the markdown is used as the description.

Lock file

skills.lock is automatically generated and maintains exact commit SHAs for reproducible installations. This file should be committed to version control.

Configuration

Create ~/.skillman/config.toml for global configuration:

default-scope = "local"
github-token = "your-github-token"

Or use the skillman config command:

skillman config set github-token your-token

Development

Install development dependencies:

pip install -e ".[dev]"

Run tests:

pytest

Format code:

black skillman

Type check:

mypy skillman

Requirements

  • Python 3.8+
  • click: CLI framework
  • rich: Formatted output
  • GitPython: Git operations
  • tomli/tomli_w: TOML parsing
  • requests: HTTP operations

Architecture

The tool is structured as follows:

  • cli.py: Click-based CLI commands
  • models.py: Data models (Skill, Manifest, LockFile)
  • config.py: Configuration management
  • github.py: GitHub operations and skill validation
  • installer.py: Skill installation and management
  • utils.py: Utility functions for manifest and lock file handling

All output uses the Rich library for ASCII-compatible formatting (no Unicode box-drawing or emoji).

Error handling

The tool provides (mostly) clear error messages for:

  • Network failures (with retry suggestions)
  • Validation failures (showing what's wrong with the skill structure)
  • Conflict warnings (these are only warnings as Claude should determine how to actually resolve them)
  • Sync failures (showing which skills succeeded and which failed)

License

MIT

Made with ❤️ in the Mile High City 🏔️ by Chris von Csefalvay and 🐶 Oliver.

Release files for skillman 0.4.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 skillman 0.4.0
File Size Uploaded
skillman-0.4.0.tar.gz 26.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skillman 0.4.0
File Interpreter ABI Platform
skillman-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 46.2 kB

Release files / skillman-0.4.0.tar.gz

Download URL skillman-0.4.0.tar.gz
Size 26.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7bff4dd804aee61b29cfb722736c26cf2ad8a252ca3be2f11a3b3384210b4059
BLAKE2b-256 checksum
How to use checksums
fd5f60515729685d416f26c032d844f597d4f5aae805a97d0b3cc07b328bcd6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2025.

Transparency log

Release files / skillman-0.4.0-py3-none-any.whl

Download URL skillman-0.4.0-py3-none-any.whl
Size 20.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ecee1c51baa13c32b9baa33dbd9eb3d6fcd38c25b357b16f91abeadc8dacef79
BLAKE2b-256 checksum
How to use checksums
0e3193c4585494b71f4a59b55d21ffbd3d1c616b95f691c22619b394e82ea1cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.3

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