leeovery / claude-manager
Plugin manager for Claude Code skills and commands
Installs: 80
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
Language:TypeScript
Type:composer-plugin
pkg:composer/leeovery/claude-manager
Requires
- php: ^8.2
- composer-plugin-api: ^2.0
- symfony/console: ^6.0|^7.0
- symfony/filesystem: ^6.0|^7.0
- symfony/process: ^6.0|^7.0
Requires (Dev)
- composer/composer: ^2.0
- laravel/pint: ^1.0
README
npm Package for Managing Claude Code Skills & Commands
About • Installation • How It Works • CLI Commands • Creating Plugins • Available Plugins • Troubleshooting
Versions
| 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).
About
Claude Manager is an npm package that automatically manages Claude Code skills, commands, agents, and hooks across your projects.
What it does:
- Automatically installs skills, commands, agents, and hooks 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.
Installation
The manager is installed automatically as a dependency of plugin packages. When you install a Claude plugin:
npm install @your-org/claude-your-plugin # or pnpm add @your-org/claude-your-plugin # or yarn add @your-org/claude-your-plugin
The plugin's postinstall script copies assets to .claude/. That's it.
Note: pnpm blocks postinstall scripts by default. After installing, run pnpm approve-builds to approve the packages, then pnpm install again.
How It Works
- Plugin packages have
@leeovery/claude-manageras a dependency - Plugin's
postinstallscript copies assets to.claude/ - Plugin's
preuninstallscript cleans up when removed - A manifest (
.claude/.plugins-manifest.json) tracks what's installed - Claude Code discovers the assets automatically
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
├── node_modules/
│ └── @your-org/
│ └── claude-your-plugin/
└── package.json
CLI Commands
The manager provides a CLI tool for managing plugins:
| Command | Description |
|---|---|
npx claude-plugins list |
Show all installed plugins and their assets |
npx claude-plugins install |
Sync all plugins from manifest (runs automatically) |
npx claude-plugins add <package> |
Manually add a plugin |
npx claude-plugins remove <package> |
Remove a plugin and its assets |
Creating Plugins
Want to create your own skill or command packages?
Plugin Requirements
- Have
@leeovery/claude-manageras a dependency - Add
postinstallandpreuninstallscripts (see example below) - Include asset directories (
skills/,commands/,agents/,hooks/)
Example package.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": "node -e \"require('@leeovery/claude-manager').add()\"",
"preuninstall": "node -e \"require('@leeovery/claude-manager').remove()\""
}
}
The postinstall script copies assets when the plugin is installed. The preuninstall script cleans up when the plugin is removed. Using node -e ensures compatibility with all package managers (npm, pnpm, yarn).
Plugin Structure
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
└── package.json
The manager auto-discovers skills/, commands/, agents/, and hooks/ directories—no additional configuration needed.
Available Plugins
| 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 |
Manifest
The manager tracks installed plugins in .claude/.plugins-manifest.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
Troubleshooting
Assets not copied
Run the install command manually:
npx claude-plugins install
Skills not showing in Claude Code
Check that .claude/ directories exist and contain files:
ls -la .claude/skills/ ls -la .claude/commands/ ls -la .claude/agents/ ls -la .claude/hooks/
Plugin not detected
Verify the plugin's package.json has:
@leeovery/claude-manageras a dependencypostinstallandpreuninstallscripts usingnode -e- A
skills/,commands/,agents/, orhooks/directory with content
Requirements
- Node.js >= 18.0.0
- npm, pnpm, yarn, or bun
Contributing
Contributions are welcome! Whether it's:
- Bug fixes
- Documentation improvements
- New features
- Discussion about approaches
Please open an issue first to discuss significant changes.
License
MIT License. See LICENSE for details.
Built by Lee Overy