Skip to content

princespaghetti/skset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

skset - Manage Your Skill Sets

skset (short for "skill set") is a CLI tool for managing collections of LLM agent skills across multiple AI coding tools. Organize skills into reusable sets, maintain them in a central library, and distribute them to Claude Code, OpenCode, Codex, VS Code Copilot, Amp, Windsurf, Cursor, and Gemini CLI.

Follows the Agent Skills open standard.

Installation

brew tap princespaghetti/skset https://github.com/princespaghetti/skset
brew install skset

Core Concepts

  • Skills: Individual agent capabilities (e.g., "dependency-evaluator", "pdf-parser")
  • Library: Your central collection of skills at ~/.skset/library/
  • Groups: Named skill sets for organizing related skills (e.g., "core", "work", "personal")
  • Targets: AI coding tools where skills are deployed (Claude Code, OpenCode, etc.)
  • Sources: Discoverable skill locations (e.g., marketplace plugins) - read-only

Groups let you manage skill sets as units: skset push --group work deploys your entire work skill set.

Quick Start

# Initialize skset
skset init

# Fetch a skill from GitHub
skset fetch gh:anthropics/skills/skills/pdf --group core

# Or create a new skill
skset new my-skill

# Add it to a skill set (group)
skset add ./my-skill --group core

# View all your skills and groups
skset inventory

# Deploy your core skill set to all targets
skset push --group core

Commands

skset init

Initialize configuration and library.

skset init

skset new [skill]

Create a new skill from template (interactive or with name).

skset new
skset new my-skill

skset add <path>

Add an existing skill to the library.

skset add ./my-skill
skset add ./my-skill --group core

skset remove <skill>

Remove a skill from the library.

skset remove my-skill
skset remove my-skill --force
skset remove my-skill --from-group work  # Remove from group only

skset validate [skill]

Validate skills against the Agent Skills specification.

skset validate my-skill
skset validate --all

skset inventory

List all skills across library, targets, and sources.

skset inventory
skset inventory --library
skset inventory --target claude-code
skset inventory --group work  # Filter to show only skills in 'work' group
skset inventory --json

skset push [skill]

Distribute skills from library to targets.

skset push my-skill
skset push --all
skset push --group work  # Push all skills in 'work' group
skset push my-skill --target claude-code
skset push my-skill --repo
skset push --all --dry-run

skset pull [skill]

Import skills from targets into library.

skset pull my-skill
skset pull --all
skset pull --target claude-code
skset pull --all --from-repo

skset fetch <url>

Fetch skills from remote GitHub repositories.

# Using GitHub shorthand
skset fetch gh:anthropics/skills/skills/pdf

# Using full GitHub URL
skset fetch https://github.com/anthropics/skills/tree/main/skills/pdf

# Add to a group and force overwrite
skset fetch gh:anthropics/skills/skills/pdf --group core --force

Supported URL formats:

  • gh:owner/repo/path/to/skill - GitHub shorthand
  • github:owner/repo/path/to/skill - Alternate shorthand
  • https://github.com/owner/repo - Full URL (defaults to main branch)
  • https://github.com/owner/repo/tree/branch - Full URL with branch
  • https://github.com/owner/repo/tree/branch/path - Full URL with branch and path

skset groups

Manage skill sets (groups). Groups let you organize skills into named collections and operate on them as units.

# List all groups
skset groups
skset groups list

# Create a new group
skset groups create work

# Add skills to a group
skset groups add work dependency-evaluator
skset groups add work security-scanner

# Remove a skill from a group
skset groups remove work dependency-evaluator

# Delete a group (skills remain in library)
skset groups delete work

# Use groups with other commands
skset push --group work           # Push all skills in 'work' group
skset inventory --group work      # Show only 'work' group skills
skset add ./my-skill --group work # Add skill and assign to group

Configuration

Configuration is stored at ~/.skset/config.yaml with support for 8 default targets:

  • claude-code: ~/.claude/skills/ (global), .claude/skills/ (repo)
  • opencode: ~/.config/opencode/skills/ (global), .opencode/skills/ (repo)
  • codex: ~/.agents/skills/ (global), .agents/skills/ (repo)
  • copilot: ~/.copilot/skills/ (global), .github/skills/ (repo)
  • amp: ~/.config/agents/skills/ (global), .agents/skills/ (repo)
  • windsurf: ~/.codeium/windsurf/skills/ (global), .windsurf/skills/ (repo)
  • cursor: ~/.cursor/skills/ (global), .cursor/skills/ (repo)
  • gemini: ~/.gemini/skills/ (global), .gemini/skills/ (repo)

skset also tracks documented compatibility paths as read-only sources and warns when multiple targets share the same directory.

Skill Format

Skills follow the Agent Skills specification with a SKILL.md file containing YAML frontmatter and markdown instructions.

Development

# Install dependencies
bun install

# Run CLI during development
bun run dev <command>

# Run tests
bun test

# Build standalone binary
bun run build

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors