leeovery / claude-manager
Plugin manager for Claude Code skills and commands
Installs: 37
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
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
This package is auto-updated.
Last update: 2025-12-04 10:45:43 UTC
README
Composer Plugin for Managing Claude Code Skills & Commands
About • Installation • How It Works • CLI Commands • Creating Plugins • Available Plugins • Troubleshooting
About
Claude Manager is a Composer plugin that automatically manages Claude Code skills and commands across your PHP projects.
What it does:
- Automatically symlinks skills and commands from plugin packages into your project's
.claude/directory - Manages your
.gitignoreso symlinked plugins are excluded while custom skills remain committed - Provides CLI tools for listing and managing installed plugins
- Works seamlessly with Composer's install/update lifecycle
Why use it?
Instead of manually copying skill files between projects, you can install them as Composer packages and let the manager handle the rest. Update a skill package once, run composer update, and all your projects get the improvements.
Installation
The manager is typically installed automatically as a dependency of plugin packages:
composer require --dev leeovery/claude-laravel
If you need to install it directly:
composer require --dev leeovery/claude-manager
That's it. Composer hooks handle everything else.
How It Works
- Plugin packages declare
type: "claude-plugin"in their composer.json - When Composer installs or updates packages, the manager hooks are triggered
- The manager scans for all installed
claude-pluginpackages - Skills directories are symlinked to
.claude/skills/ - Command files are symlinked to
.claude/commands/ - Your
.gitignoreis automatically updated to exclude symlinked plugins - Claude Code discovers them automatically
After installation, your project structure looks like:
your-project/
├── .claude/
│ ├── skills/
│ │ └── laravel-actions → ../../vendor/leeovery/claude-laravel/skills/laravel-actions
│ └── commands/
│ └── artisan-make.md → ../../vendor/leeovery/claude-laravel/commands/artisan-make.md
├── vendor/
│ └── leeovery/
│ ├── claude-manager/
│ └── claude-laravel/
└── composer.json
CLI Commands
The manager provides a CLI tool for managing plugins:
| Command | Description |
|---|---|
vendor/bin/claude-plugins list |
Show all installed skills and commands with their source paths |
vendor/bin/claude-plugins install |
Manually trigger plugin installation (usually not needed) |
Creating Plugins
Want to create your own skill or command packages? The easiest way is to use the included scaffolding script.
Quick Start with create-package
Clone this repository and run the create-package script:
git clone https://github.com/leeovery/claude-manager.git
cd claude-manager
./create-package claude-my-skills
This creates a new plugin package in a sibling directory with:
- Correct directory structure (
skills/,commands/) - Pre-configured
composer.jsonwithtype: "claude-plugin" - Basic
.gitignoreandREADME.md - Anthropic's skill-creator skill installed locally to help you write new skills
- Git repository initialized
Then just:
cd ../claude-my-skills
composer install
You're ready to start creating skills with Claude Code's help via the bundled skill-creator.
Manual Setup
If you prefer to set things up manually:
Plugin Requirements
- Set
type: "claude-plugin"in composer.json - Require
leeovery/claude-manageras a dependency - Include a
skills/directory with skill subdirectories, and/or - Include a
commands/directory with.mdcommand files
Example composer.json
{
"name": "your-vendor/claude-your-skills",
"description": "Your custom skills for Claude Code",
"type": "claude-plugin",
"license": "MIT",
"require": {
"php": "^8.2",
"leeovery/claude-manager": "^1.0"
}
}
Plugin Structure
your-plugin/
├── skills/
│ ├── skill-one/
│ │ └── skill.md
│ └── skill-two/
│ └── skill.md
├── commands/
│ ├── command-one.md
│ └── command-two.md
└── composer.json
The manager auto-discovers skills/ and commands/ directories—no additional configuration needed.
Available Plugins
| Package | Description |
|---|---|
| claude-laravel | Opinionated Laravel development patterns and practices |
| claude-technical-workflows | Technical workflow skills for Claude Code |
More plugins coming soon!
Automatic Gitignore Management
The manager automatically updates your project's .gitignore to exclude symlinked plugins while preserving any custom skills and commands you create.
What gets added:
# Claude plugins (managed by leeovery/claude-laravel) /.claude/skills/laravel-actions/ /.claude/commands/artisan-make.md
This ensures:
- Symlinked plugins from vendor packages are ignored
- Custom/local skills and commands you create can still be committed
- The
.claude/directory itself remains in version control
Troubleshooting
Symlinks not created
Run the install command manually:
vendor/bin/claude-plugins install
Skills not showing in Claude Code
Check that .claude/skills/ and .claude/commands/ exist and contain symlinks:
ls -la .claude/skills/ ls -la .claude/commands/
Plugin not detected
Verify the plugin's composer.json has:
"type": "claude-plugin"leeovery/claude-manageras a dependency- A
skills/orcommands/directory with content
Requirements
- PHP ^8.2
- Composer ^2.0
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