Plugin marketplace for the local-skills CLI tool
npx claudepluginhub vgeshel/local-skillsTeaches Claude Code how to install and manage skills from plugin marketplaces using the local-skills CLI
Claude skills (also used by other coding tools) are distributed via plugins and normally installed in ~/.claude. This leads to each contributor to a project, or even each machine, having a different set of skills.
This little utility helps you install skills from Claude Code plugin marketplaces into your project's .claude/skills/ directory, and mirrors them to .agents/skills/ for Codex-compatible layouts. Each project gets a curated, version-controlled set of skills.
claude plugin marketplace add vgeshel/local-skills
claude plugin install local-skills@local-skills-marketplace
Then, ask Claude to install a skill locally, e.g.:
install skill locally systematic-debugging@obra/superpowers
npm i -g local-skills
or
npm i --save-dev local-skills
# GitHub shorthand
local-skills add superpowers@anthropics/claude-code/tdd
# Pinned to a tag
local-skills add superpowers@anthropics/claude-code/tdd:v2.0
# All skills from a plugin
local-skills add superpowers@anthropics/claude-code/*
# Full git URL
local-skills add my-plugin@https://gitlab.com/team/repo.git/my-skill
# Pull latest from upstream
local-skills update tdd
# Overwrite locally modified skill files
local-skills update --force tdd
If you've hand-edited installed skill files, update will refuse to overwrite them unless you pass --force. Skills pinned to a specific commit SHA are skipped automatically.
local-skills remove tdd
<plugin>@<marketplace>/<skill>[:<version>]
| Part | Description |
|---|---|
plugin | Plugin name in the marketplace |
marketplace | GitHub owner/repo or full git URL |
skill | Skill name (or * for all) |
version | Optional git ref (tag, branch) |
Both files are intended to be committed to git.
local-skills.json)Declares what skills are installed and from where:
{
"skills": {
"tdd": {
"source": "superpowers@anthropics/claude-code",
"ref": "main",
"sha": "abc123def456..."
}
}
}
local-skills-state.json)Records what the skill files looked like at install time, so update can detect local modifications:
{
"skills": {
"tdd": {
"contentHash": "45019b204ee8..."
}
}
}
.claude-plugin/marketplace.json to find the plugin.claude/skills/<skill-name>/ and .agents/skills/<skill-name>/ref in the manifest is a 40-character commit SHA, the skill is considered pinned and the update is skipped--force is passedpnpm run typecheck # Type checking
pnpm run lint # ESLint
pnpm run test # Watch mode
pnpm run test:run # Single run
pnpm run test:coverage # Coverage (100% required)
MIT