GitHub

Skill package manager for Claude Code and Codex. Install, manage, and share agent skills from GitHub, including individual skills inside monorepos.

Installation

From crates.io

cargo install skillz-rs

From source

git clone https://github.com/ducks/skillz
cd skillz
cargo build --release
cp target/release/skillz ~/.local/bin/

From GitHub releases

Download the latest binary for your platform from releases

Quick Start

# Create a new skill from template
skillz new my-skill
# Search for skills on GitHub
skillz search "daily notes"
# Install a skill from GitHub
skillz install github:user/skill
skillz install https://github.com/user/repo
# Install one skill from a monorepo for Codex
skillz install 'github:ducks/replaybook#skills/replaybook-build-scenario' --target codex
# List installed skills with timestamps
skillz list
# Update all skills
skillz update
# Update a specific skill
skillz update skill-name
# Auto-sync on startup (quiet mode)
skillz update --auto
# Remove a skill
skillz remove skill-name
# Configure skills directory (for dotfiles)
skillz config set skills-dir ~/dotfiles/claude/skills

Usage

Create New Skills

Create a new skill from a template:

# Create in current directory
skillz new my-skill
# Create in specific directory
skillz new my-skill --path ~/dev/skills

This creates:

  • SKILL.md - The skill prompt (edit this!)
  • README.md - Documentation for GitHub
  • .gitignore - Basic gitignore
  • Initialized git repository

After creating:

  1. Edit SKILL.md with your skill prompt
  2. Commit and push to GitHub
  3. Install with skillz install github:username/my-skill
  4. Share with others!

Install Skills

Install from GitHub using shorthand notation:

skillz install github:user/repo

Or full URL:

skillz install https://github.com/user/my-skill

The skill name will be extracted from the repository name.

Select a skill inside a monorepo with a repository-relative fragment. The selected directory is copied as the installed skill, so sibling packages and the repository's .git directory are not installed:

skillz install 'github:ducks/replaybook#skills/replaybook-build-scenario'

Choose an agent's standard skill directory without changing global config:

skillz install github:user/my-skill --target claude
skillz install github:user/my-skill --target codex

Claude installs under ~/.claude/skills. Codex installs under $CODEX_HOME/skills when CODEX_HOME is set, otherwise ~/.codex/skills. Skillz records the concrete install path, so later list, update, and remove commands continue to work across targets.

Search for Skills

Search GitHub for agent skills:

skillz search "status report"
skillz search automation

Searches repository names, descriptions, and READMEs for skills. Sorts results by stars.

Optional: Set GITHUB_TOKEN environment variable for higher API rate limits.

Update Skills

Update a specific skill:

skillz update skill-name

Update all installed skills:

skillz update

Auto-sync mode (quiet, for startup scripts):

skillz update --auto

List Installed Skills

skillz list

Shows all installed skills with:

  • Source repository URL
  • Installation date
  • Last sync date

Remove Skills

skillz remove skill-name

Removes the skill directory and registry entry. This operation cannot be undone.

Configuration

Configure where skills are installed:

# Set custom skills directory (e.g., for dotfiles)
skillz config set skills-dir ~/dotfiles/claude/skills
# View current config
skillz config show
# Get specific value
skillz config get skills-dir

Default locations:

  • Config: ~/.config/skillz/config.toml
  • Registry: ~/.config/skillz/registry.toml
  • Skills: ~/.claude/skills/ by default, or the explicit Claude/Codex target

Dotfiles Integration

If you manage your dotfiles with stow/chezmoi/yadm:

  1. Set skills directory to your dotfiles:

    skillz config set skills-dir ~/dotfiles/claude/skills
  2. Install skills:

    skillz install github:user/skill
  3. Skills are now in your dotfiles repo. Commit them:

    cd ~/dotfiles
    git add claude/skills
    git commit -m "Add agent skill"
  4. On other machines, your dotfile manager will symlink ~/.claude/skills to your dotfiles location.

Skill Validation

skillz validates skills on install and update:

Basic checks:

  • SKILL.md exists
  • Valid UTF-8 encoding
  • Non-empty content
  • Contains markdown headings
  • File size under 1MB

Security checks:

Scans for potentially dangerous commands and prompts before installation:

  • Destructive rm commands (rm -rf /, ~, *)
  • Pipe to shell from internet (curl | bash, wget | sh)
  • Fork bombs
  • Disk fill operations (dd if=/dev/zero)
  • Dangerous permissions (chmod 777)
  • System file modifications (/etc/, /bin/)
  • Crypto mining indicators
  • Network listeners
  • eval with variable expansion
  • sudo without explanation

Skill Structure

A valid skill must contain a SKILL.md file:

my-skill/
└── SKILL.md

The SKILL.md file contains the prompt the selected agent will load.

Future Features

  • Dependency management (skill A requires skill B)
  • Rollback to previous versions
  • Local path installation (copy instead of clone)

Development

# Build
cargo build
# Run tests
cargo test
# Run locally
cargo run -- list

License

MIT OR Apache-2.0

Read the original on github.com ↗