Skip to content

kcchien/skills-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› οΈ Skills CLI

Cross-platform CLI for managing Claude Code and Claude Desktop skills

Skills CLI Architecture

Python 3.10+ License: MIT Platform

GitHub stars GitHub forks


One definition, multiple deployments β€” Deploy skills from a central Git repository to both Claude Code CLI and Claude Desktop App.

Installation β€’ Usage β€’ Python API β€’ Contributing

πŸ’‘ Why Skills CLI?

πŸ”— Git-First

Any Git repository can become a skills source. Use official repos, fork your own, or host privately β€” full flexibility.

🎯 Dual Environment

One skill definition, two targets. Deploy to Claude Code CLI and pack for Claude Desktop simultaneously.

πŸ“ Metadata Tracking

Every installed skill records its source repo, commit hash, and install time. Always know where your skills came from.

✨ Features

Feature Description
πŸ–₯️ Cross-platform Windows, macOS, Linux
πŸ“¦ Zero dependencies Uses only Python standard library
πŸ”— Flexible repo support GitHub, GitLab, self-hosted Git with subdirectory paths
🏠 Default repo Uses Anthropic official skills by default
🎯 Selective installation Install all skills or choose specific ones
πŸ›‘οΈ Safety controls --dry-run preview, --backup before overwrite
πŸ“ Source tracking Records installation source for each skill
πŸš€ Dual deployment Claude Code (~/.claude/skills/) + Claude Desktop (.zip packs)

πŸš€ Quick Start

# Install the CLI
pip install git+https://github.com/kcchien/skills-cli.git

# List available skills from Anthropic's official repo
skills-cli list

# Install all skills
skills-cli install --all

# Or pick specific ones
skills-cli install --skills pdf,xlsx,docx

# Use your own skills repository
skills-cli list --repo https://github.com/your-username/your-skills
skills-cli install --repo https://github.com/your-username/your-skills --all

πŸ“₯ Installation

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/kcchien/skills-cli/main/install.sh | bash

Windows PowerShell

irm https://raw.githubusercontent.com/kcchien/skills-cli/main/install.ps1 | iex

From Source (pip)

git clone https://github.com/kcchien/skills-cli.git
cd skills-cli
pip install -e .

Direct Usage (No Install)

python skills_cli.py <command> [options]

πŸ“– Usage

Getting Help

# Show all available commands
skills-cli --help

# Show help for a specific command
skills-cli list --help
skills-cli install --help

Example: Using custom repository

# List skills from a custom repository
skills-cli list --repo https://github.com/your-username/your-skills

# List skills from a specific branch
skills-cli list --repo https://github.com/your-username/your-skills --branch develop

# Install all skills from a custom repository
skills-cli install --repo https://github.com/your-username/your-skills --all

# Install specific skills from a custom repository
skills-cli install --repo https://github.com/your-username/your-skills --skills my-skill,another-skill

# Install from a repository subdirectory
skills-cli install --repo https://github.com/org/monorepo/tree/main/packages/skills --all

List Available Skills

# List skills from official Anthropic repo (default)
skills-cli list

# List with detailed descriptions
skills-cli list --detail

# List from custom repo
skills-cli list --repo https://github.com/user/my-skills

List Installed Skills

# Show all installed skills (global + project)
skills-cli installed

# Show with source tracking info
skills-cli installed --detail

# Show only project skills
skills-cli installed --project

Install Skills

# Interactive selection (from default repo)
skills-cli install

# Install all skills
skills-cli install --all

# Install specific skills
skills-cli install --skills pdf,xlsx,docx

# Preview what would be installed (dry run)
skills-cli install --all --dry-run

# Backup existing skills before overwriting
skills-cli install --all --force --backup

# Install to project directory (.claude/skills/)
skills-cli install --all --project

# Install from custom repo
skills-cli install --repo https://github.com/user/skills --all

Remove Skills

# Interactive selection
skills-cli remove

# Remove specific skills
skills-cli remove --skills pdf,xlsx

# Remove all skills (with confirmation)
skills-cli remove --all

# Preview what would be removed
skills-cli remove --all --dry-run

# Skip confirmation
skills-cli remove --all --force

Validate Skills

# Validate installed skills
skills-cli validate

# Validate skills from a remote repo
skills-cli validate --repo https://github.com/user/skills

# Validate a local skill directory
skills-cli validate --path ./my-skill/

Diagnose Issues

# Check directory structure and common issues
skills-cli doctor

Pack for Claude Desktop

# Pack all skills to zip files
skills-cli pack --output dist/desktop

# Pack specific skills
skills-cli pack --skills pdf,xlsx --output dist/

Output:

dist/desktop/
β”œβ”€β”€ pdf.zip
β”œβ”€β”€ xlsx.zip
β”œβ”€β”€ docx.zip
└── manifest.json

Sync Skills (Git Pull/Clone)

# Sync to personal skills directory
skills-cli sync

# Sync to project directory
skills-cli sync --project

# Sync from custom repo
skills-cli sync --repo https://github.com/user/skills

πŸ”— Supported Repository URL Formats

Format Example
GitHub (with subdirectory) https://github.com/anthropics/skills/tree/main/skills
GitHub (root) https://github.com/user/my-skills
GitLab (with subdirectory) https://gitlab.com/team/repo/-/tree/main/skills
GitLab (root) https://gitlab.example.com/team/skills
SSH git@github.com:user/skills.git
Self-hosted https://git.company.com/team/skills

πŸ—οΈ Architecture

The CLI is organized as a Python package with a clean separation between core logic and CLI handling:

skills-cli/
β”œβ”€β”€ skills_cli/
β”‚   β”œβ”€β”€ __init__.py      # Public API exports
β”‚   β”œβ”€β”€ core.py          # Core library (git, clone, discover, install, pack)
β”‚   └── cli.py           # CLI handlers (argparse, command functions)
β”œβ”€β”€ tests/
β”‚   └── test_core.py     # Unit tests
β”œβ”€β”€ skills_cli.py        # Entry point
└── pyproject.toml

🐍 Python API

The core functions can be imported and used programmatically:

from skills_cli import (
    parse_repo_url,
    discover_skills,
    find_skills_root,
    install_skill,
    validate_skill_md,
    get_claude_skills_dir,
)

# Parse various repo URL formats
repo_info = parse_repo_url("https://github.com/user/skills/tree/main/skills")
# {'clone_url': '...', 'branch': 'main', 'subdir': 'skills', ...}

# Discover skills in a directory
skills = discover_skills(Path("~/.claude/skills").expanduser())
# [{'name': 'pdf', 'description': '...', 'path': Path(...), ...}, ...]

# Install a skill
success, message = install_skill(
    source_path,
    target_dir,
    force=True,
    backup=True
)

# Validate a skill
issues = validate_skill_md(Path("./my-skill"))
# [] if valid, or ['Missing required field: name', ...] if issues

πŸ“‹ Requirements

  • Python 3.10+
  • Git 2.25+ (for sparse-checkout support)

πŸ§‘β€πŸ’» Development

# Clone the repository
git clone https://github.com/kcchien/skills-cli.git
cd skills-cli

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run a specific test
pytest tests/test_core.py::TestParseRepoUrl -v

πŸ“„ License

MIT License - see LICENSE for details.


About

Cross-platform CLI for managing Claude Code and Claude Desktop skills

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages