Centralized skill management for distributing skills across AI agents (Claude Code, Codex, Clawdbot).
brew tap thesash/tap
brew install skill-hub# Clone the repo
git clone https://github.com/thesash/skill-hub.git
cd skill-hub
# Add to PATH (add to ~/.zshrc or ~/.bashrc)
export PATH="$PWD/scripts:$PATH"
# Install gum for interactive features (optional but recommended)
brew install gumskill-hub init # Creates ~/.skill-hub/
skill-hub new my-first-skill # Create your first skill
skill-hub sync # Sync skills to agentsskill-hub # Launch interactive menu (requires gum)
skill-hub status # Detailed statusThe interactive menu lets you:
- Configure which skills each agent gets
- Manage skills (view info, migrate to project repos)
- Create and apply skill presets
skill-hub init # Initialize ~/.skill-hub/ data directory
skill-hub new <name> # Create a new skill from template
skill-hub path # Print data directory pathskill-hub # Interactive menu (requires gum) - default when no command
skill-hub i # Same as above
skill-hub status # Show skills and agent distribution
skill-hub list # List all skills (shows central vs project-linked)
skill-hub info <skill> # Show detailed info about a skillskill-hub set <agent> <skills> # Set skills ("all" or comma-separated)
skill-hub enable <agent> <skill> # Add a skill to an agent
skill-hub disable <agent> <skill> # Remove a skill from an agent
skill-hub copy <from> <to> # Copy skills from one agent to another
skill-hub reset <agent> # Reset agent to all skills
skill-hub sync [agent] # Apply config to filesystem (create/update symlinks)
skill-hub uninstall [agent] # Detach agents from hub (copy skills locally)skill-hub preset create <name> <skills> # Create a preset skill bundle
skill-hub preset list # List all presets
skill-hub preset show <name> # Show skills in a preset
skill-hub preset apply <agent> <preset> # Apply preset to an agent
skill-hub preset delete <name> # Delete a presetskill-hub add-agent <name> <path> [skills] # Add agent target
skill-hub discover # Discover agents from clawdbot.json
skill-hub link-project <skill> <project-path> # Link skill to project repo
skill-hub migrate <skill> [path] # Move skill to its own project repo
skill-hub deps [install] # Check/install dependencies
skill-hub config [key] [value] # Get/set configurationWhen agents create skills locally in their workspace, you can import them into skill-hub:
skill-hub local <agent> # List local (non-symlinked) skills
skill-hub adopt <agent> <skill> # Import skill into skill-hubEdit ~/.skill-hub/agents.conf:
# Format: name:path:skills
# skills: "all" or comma-separated list
claude-code:~/.claude/skills:all
codex:~/.codex/skills:bird,ynab,spreadsheet
clawdbot:~/.clawdbot/skills:allall= symlink entire directory (agent gets everything)skill1,skill2= individual symlinks (agent only gets listed skills)skills/.systemholds Codex system skills; it is included whenskills: allis used (directory symlink) but is hidden from explicit skill lists
Skills are stored in ~/.skill-hub/skills/. Each skill needs a SKILL.md file with YAML frontmatter:
skill-hub new my-skill # Creates ~/.skill-hub/skills/my-skill/SKILL.md---
name: my-skill
description: Brief description
allowed-tools: Bash, Read, Write, Edit
---
# My Skill
Instructions for the AI agent...When an AI agent creates a skill in its local workspace (not through skill-hub), you can adopt it into the central hub:
# 1. See what local skills exist in an agent's workspace
skill-hub local clawdbot-main
# meeting-researcher [has SKILL.md]
# my-new-skill [has SKILL.md]
# 2. Adopt a skill into skill-hub
skill-hub adopt clawdbot-main meeting-researcher
# Copies to: ~/.skill-hub/skills/meeting-researcher/
# Replaces local with symlink
# 3. Enable for other agents
skill-hub enable claude-code meeting-researcher
skill-hub enable clawdbot meeting-researcherThe sync command will warn you if it detects local skills that aren't managed by skill-hub, giving you a chance to adopt them first.
Skills can live in two places:
- Central (
~/.skill-hub/skills/) - Simple, all skills together - Project-linked (your own repo) - Skill versions with its project
When a skill grows complex enough to warrant its own repo:
# Configure your project directory (during init, or manually)
skill-hub config project_dir ~/p
skill-hub config git_init true
# Migrate a skill to its own repo
skill-hub migrate my-skill
# Creates: ~/p/my-skill/SKILL.md
# Symlink: ~/.skill-hub/skills/my-skill -> ~/p/my-skill
# Then push to GitHub if desired
cd ~/p/my-skill
gh repo create my-skill --private --source=. --pushIf you already have a skill in a project repo:
skill-hub link-project ynab-review ~/p/ynab-reviewAdd a metadata: line in SKILL.md to declare dependencies:
metadata: {"clawdbot":{"requires":{"bins":["yt-dlp","ffmpeg"],"env":["API_KEY"]}}}
~/.skill-hub/ # User data directory
├── skills/ # Your skills
│ ├── .system/ # Codex system skills
│ ├── my-skill/ # Central skill (directory)
│ │ └── SKILL.md
│ └── ynab-review -> ~/p/ynab-review # Project-linked skill (symlink)
├── agents.conf # Agent configuration
├── presets.conf # Saved presets
└── settings.conf # User settings (project_dir, git_init)
~/p/ynab-review/ # Project repo for a skill
├── SKILL.md # Skill definition at repo root
└── ... # Other project files
~/.claude/skills/my-skill -> ~/.skill-hub/skills/my-skill # Agent symlinks
~/.codex/skills/my-skill -> ~/.skill-hub/skills/my-skill
To return to per-agent, local skill folders:
skill-hub uninstall # All agents
skill-hub uninstall codex # Single agentThis replaces directory or per-skill symlinks with local copies in each agent's skills directory. Project-linked skills remain symlinks to their repos.
Running skill-hub sync later will re-apply whatever agents.conf specifies.
Note: uninstall has not been tested yet.
Your skills live in ~/.skill-hub/ and can be version controlled independently:
cd ~/.skill-hub
git init
git add -A && git commit -m "My skills"
gh repo create my-skills --private --source=.SKILL_HUB_DATA- Override the data directory (default:~/.skill-hub)
MIT