leeovery / claude-manager
Plugin manager for Claude Code skills and commands
Installs: 82
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 -D @your-org/claude-your-plugin # or pnpm add -D @your-org/claude-your-plugin # or yarn add -D @your-org/claude-your-plugin
The plugin's postinstall script copies assets to .claude/. That's it.
Removing Plugins
Due to bugs in npm 7+ (issue #3042) and pnpm (issue #3276), preuninstall hooks don't run reliably. Remove files manually first:
npx claude-manager remove @leeovery/claude-laravel && npm rm @leeovery/claude-laravel
pnpm Users
pnpm doesn't expose binaries from transitive dependencies, so install the manager directly alongside plugins:
pnpm add -D @leeovery/claude-manager @leeovery/claude-laravel pnpm approve-builds # approve when prompted pnpm install # triggers postinstall
How It Works
- Plugin packages have
@leeovery/claude-manageras a dependency - Plugin's
postinstallscript copies assets to.claude/ - A manifest (
.claude/.plugins-manifest.json) tracks what's installed - Claude Code discovers the assets automatically
Note: Plugins include
preuninstallscripts 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
├── node_modules/
│ └── @your-org/
│ └── claude-your-plugin/
└── package.json
CLI Commands
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 <package> |
Manually add a plugin |
npx claude-manager 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": "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.
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-manager 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- 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