CLI tool for managing AI assistant skills and slash commands across multiple LLM platforms
npx skills add https://github.com/jkitchin/skillz --skill opentrons-heater-shakerInstallieren Sie diesen Skill über die CLI und beginnen Sie mit der Verwendung des SKILL.md-Workflows in Ihrem Arbeitsbereich.
A comprehensive CLI tool for managing AI assistant skills and slash commands for Claude Code, OpenCode, and other LLM platforms.
Note: Currently only tested on Claude Code and OpenCode. Please report issues for Codex and Gemini. With opencode you may have better performance with https://www.npmjs.com/package/opencode-skills (this is what I use).
uv pip install -e .
pip install -e .
First, set up the path to your skills repository:
skillz config set repository /path/to/skillz
# List all skills and commands
skillz list
# List only skills
skillz list --type skill
# List only from repository
skillz list --source repository
# Install to Claude Code (default)
skillz install skill-name
# Install to OpenCode
skillz install skill-name --platform opencode
# Install to project directory (.claude/skills/)
skillz install skill-name --target project
# Preview before installing
skillz install skill-name --dry-run
skillz search python
skillz search "lab notebook"
# Interactive mode
skillz create --type skill
# With name specified
skillz create --type skill --name my-awesome-skill
# AI-assisted creation using Claude CLI
skillz create --type skill --name my-skill --prompt "A skill for analyzing Python code style"
skillz uninstall skill-name
# List available hooks
skillz hooks list --target repo
# Install a hook
skillz hooks install lab-notebook
# Create a hook (with AI)
skillz hooks create my-hook --event PostToolUse --prompt "Format Python with black"
# List available agents
skillz agents list --target repo
# Install an agent
skillz agents install code-reviewer
# Create an agent (with AI)
skillz agents create my-agent --prompt "An agent that reviews security vulnerabilities"
Configuration is stored in ~/.config/skillz/config.yaml.
Default configuration:
default_platform: claude
personal_skills_dir: ~/.claude/skills
personal_commands_dir: ~/.claude/commands
project_skills_dir: .claude/skills
project_commands_dir: .claude/commands
default_target: personal
platforms:
claude:
skills_dir: ~/.claude/skills
commands_dir: ~/.claude/commands
opencode:
skills_dir: ~/.config/opencode/skills
commands_dir: ~/.config/opencode/command
codex:
skills_dir: ~/.codex/skills
commands_dir: ~/.codex/commands
gemini:
skills_dir: ~/.config/gemini/skills
commands_dir: ~/.config/gemini/commands
Skills are directories containing a SKILL.md file with YAML frontmatter:
---
name: my-skill
description: A clear description of what this skill does and when to use it
allowed-tools: ["*"] # Optional: restrict available tools
---
# Skill Content
Detailed instructions for Claude on how to use this skill...
name: lowercase, hyphens only, max 64 charactersdescription: clear explanation, max 1024 charactersSKILL.mdCommands are markdown files with optional YAML frontmatter:
---
description: Brief description for /help
model: sonnet # Optional: sonnet, opus, or haiku
allowed-tools: ["*"] # Optional
argument-hint: <your-arg> # Optional: autocomplete help
---
# Command Content
Command prompt content here...
Use $ARGUMENTS or $1, $2, etc. for parameters.
Hooks are directories containing a HOOK.md file and a script (hook.py or hook.sh):
---
name: my-hook
description: Brief description of what this hook does
event: PostToolUse # PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd, etc.
matcher: Write # Optional: filter by tool name
timeout: 30000 # Optional: timeout in milliseconds
---
# Hook Documentation
Details about when and how this hook runs...
PreToolUse / PostToolUse: Before/after tool executionUserPromptSubmit: When user submits a promptStop: When Claude needs user inputSessionStart / SessionEnd: Session lifecycleNotification: For notificationsAgents are markdown files with YAML frontmatter:
---
name: my-agent
description: Clear description of what this agent does
tools: Read, Write, Edit, Grep, Glob
model: sonnet # sonnet, opus, or haiku
---
# Agent Instructions
Detailed instructions for this specialized agent...
skillz/
├── cli/ # Python CLI tool
│ ├── commands/ # CLI command implementations
│ ├── config.py # Configuration management
│ ├── validator.py # Skill/command/hook/agent validation
│ └── utils.py # Helper functions
├── skills/ # Skill repository
│ ├── academic/
│ ├── programming/
│ └── research/
├── commands/ # Command repository
├── hooks/ # Hooks repository
│ ├── lab-notebook/
│ ├── prettier-on-save/
│ └── ...
├── agents/ # Agents repository
│ ├── code-reviewer.md
│ ├── debugger.md
│ └── ...
├── templates/ # Templates for new skills/hooks/agents
├── docs/ # Documentation
└── tests/ # Test suite
# Install with development dependencies
uv pip install -e ".[dev]"
# Install pre-commit hooks
pre-commit install
This project uses pre-commit to automatically run linting and formatting checks before each commit. The hooks will:
ruff check --fix to fix linting issuesruff format to format codeIf any changes are made by the hooks, the commit will fail. Simply stage the changes and commit again.
# Run all tests
pytest
# Run with coverage report
pytest --cov=cli --cov-report=html
We use Ruff for both linting and formatting:
# Check for linting issues
ruff check .
# Auto-fix linting issues
ruff check --fix .
# Check formatting
ruff format --check .
# Format code
ruff format .
See the skills/ directory for available skills organized by category:
See the hooks/ directory for available hooks:
See the agents/ directory for available agents:
See the commands/ directory for slash commands:
Contributions are welcome! Please:
MIT License - see LICENSE file for details
Skillz manages skills and commands for these AI coding assistants:
Created by John Kitchin for managing AI assistant skills across different LLM platforms.