This guide walks you through installing skillpm, discovering your first skill, injecting it into your AI agent, and setting up a project for team collaboration.
| Tool | Minimum Version | Check |
|---|---|---|
| Go | 1.26+ | go version |
| Git | 2.x | git --version |
Both must be available in your PATH.
brew tap eddieran/tap && brew install skillpm
skillpm versiongit clone https://github.com/eddieran/skillpm.git
cd skillpm
make build
./bin/skillpm versionDownload the latest release from GitHub Releases, extract the archive, and move the skillpm binary to a directory in your PATH:
# Example for macOS arm64
tar xzf skillpm_darwin_arm64.tar.gz
sudo mv skillpm /usr/local/bin/
skillpm versionRun doctor to bootstrap your environment. It creates the default config if
needed, validates local state, and repairs environment drift:
skillpm doctorExpected output on a fresh global install:
[ok ] config config valid
[ok ] state state valid
[ok ] installed-dirs installed dirs reconciled
[ok ] injections injection refs valid
[ok ] adapter-state adapter state synced
[ok ] agent-skills agent skill files present
[ok ] lockfile no lockfile configured
all checks passed
If any checks show [fixed], doctor auto-repaired the issue. Run it again to confirm everything is [ok].
This walkthrough covers the full lifecycle: register a source, search, install, inject, and verify.
Sources are where skillpm finds skills. You can use Git repositories or ClawHub registries:
# Add a Git-based source
skillpm source add my-repo https://github.com/org/skills.git --kind git
# Or add the ClawHub registry
skillpm source add hub https://clawhub.ai/ --kind clawhub
# Verify
skillpm source listskillpm search "code-review"You can restrict results to a specific source:
skillpm search "code-review" --source hubInstall using the source/skill format:
skillpm install my-repo/code-reviewOr install directly from any Git URL without registering a source first:
skillpm install https://github.com/anthropics/skills/tree/main/skills/skill-creatorAll skills are automatically scanned for dangerous content before installation. If the scan detects critical or high severity issues, the install is blocked. Use --force to bypass medium-severity findings if you trust the content.
Push the installed skill into your agent's native skills/ directory:
skillpm inject --agent claudeOr inject into all detected agents at once:
skillpm inject --all# List installed skills
skillpm list
# Check that the skill files exist in the agent directory
ls ~/.claude/skills/You should see the skill folder in the agent's skill directory, ready for the agent to use.
skillpm has two scopes that work like npm install (local) vs npm install -g (global):
| Scope | State Directory | Use Case |
|---|---|---|
| Global | ~/.skillpm/ |
Personal skills available everywhere |
| Project | <project>/.skillpm/ |
Team-shared skills pinned per repository |
When you run skillpm inside a directory containing .skillpm/skills.toml (or any parent that has one), it automatically uses project scope. Outside a project, it defaults to global scope.
Force a specific scope with --scope:
# Install globally even when inside a project
skillpm install my-repo/helper --scope global
# Install at project scope explicitly
skillpm install my-repo/helper --scope project
# List only global skills
skillpm list --scope globalProject and global scopes are fully isolated. Installing at project scope never affects global state, and vice versa. Each scope has its own state files, lockfiles, and injection paths.
Set up skillpm for a team repository so everyone shares the same skills at the same versions.
cd ~/myproject
skillpm initThis creates .skillpm/skills.toml -- the project manifest.
skillpm install my-repo/code-review
skillpm install clawhub/steipete/code-reviewSince you are inside a project, these install at project scope automatically. The manifest and lockfile are updated.
git add .skillpm/skills.toml .skillpm/skills.lock
git commit -m "add skillpm project config"Add these to .gitignore:
.skillpm/installed/
.skillpm/state.toml
.skillpm/staging/
.skillpm/snapshots/
skillpm init prints these suggestions after creating the manifest.
When a teammate clones the repository:
git clone <repo> && cd <repo>
skillpm syncThis reads the manifest and lockfile, installs the exact pinned versions, and injects into their configured agents.
Anyone on the team can upgrade and commit the new lockfile:
skillpm upgrade
git add .skillpm/skills.toml .skillpm/skills.lock
git commit -m "upgrade skills"- Config key:
claude - Global injection path:
~/.claude/skills/{name}/ - Project injection path:
<project>/.claude/skills/{name}/
skillpm inject --agent claudeClaude Code reads skills from its skills/ directory automatically. No additional configuration needed.
- Config key:
codex - Global injection path:
~/.agents/skills/{name}/ - Project injection path:
<project>/.agents/skills/{name}/
skillpm inject --agent codex- Config key:
gemini - Global injection path:
~/.gemini/skills/{name}/ - Project injection path:
<project>/.gemini/skills/{name}/
skillpm inject --agent geminiGemini CLI and Antigravity share the same injection path (~/.gemini/skills/). Skills installed for one are visible to the other.
- Config key:
cursor - Global injection path:
~/.cursor/skills/{name}/ - Project injection path:
<project>/.cursor/skills/{name}/
skillpm inject --agent cursor- Config key:
copilot(CLI) /vscode(VS Code) - Global injection path:
~/.copilot/skills/{name}/ - Project injection path:
<project>/.github/skills/{name}/
skillpm inject --agent copilotGitHub Copilot CLI and VS Code Copilot share the same global injection path. Repository-local skills follow GitHub's documented .github/skills/ contract.
Push skills to every detected agent in a single command:
skillpm inject --allUse skillpm create to scaffold a new skill from a template:
# Default template
skillpm create my-skill
# Prompt-based skill
skillpm create my-prompt --template prompt
# Script-based skill
skillpm create my-script --template scriptThis creates a directory with a ready-to-use SKILL.md including frontmatter. Edit the generated file to add your skill's instructions.
Add a deps field to your SKILL.md frontmatter to declare dependencies on other skills:
---
name: my-skill
version: 1.0.0
deps: [clawhub/base-skill, clawhub/util-skill]
---Or use block list format:
---
name: my-skill
version: 1.0.0
deps:
- clawhub/base-skill
- clawhub/util-skill
---When someone installs your skill, dependencies are resolved and installed automatically.
Once your skill is ready, publish it:
export CLAWHUB_TOKEN="your-token"
skillpm publish ./my-skill --version 1.0.0- Creating Your Own Skills -- scaffold, declare dependencies, and publish skills
- Cookbook -- common recipes for team sharing, CI/CD, multi-agent setups
- CLI Reference -- all commands, flags, and exit codes
- Security Scanning -- scan rules and enforcement
- Supported Agents -- full list of agents and injection paths
- Troubleshooting -- common errors and fixes