Skip to content

webteractive/skillset

Repository files navigation

Skillset

Manage AI agent skills in one place and sync them to Cursor, Claude, Codex, Gemini, OpenCode, and more. The source of truth is .skillset/skills (project) or ~/.skillset/skills (user-level).

macOS & Linux · WSL 2 supported


Quick Start

curl -sSL https://raw.githubusercontent.com/webteractive/skillset/main/install.sh | sh -s -- --download
skillset list

On first run, a default config is created at ~/.config/skillset/config.json.


Installation

Install script (recommended)

curl -sSL https://raw.githubusercontent.com/webteractive/skillset/main/install.sh | sh -s -- --download

Installs to ~/.local/bin or ~/bin—ensure it's on your PATH.

From a clone:

./install.sh --download                    # Download release binary
./install.sh /path/to/skillset             # Use existing binary
./install.sh                               # Use ./target/release/skillset

Cargo

git clone https://github.com/webteractive/skillset.git && cd skillset
cargo install --path .

Updating: Re-run the same install command; config and skills are preserved.


How It Works

  • Source: Skills live in .skillset/skills (workspace) or ~/.skillset/skills (user-level).
  • Targets: Config lists where to sync (e.g. ~/.cursor/skills, ~/.claude/skills).
  • Scope: Use --user or -G to operate on user-level; otherwise, workspace.

Commands

Command Description
skillset list Show skills and their status per target
skillset sync Copy skills from source to selected targets
skillset install <owner/repo> Install skills from a GitHub repo
skillset add <name> Scaffold a new skill with template
skillset remove <name> Remove skill from targets (optionally from source)
skillset validate Check SKILL.md frontmatter for errors
skillset where [skill] Show where skills are installed (tracked instances)
skillset config <action> Manage configuration (show, add/remove targets, reset)
skillset completions <shell> Generate shell completions (bash, zsh, fish)
skillset self-update Update skillset to the latest version
skillset doc --agents-md Output AGENTS.md snippet

Common flags: --user / -G (user-level), --sync (with install), --force (skip all prompts), --dry-run (preview without changes)

install

Install skills from a GitHub repo. Package format: owner/repo (HTTPS by default) or a full Git URL. Skillset clones via git, so if you can git clone a repo, you can install from it—no extra auth. Your existing SSH keys, credential helper, or PAT in the URL all work as usual.

  • Public repos: skillset install owner/repo
  • Private repos: Use the same URL you’d use for git clone. With SSH keys set up, [email protected]:org/private-repo.git works. Or https://github.com/org/private-repo.git if you use a credential helper or PAT. Set install.use_ssh: true in config to make owner/repo resolve to SSH by default.

Examples

# Workspace vs user-level
skillset list              # Workspace .skillset/skills
skillset list --user       # User-level ~/.skillset/skills

# Install from repos (find more at https://skills.sh)
skillset install webteractive/skillset
skillset install anthropics/skills --skill=frontend-design
skillset install org/repo --sync --user

# Private repos—use whatever URL works with your git setup
skillset install [email protected]:org/private-repo.git
skillset install https://github.com/org/private-repo.git   # if using credential helper or PAT

# Create and sync
skillset add my-skill
skillset sync

# Preview what would happen
skillset sync --dry-run
skillset install webteractive/skills --dry-run

# Show diff before overwriting
skillset sync --diff

# Filter skills
skillset list --filter="test"
skillset list --status=missing
skillset list --status=synced

# Validate skill frontmatter
skillset validate

# Shell completions
skillset completions bash >> ~/.bashrc
skillset completions zsh >> ~/.zshrc
skillset completions fish > ~/.config/fish/completions/skillset.fish

Configuration

CLI management

skillset config show                              # Pretty-print current config
skillset config add-target "My Editor" ~/.myeditor/skills   # Add a target
skillset config remove-target "My Editor"          # Remove a target
skillset config reset                              # Restore defaults
skillset config validate-paths                     # Check which target paths exist

Manual editing

Edit ~/.config/skillset/config.json:

Option Description
source Skills directory path (resolved by scope)
targets List of { label, path } for sync destinations
install.use_ssh Use SSH URLs for owner/repo format
install.skill_dirs Dirs to search in repos (default: [".claude/skills", "skills"])

See config.example.json for the full default config.


Tracking Skill Instances

skillset where shows where skills are installed across all targets:

# Show all tracked instances
skillset where

# Show instances for a specific skill
skillset where my-skill

# Scan existing targets and register instances (run once after upgrading)
skillset where --scan

The registry is auto-managed — instances are tracked on every sync and cleaned up when paths no longer exist.


Skill Validation

skillset validate checks each SKILL.md for proper frontmatter:

$ skillset validate
Validating 3 skill(s):

  ✓ my-skill (author, version, tags)
  ✗ bad-skill — missing 'description'
  ✓ other-skill

1 error(s) found.

Required fields: name, description. Optional: author, version, tags.

Extended metadata

Skills can include optional metadata in their frontmatter:

---
name: my-skill
description: Does something cool
author: Glen
version: 1.0.0
tags: [testing, automation]
---

Incremental Sync

When syncing, skillset automatically skips skills whose SKILL.md is identical at the target. Only changed skills are copied. Use --force to copy everything regardless.


AGENTS.md Integration

skillset doc --agents-md >> AGENTS.md

Tells AI agents where to store skills and how to use the CLI.


Development

cargo build --release
cargo run -- list
cargo test

Releasing: Update CHANGELOG, run cargo fmt / cargo clippy -- -D warnings / cargo test, then ./release.sh patch|minor|major — the script bumps Cargo.toml, commits, tags, builds, and creates the GitHub release automatically.


Requirements

  • Rust 1.70+ (when building from source)
  • git (for skillset install)
  • macOS, Linux, or WSL 2

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors