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:
- Edit
SKILL.mdwith your skill prompt - Commit and push to GitHub
- Install with
skillz install github:username/my-skill - 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 automationSearches 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:
-
Set skills directory to your dotfiles:
skillz config set skills-dir ~/dotfiles/claude/skills
-
Install skills:
skillz install github:user/skill
-
Skills are now in your dotfiles repo. Commit them:
cd ~/dotfiles git add claude/skills git commit -m "Add agent skill"
-
On other machines, your dotfile manager will symlink
~/.claude/skillsto 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
evalwith variable expansionsudowithout 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