npm, but for skills.
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.
$ npm install -g @alissonsteffens/sklz
Requires Node.js ≥ 18 and git configured on your machine.
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
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
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
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
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"]
}
}
}
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.
.claude/skills/
.github/skills/
.agents/skills/
.cursor/skills/
.skills/
$ sklz install my-skill --vendor "GitHub Copilot"
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...