Skip to content

aminmesbahi/Skell

Repository files navigation

Skell

A cross-platform skill package manager for Agent Skills.

Install, upgrade, sync, and govern SKILL.md files across one or many repositories from versioned GitHub registries.

CI CodeQL Security codecov Release License: Apache 2.0 Go Report Card Platform


Install

Windows

irm https://raw.githubusercontent.com/aminmesbahi/skell/main/install.ps1 | iex

Or with winget (once the package is published):

winget install aminmesbahi.skell

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/aminmesbahi/skell/main/install.sh | sh

Or with Homebrew:

brew tap aminmesbahi/tap
brew install skell

Manual download

Grab the latest binary for your platform from GitHub Releases:

Platform File
Windows (x64) skell_0.x.x_windows_amd64.zip
macOS (Apple Silicon) skell_0.x.x_darwin_arm64.tar.gz
macOS (Intel) skell_0.x.x_darwin_amd64.tar.gz
Linux (x64) skell_0.x.x_linux_amd64.tar.gz
Linux (ARM64) skell_0.x.x_linux_arm64.tar.gz

Extract the archive and place the skell binary somewhere on your PATH.

Build from source

git clone https://github.com/aminmesbahi/skell
cd skell
go build -o skell .        # Linux/macOS
go build -o skell.exe .    # Windows

Self-update

skell selfupdate

Quick Start

# 1. Initialise a repository
skell init --repo /path/to/my-repo

# 2. Install a skill (bootstraps the registry on first use)
skell install ilspy-decompile \
  --registry dotnet-skillz \
  --registry-url https://github.com/davidfowl/dotnet-skillz \
  --repo /path/to/my-repo

# 3. See what's installed
skell list --repo /path/to/my-repo

# 4. Check for updates
skell status --repo /path/to/my-repo

# 5. Upgrade all non-pinned skills
skell upgrade --repo /path/to/my-repo

How It Works

Skills live in .claude/skills/<name>/ inside each repository. Skell tracks them via two files:

File Purpose
.claude/skell.toml Declares which registries and skills a repo uses
.claude/skell.lock Records exact install state (hash, timestamp, source URL)

Registries are plain GitHub (or any Git) repositories that contain folders with SKILL.md files.


Command Reference

init

Create skell.toml for a repository (scans for already-installed skills).

skell init
skell init --repo /path/to/repo

install

Install a skill from a registry.

# Registry already in skell.toml
skell install run-tests --registry dotnet-skills

# Bootstrap a new registry in one step
skell install ilspy-decompile \
  --registry dotnet-skillz \
  --registry-url https://github.com/davidfowl/dotnet-skillz

# Dry-run (no files written)
skell install run-tests --registry dotnet-skills --dry-run

# Target a specific repo or all repos under a directory
skell install run-tests --registry dotnet-skills --repo ./my-project
skell install run-tests --registry dotnet-skills --all-repos ~/projects

list

Show installed or available skills.

skell list                          # installed in current repo
skell list --repo /path/to/repo
skell list --all-repos ~/projects   # all managed repos under a root
skell list --source registry        # browse available skills from configured registries
skell list --json                   # JSON output (for CI)

status

Compare local installs against the registry.

skell status
skell status --repo /path/to/repo

Status values: up-to-date · outdated · pinned · locally-modified · deprecated · missing-metadata

upgrade

Upgrade all (or a single) non-pinned skill.

skell upgrade                       # upgrade all
skell upgrade run-tests             # upgrade one
skell upgrade --dry-run             # preview only
skell upgrade --force               # also overwrite locally-modified skills

remove

Remove a skill from a repository.

skell remove run-tests
skell remove run-tests --repo /path/to/repo

pin / unpin

Lock a skill to its current version (skips upgrade).

skell pin ilspy-decompile --repo /path/to/repo
skell unpin ilspy-decompile --repo /path/to/repo

sync

Apply skell.toml to a repository — installs missing skills, removes unlisted ones.

skell sync
skell sync --repo /path/to/repo
skell sync --dry-run

search

Search available skills across all configured registries.

skell search                              # list all
skell search maui                         # filter by name/description/tags
skell search --lifecycle stable
skell search --owner microsoft
skell search dotnet --lifecycle stable --owner microsoft

info

Show full metadata for a skill.

skell info ilspy-decompile              # local install info
skell info ilspy-decompile --repo /path/to/repo
skell info ilspy-decompile --source registry   # registry lookup
skell info ilspy-decompile --json

doctor

Check a repository for manifest/lock/install problems.

skell doctor
skell doctor --repo /path/to/repo
skell doctor --all-repos ~/projects
skell doctor --json

cache

Manage the local registry cache (~/.skell/cache).

skell cache status                 # show cached registries
skell cache refresh <alias>        # re-fetch a registry
skell cache clear                  # delete the entire cache

selfupdate

Upgrade skell itself to the latest GitHub release.

skell selfupdate
skell selfupdate --check            # check only, don't download

Working with Multiple Repos

All commands that change files accept --repo (repeatable) and --all-repos:

# Install into two specific repos
skell install run-tests --registry dotnet-skills \
  --repo ./api \
  --repo ./worker

# Sync all repos found under ~/projects (git repos OR skell-managed folders)
skell sync --all-repos ~/projects

# Doctor check across an entire workspace
skell doctor --all-repos ~/projects

Global Skills

Use --global to install skills into ~/.skell/ (available everywhere):

skell install ilspy-decompile --registry dotnet-skillz \
  --registry-url https://github.com/davidfowl/dotnet-skillz \
  --global
skell list --global

Useful Registries

Alias URL Contents
dotnet-skillz https://github.com/davidfowl/dotnet-skillz .NET decompile, C# scripts, MCP tools
dotnet-skills https://github.com/dotnet/skills Testing, MAUI, MSBuild, migrations, diagnostics

Add them to your skell.toml:

[registries]
dotnet-skillz = "https://github.com/davidfowl/dotnet-skillz"
dotnet-skills  = "https://github.com/dotnet/skills"

Or let skell install --registry-url add them automatically on first use.


JSON Output

Every command supports --json for scripting and CI:

skell list --json
skell status --json
skell doctor --json
skell search maui --json

File Layout

<repo>/
└── .claude/
    ├── skell.toml       ← manifest (commit this)
    ├── skell.lock       ← lock file (commit this)
    └── skills/
        ├── ilspy-decompile/
        │   └── SKILL.md
        └── run-tests/
            └── SKILL.md

Further Reading

About

Govern, install, and sync AI skills at scale

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors