Skip to main content

A lightweight skill management utility for AI coding agents

Project description

Skillboard

A lightweight skill management utility for AI coding agents. Toggle skills on/off between your warehouse and active directories using symbolic links.

Python 3.9+ License: MIT PyPI version

Features

  • Simple Interactive UI - Checkbox-based selection using inquirer
  • 🔗 Symbolic Links - Efficiently enable/disable skills without copying
  • 📂 Multi-Agent Support - Works with Claude Code, OpenCode, Gemini CLI, and more
  • Fast Operations - Quickly toggle skills with keyboard shortcuts
  • 🎨 Beautiful Output - Rich terminal tables and colored output
  • 🔧 Configurable Paths - Customize skill directories via config file
  • 📋 Copy & Move - Copy or move skills between directories
  • 👁️ Read Skills - View skill content without opening an editor
  • 📦 Install from GitHub - Install skills directly from GitHub repos

Installation

Using pipx (Recommended)

pipx install skillboard

Using pip

pip install skillboard

From Source

git clone https://github.com/kriss-spy/skillboard.git
cd skillboard
pip install -e .

Quick Start

1. Initialize directories

skillboard init

This creates the default skill directories:

  • ~/.agents/skill-warehouse - Your skill source of truth
  • ~/.agents/skills - Standard agent skills
  • ~/.claude/skills - Claude Code skills
  • ~/.config/opencode/skills - OpenCode skills
  • ~/.gemini/skills - Gemini CLI skills
  • ~/.gemini/antigravity/skills - Antigravity skills

2. List available skills

skillboard list              # Show all .agents skills (global + local)
skillboard list claude       # Show Claude skills (~/.claude/skills + ./.claude/skills)
skillboard list agent        # Show agent skills (~/.agents/skills + ./agents/skills)
skillboard list gemini       # Show Gemini skills (~/.gemini/skills + ./gemini/skills)

3. Link skills interactively

# Link from warehouse to Claude Code (interactive selection)
skillboard link -o claude

# Or specify source explicitly
skillboard link -i warehouse -o claude

# Using paths directly
skillboard link -i ~/.agents/skill-warehouse -o ~/.claude/skills

# Non-interactive mode (just list skills)
skillboard link -o claude --no-tui

4. Install skills from GitHub

# Install a skill from GitHub to your warehouse
skillboard install anthropic/docx -o warehouse

# Install from Vercel Labs skills collection
skillboard install vercel-labs/skills -o warehouse --subpath skills

5. Copy or move skills

# Copy skills from warehouse to agent (interactive selection)
skillboard copy -i warehouse -o agent

# Copy all skills without selection
skillboard copy -i warehouse -o agent --all

# Move skills (copy + delete from source)
skillboard move -i warehouse -o agent

# Preview what would be moved
skillboard move -i warehouse -o agent --dry-run

Commands

init

Initialize skillboard configuration and create default directories.

skillboard init

# Migrate old .agent paths to .agents (v0.2.0 to v0.3.0+)
skillboard init --migrate

list

List available skills from both global and local locations.

skillboard list              # Show .agents skills (~/.agents/skills + ./.agents/skills)
skillboard list claude       # Show Claude skills (~/.claude/skills + ./.claude/skills)
skillboard list agent        # Show agent skills (~/.agents/skills + ./agents/skills)
skillboard list gemini       # Show Gemini skills (~/.gemini/skills + ./gemini/skills)

Shows skills from:

  • Global: The agent's directory in home (e.g., ~/.claude/skills)
  • Local: The agent's directory in current project (e.g., ./.claude/skills)

list-path

Show all configured skill paths and their existence status.

skillboard list-path

link

Create symbolic links to skills in the target directory. This is the primary command for enabling/disabling skills.

Interactive mode (default):

# Link from global skills (default)
skillboard link -o claude

# Link from warehouse to agent
skillboard link -i warehouse -o agent

# Link from local skills
skillboard link -i agent --input-scope local -o claude

# Link from local to local
skillboard link -i agent --input-scope local -o claude --output-scope local

Non-interactive mode:

skillboard link -o claude --no-tui

Options:

  • -i, --input: Source agent or path
  • -o, --output: Target agent or path (required)
  • --input-scope: global or local for input
  • --output-scope: global or local for output
  • --all: Include both global and local sources
  • --no-tui: Run in list-only mode
  • --verbose: Show full table instead of summary

copy

Copy skills from source to target (creates actual copies, not symlinks).

Interactive mode (default):

# Copy from warehouse to agent (interactive selection)
skillboard copy -i warehouse -o agent

# Copy from claude to agent
skillboard copy -i claude -o agent

# Copy from local source
skillboard copy -i agent --input-scope local -o warehouse

Copy all without selection:

skillboard copy -i warehouse -o agent --all

Options:

  • -i, --input: Source agent or path (required)
  • -o, --output: Target agent or path (required)
  • --input-scope: global or local for input
  • --output-scope: global or local for output
  • --all: Copy all skills without interactive selection

move

Move skills from source to target (copy + delete from source). Use with caution - this permanently deletes skills from the source location.

Interactive mode (default):

# Move from warehouse to agent (interactive selection)
skillboard move -i warehouse -o agent

# Move from claude to agent
skillboard move -i claude -o agent

Move all without selection:

skillboard move -i warehouse -o agent --all

Preview before moving:

skillboard move -i warehouse -o agent --dry-run

Force overwrite existing skills:

skillboard move -i warehouse -o agent --force

Options:

  • -i, --input: Source agent or path (required)
  • -o, --output: Target agent or path (required)
  • --input-scope: global or local for input
  • --output-scope: global or local for output
  • --all: Move all skills without interactive selection
  • --dry-run: Show what would be moved without actually moving
  • --force: Overwrite existing skills in target without prompting

install

Install skills from a GitHub repository. Automatically downloads and extracts skills to your warehouse.

Install from GitHub (owner/repo format):

# Install a single skill repo
skillboard install anthropic/docx -o warehouse

# Install from Vercel Labs skills collection
skillboard install vercel-labs/skills -o warehouse --subpath skills

# Install from a specific branch
skillboard install anthropic/docx -o warehouse --branch main

# Install with force (overwrite existing)
skillboard install anthropic/docx -o warehouse --force

Install from full GitHub URL:

skillboard install https://github.com/anthropic/docx -o warehouse

Auto-detection: The install command automatically detects:

  • Single skill repos (contain SKILL.md in root)
  • Multi-skill repos with skills/ subdirectory
  • Custom subpaths via --subpath

Options:

  • -o, --output: Target agent or path (default: warehouse)
  • --branch: Git branch to install from (default: main)
  • --subpath: Subpath within repo where skills are located
  • --force: Overwrite existing skills

read

Display skill content for quick reference without opening an editor.

# Read skill from default agent location
skillboard read my-skill

# Read skill from specific agent
skillboard read my-skill -a claude

# Read from local scope
skillboard read my-skill -a agent --scope local

# Read from .github/skills
skillboard read my-skill --github

Options:

  • -a, --agent: Agent to read from (claude, agent, gemini, opencode, antigravity)
  • --scope: global or local
  • --github: Read from .github/skills directory

Available Aliases

The following aliases can be used with -i and -o options:

  • warehouse: ~/.agents/skill-warehouse
  • agent: ~/.agents/skills
  • claude: ~/.claude/skills
  • opencode: ~/.config/opencode/skills
  • gemini: ~/.gemini/skills
  • antigravity: ~/.gemini/antigravity/skills

How It Works

Skillboard treats your warehouse (~/.agents/skill-warehouse) as the source of truth. When you "enable" a skill:

  1. A symbolic link is created in the target directory pointing to the skill in the warehouse
  2. The AI agent sees the skill and loads it

When you "disable" a skill:

  1. The symbolic link is removed from the target directory
  2. The AI agent no longer sees the skill

This approach:

  • ✅ Keeps one master copy of each skill
  • ✅ Instantly adds/removes skills from agent context
  • ✅ Prevents context bloat by only having enabled skills visible
  • ✅ Saves disk space (no copies needed)

Configuration

Configuration is stored in ~/.config/skillboard/config.yaml:

paths:
  agent: ~/.agents/skills
  antigravity: ~/.gemini/antigravity/skills
  claude: ~/.claude/skills
  gemini: ~/.gemini/skills
  opencode: ~/.config/opencode/skills
  warehouse: ~/.agents/skill-warehouse

You can customize these paths by editing the config file.

Development

# Clone the repository
git clone https://github.com/kriss-spy/skillboard.git
cd skillboard

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

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

# Run tests
pytest

# Format code
black skillboard/
ruff check --fix skillboard/

# Type check
mypy skillboard/

Project Structure

skillboard/
├── skillboard/
│   ├── __init__.py      # Package metadata
│   ├── cli.py           # CLI commands
│   ├── config.py        # Configuration management
│   ├── manager.py       # Skill scanning & symlink operations
│   └── tui.py           # Interactive checkbox interface
├── pyproject.toml       # Package configuration
├── LICENSE              # MIT License
└── README.md            # This file

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by OpenSkills for the checkbox interface pattern
  • Built with Click for CLI and Rich for beautiful output
  • Uses inquirer for interactive prompts

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skillboard-1.1.0.tar.gz (38.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillboard-1.1.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file skillboard-1.1.0.tar.gz.

File metadata

  • Download URL: skillboard-1.1.0.tar.gz
  • Upload date:
  • Size: 38.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillboard-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b003c0867d301497a65cfc46b116ee5b8e24874254706a594a96e5001b6e2f52
MD5 09a650b20999edb8953c5132e3f7082f
BLAKE2b-256 3f9fbdd5f18c10d345c62d7ad6e02c461727bcd6a08158b5af28e8ef5d41dbf4

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillboard-1.1.0.tar.gz:

Publisher: ci.yml on kriss-spy/skillboard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillboard-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: skillboard-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillboard-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 161abd28420581bed9ed3b36957844e6f3e5e654efd8a3c5e3c71a92f7c01f18
MD5 480d7b240b01158ed9ff645bb617c851
BLAKE2b-256 77e2b2053e2290ed3946f05ee3a22c2582631b64cf5e7b17cef07c8c4eb20eea

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillboard-1.1.0-py3-none-any.whl:

Publisher: ci.yml on kriss-spy/skillboard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page