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.
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
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:
~/.agent/skill-warehouse- Your skill source of truth~/.agent/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 .agent skills (global + local)
skillboard list claude # Show Claude skills (~/.claude/skills + ./claude/skills)
skillboard list agent # Show agent skills (~/.agent/skills + ./agent/skills)
skillboard list gemini # Show Gemini skills (~/.gemini/skills + ./gemini/skills)
3. List configured paths
skillboard list-path
3. Sync skills interactively
# Sync from warehouse to Claude Code
skillboard sync -o claude
# Or specify source explicitly
skillboard sync -i warehouse -o claude
# Using paths directly
skillboard sync -i ~/.agent/skill-warehouse -o ~/.claude/skills
4. List skills without interactive mode
skillboard sync -o claude --no-tui
Commands
init
Initialize skillboard configuration and create default directories.
skillboard init
list
List available skills from both global and local locations.
skillboard list # Show .agent skills (~/.agent/skills + ./.agent/skills)
skillboard list claude # Show Claude skills (~/.claude/skills + ./claude/skills)
skillboard list agent # Show agent skills (~/.agent/skills + ./agent/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
sync
Sync skills between source and target directory.
Interactive mode (default):
# Sync from global skills (default)
skillboard sync -o claude
skillboard sync -o claude -g
# Sync from local skills
skillboard sync -o claude -l
# Sync to different agents
skillboard sync -o agent
skillboard sync -o gemini
skillboard sync -o opencode
List-only mode:
skillboard sync -o claude --no-tui
Options:
-o, --output: Target directory (required) - agent, claude, gemini, opencode, antigravity-g, --global: Use global skills from ~/.agent/skills (default)-l, --local: Use local skills from ./.agent/skills-i, --input: Explicit source directory (overrides -g/-l)--no-tui: Run in list-only mode
Available aliases:
warehouse:~/.agent/skill-warehouseagent:~/.agent/skillsclaude:~/.claude/skillsopencode:~/.config/opencode/skillsgemini:~/.gemini/skillsantigravity:~/.gemini/antigravity/skills
copy
Copy skills from source to target (creates actual copies, not symlinks).
skillboard copy warehouse claude
How It Works
Skillboard treats your warehouse (~/.agent/skill-warehouse) as the source of truth. When you "enable" a skill:
- A symbolic link is created in the target directory pointing to the skill in the warehouse
- The AI agent sees the skill and loads it
When you "disable" a skill:
- The symbolic link is removed from the target directory
- 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: ~/.agent/skills
antigravity: ~/.gemini/antigravity/skills
claude: ~/.claude/skills
gemini: ~/.gemini/skills
opencode: ~/.config/opencode/skills
warehouse: ~/.agent/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/
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skillboard-0.1.2.tar.gz.
File metadata
- Download URL: skillboard-0.1.2.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebc3633242abaf93afb49f462d17269ce31a66520cbdc4977007ae8fef1c93b8
|
|
| MD5 |
43b79f997d4482ffd8a94cdb899618d9
|
|
| BLAKE2b-256 |
6e93c5b7e3555135d926c67d3a78b1f0ea44d296d29663fc34f3f76c0c0895ab
|
Provenance
The following attestation bundles were made for skillboard-0.1.2.tar.gz:
Publisher:
ci.yml on kriss-spy/skillboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skillboard-0.1.2.tar.gz -
Subject digest:
ebc3633242abaf93afb49f462d17269ce31a66520cbdc4977007ae8fef1c93b8 - Sigstore transparency entry: 1303384222
- Sigstore integration time:
-
Permalink:
kriss-spy/skillboard@1b0e8fd01b462419b4150e5fb30a4d606dadec02 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/kriss-spy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@1b0e8fd01b462419b4150e5fb30a4d606dadec02 -
Trigger Event:
push
-
Statement type:
File details
Details for the file skillboard-0.1.2-py3-none-any.whl.
File metadata
- Download URL: skillboard-0.1.2-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e79d317c9919111da1520788785d7151c50521f86184ecf88085ce9d165bd2e
|
|
| MD5 |
17021b695966fec17e074837939e77c1
|
|
| BLAKE2b-256 |
e633b6462fea56ee11d44c18d0f26bc3bc09ecb1dfa2785b0f67048bf0e8b4ce
|
Provenance
The following attestation bundles were made for skillboard-0.1.2-py3-none-any.whl:
Publisher:
ci.yml on kriss-spy/skillboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skillboard-0.1.2-py3-none-any.whl -
Subject digest:
1e79d317c9919111da1520788785d7151c50521f86184ecf88085ce9d165bd2e - Sigstore transparency entry: 1303384292
- Sigstore integration time:
-
Permalink:
kriss-spy/skillboard@1b0e8fd01b462419b4150e5fb30a4d606dadec02 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/kriss-spy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@1b0e8fd01b462419b4150e5fb30a4d606dadec02 -
Trigger Event:
push
-
Statement type: