Plugin manager for Claude Code skills and commands
npm install @leeovery/claude-manager
npm Package for Managing Claude Code Skills & Commands
About •
Installation •
How It Works •
CLI Commands •
Creating Plugins •
Available Plugins •
Troubleshooting
---
| Version | Package Manager | Status | Branch |
|---------|-----------------|------------|------------------------------------------------------------|
| 2.x | npm | Active | main |
| 1.x | Composer | Deprecated | v1 |
> Note: This package is installed automatically as a dependency of plugins.
> To migrate from v1, update your plugins to their v2 versions (npm-based).
---
Claude Manager is an npm package that automatically manages Claude Code skills, commands, agents, hooks, and scripts across your projects.
What it does:
- Automatically installs skills, commands, agents, hooks, and scripts from plugin packages into your project's .claude/ directory
- Copies assets so they're committed to your repository and available immediately
- Works with any project that has a package.json (Node.js, Laravel, Nuxt, etc.)
- Provides CLI tools for listing and managing installed plugins
Why use it?
Instead of manually copying skill files between projects, you can install them as npm packages and let the manager handle the rest. Update a skill package once, run npm update, and all your projects get the improvements.
The manager is installed automatically as a dependency of plugin packages. When you install a Claude plugin:
``bash`
npm install -D @your-org/claude-your-pluginor
pnpm add -D @your-org/claude-your-pluginor
yarn add -D @your-org/claude-your-plugin
The plugin's postinstall script copies assets to .claude/. That's it.
Due to bugs in npm 7+ (issue #3042) and pnpm (issue #3276), preuninstall hooks don't run reliably. Remove files manually first:
`bash`
npx claude-manager remove @leeovery/claude-laravel && npm rm @leeovery/claude-laravel
pnpm doesn't expose binaries from transitive dependencies, so install the manager directly alongside plugins:
`bash`
pnpm add -D @leeovery/claude-manager @leeovery/claude-laravel
pnpm approve-builds # approve when prompted
pnpm install # triggers postinstall
1. Plugin packages have @leeovery/claude-manager as a dependencypostinstall
2. Plugin's script copies assets to .claude/.claude/.plugins-manifest.json
3. A manifest () tracks what's installed
4. Claude Code discovers the assets automatically
> Note: Plugins include preuninstall scripts but npm 7+ doesn't run them reliably (issue #3042). See Removing Plugins for the manual removal command.
After installation, your project structure looks like:
``
your-project/
├── .claude/
│ ├── .plugins-manifest.json
│ ├── skills/
│ │ └── laravel-actions/
│ │ └── skill.md
│ ├── commands/
│ │ └── artisan-make.md
│ ├── agents/
│ │ └── code-reviewer.md
│ ├── hooks/
│ │ └── pre-commit.sh
│ └── scripts/
│ └── build-check.sh
├── node_modules/
│ └── @your-org/
│ └── claude-your-plugin/
└── package.json
The manager provides a CLI tool for managing plugins:
| Command | Description |
|---------|-------------|
| npx claude-manager list | Show all installed plugins and their assets |npx claude-manager install
| | Sync all plugins from manifest (runs automatically) |npx claude-manager add
| | Manually add a plugin |npx claude-manager remove
| | Remove a plugin and its assets |
Want to create your own skill or command packages?
1. Have @leeovery/claude-manager as a dependencypostinstall
2. Add and preuninstall scripts (see example below)skills/
3. Include asset directories (, commands/, agents/, hooks/, scripts/)
`json`
{
"name": "@your-org/claude-your-skills",
"version": "1.0.0",
"description": "Your custom skills for Claude Code",
"license": "MIT",
"dependencies": {
"@leeovery/claude-manager": "^2.0.0"
},
"scripts": {
"postinstall": "claude-manager add",
"preuninstall": "claude-manager remove"
}
}
The postinstall script copies assets when the plugin is installed. The preuninstall script cleans up when the plugin is removed.
``
your-plugin/
├── skills/
│ ├── skill-one/
│ │ └── skill.md
│ └── skill-two/
│ └── skill.md
├── commands/
│ ├── command-one.md
│ └── command-two.md
├── agents/
│ └── agent-one.md
├── hooks/
│ └── pre-commit.sh
├── scripts/
│ └── build-check.sh
└── package.json
The manager auto-discovers skills/, commands/, agents/, hooks/, and scripts/ directories—no additional configuration needed. All asset directories support nested subdirectories.
| Package | Description |
|---------|-------------|
| @leeovery/claude-technical-workflows | Structured discussion & planning skills—research, discuss, specify, plan, implement, review |
| @leeovery/claude-laravel | Opinionated Laravel development patterns and practices |
| @leeovery/claude-nuxt | Opinionated Nuxt 4 + Vue 3 development patterns |
The manager tracks installed plugins in .claude/.plugins-manifest.json:
`json`
{
"plugins": {
"@your-org/claude-laravel": {
"version": "1.0.0",
"files": [
"skills/laravel-actions",
"commands/artisan-make.md"
]
}
}
}
This file should be committed to your repository. It ensures:
- Old files are cleaned up when plugins are updated or removed
- You can see what's installed at a glance
Run the install command manually:
`bash`
npx claude-manager install
Check that .claude/ directories exist and contain files:
`bash`
ls -la .claude/skills/
ls -la .claude/commands/
ls -la .claude/agents/
ls -la .claude/hooks/
ls -la .claude/scripts/
Verify the plugin's package.json has:
- @leeovery/claude-manager as a dependencypostinstall
- and preuninstall scriptsskills/
- A , commands/, agents/, hooks/, or scripts/` directory with content
- Node.js >= 18.0.0
- npm, pnpm, yarn, or bun
Contributions are welcome! Whether it's:
- Bug fixes
- Documentation improvements
- New features
- Discussion about approaches
Please open an issue first to discuss significant changes.
MIT License. See LICENSE for details.
---
Built by Lee Overy