sklz docs

npm, but for skills.

Stop copy-pasting skills
across your repos.

sklz is a CLI that manages agent skills like a package manager. Version only your sklz.json — run sklz install to sync. Just like npm install.

Early development — API may change

> Install

$ npm install -g @alissonsteffens/sklz

Requires Node.js ≥ 18 and git configured on your machine.

> Quick Start

1

Register a skills repository

Any git repo that contains skill directories. Your org's private repo, a public one — anything you can clone.

$ sklz repo add https://github.com/my-org/my-skills.git
2

Browse & install skills

Search by name, description, or tag. Install one or many at once.

$ sklz list
$ sklz search button
$ sklz install button-spec
$ sklz install --tag design-system
3

Commit only sklz.json

On first install, sklz asks which tool you're using. After that, it auto-detects the vendor from the existing skills directory. Add the skills directory to your .gitignore. Teammates run sklz install to sync — just like npm install.

# .gitignore  (example: Claude Code)
.claude/skills/

# new teammate onboarding
$ sklz install

> Commands

Repositories

sklz repo add <url> Register a skills source
sklz repo add <url> --as <alias> Register with a custom alias
sklz repo list Show registered repos
sklz repo sync Pull latest from all repos
sklz repo remove <name> Remove a registered repo

Skills

sklz list Browse all available skills
sklz list --tag <tag> Filter by tag
sklz search <query> Search by name, description, or tag
sklz install <name...> Install skills (prompts vendor each time)
sklz install <name...> --vendor <v> Install to a specific vendor
sklz install --tag <tag> Install all skills with a tag
sklz install Install all skills from sklz.json — auto-registers any missing repos
sklz update [name...] Update installed skills
sklz uninstall <name> Remove a skill from project
sklz status Show what's installed

Disambiguation

If two repos have a skill with the same name, prefix with the repo alias:

$ sklz install design-skills/button-spec

> sklz.json

This is the only file you commit. It tracks what's installed, from where, and at which commit. The vendor (where skills are installed) is chosen at install time and is not stored here.

{
  "sklz": {
    "button-spec": {
      "repo": "https://github.com/my-org/design-skills.git",
      "repoName": "design-skills",
      "version": "1.2.0",
      "commit": "a1b2c3d",
      "installedAt": "2026-03-10T14:30:00.000Z",
      "tags": ["design-system", "ui"]
    }
  }
}

> Vendors

sklz resolves the vendor in order: --vendor flag → auto-detected from existing vendor dirs → interactive prompt → default (Claude Code). After the first install, the vendor directory exists and is detected automatically — the prompt only appears on a fresh project.

Vendor Skills directory
Claude Code (default) .claude/skills/
GitHub Copilot .github/skills/
Google Antigravity .agents/skills/
Cursor .cursor/skills/
Custom .skills/
$ sklz install my-skill --vendor "GitHub Copilot"

> Creating a Skills Repo

A skills repo is a regular git repository. Skills can live at the root or inside a skills/ subdirectory — sklz detects either layout automatically.

Root layout

my-skills-repo/
├── button-spec/
│   ├── SKILL.md
│   └── templates/
│       └── button.css
├── react-patterns/
│   └── SKILL.md
└── ci-pipeline/
    └── SKILL.md

skills/ layout

my-skills-repo/
└── skills/
    ├── button-spec/
    │   ├── SKILL.md
    │   └── templates/
    │       └── button.css
    ├── react-patterns/
    │   └── SKILL.md
    └── ci-pipeline/
        └── SKILL.md

Each skill has a SKILL.md with frontmatter. name and description are required.

---
name: button-spec
description: Button component specification for the design system.
metadata:
  version: "1.2.0"
  tags: design-system, ui, components
---

Skill content goes here...
Copied