Getting Started
1. Started with pnpm-plugin-skills
If your project already uses pnpm, the easiest way to adopt skills-package-manager is to start from pnpm install and let skill installation happen automatically inside the existing dependency workflow.
Install the pnpm plugin
Add the plugin to your workspace configuration:
This tells pnpm to load pnpm-plugin-skills during installation.
Declare the skills your project needs
Create a skills.json file at the workspace root. You can create it manually or use the CLI to initialize:
Example skills.json:
This manifest defines:
installDir: where managed skills are materializedlinkTargets: which agent-specific directories receive linksselfSkill: whether to auto-install the bundledskills-package-manager-cliskill for help withskills.json,skills-lock.yaml, andnpx skills-package-managercommands. This helper skill is not written toskills-lock.yaml. Defaults tofalseskills: which skills should be installed
Run pnpm as usual
Now run the normal install command:
During this process, the plugin will:
- Read
skills.json - Resolve each skill source
- Generate or update
skills-lock.yaml - Materialize skills into
installDir - Link them into every directory listed in
linkTargets
That means your regular pnpm bootstrap flow now also restores agent skill context.
Add .agents/skills etc to .gitignore
Since the skill directories are generated artifacts, you should add them to .gitignore:
2. Add more skills when needed
When you want to introduce another skill, you can either edit skills.json directly or use the CLI to update the manifest:
3. Refresh remote skill versions
When remote git-based (URL) or npm: skills should move forward to newer resolved versions, run:
Then run:
This keeps the resolved lockfile state and linked directories aligned with the latest declared versions.
1. Quick Initialization
If you're not using pnpm, you can manage skills using the standalone CLI. Initialize your project to create a skills.json manifest.
Bootstrap your project
Add your first skill
Select from a variety of sources (Git, NPM, Local).
Materialize & Link
This command will:
- Resolve dependencies and generate
skills-lock.yaml. - Download/Copy files to
.agents/skills. - Symlink them to your agent folders (e.g.,
.claude/skills).
Remember to add .agents/skills and your agent link targets to your .gitignore to keep your repository lean!
2. Advanced Workflow
Update to latest versions
To move your git-based skills to their latest commits:
Link local developments
Use the link: protocol in skills.json for rapid local skill testing without publishing.
Use the local: protocol when a skill already lives in a user-owned directory such as .agents/skills/my-skill and should not be copied, replaced, or pruned by SPM.
Lifecycle Integration
For npm, yarn, or bun, you can seamlessly integrate SPM into your project's lifecycle using the prepare script. This ensures your agent skills are automatically synchronized every time you run a fresh install.
Install SPM as a dev dependency
Add skills-package-manager to your project's devDependencies.
Configure the prepare script
Update your package.json to include the prepare lifecycle hook:
Initialize and Add Skills
If you haven't already, initialize your manifest and start adding skills:
The prepare script runs automatically after npm install (and equivalent commands in Yarn/Bun), guaranteeing that your .agents/skills directory and agent symlinks are always up to date.