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

v1.0.23 2026-01-06 18:00 UTC

README

npm Package for Managing Claude Code Skills & Commands

AboutInstallationHow It WorksCLI CommandsCreating PluginsAvailable PluginsTroubleshooting

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

  1. Plugin packages have @leeovery/claude-manager as a dependency
  2. Plugin's postinstall script copies assets to .claude/
  3. Plugin's preuninstall script cleans up when removed
  4. A manifest (.claude/.plugins-manifest.json) tracks what's installed
  5. 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

  1. Have @leeovery/claude-manager as a dependency
  2. Add postinstall and preuninstall scripts (see example below)
  3. 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-manager as a dependency
  • postinstall and preuninstall scripts using node -e
  • A skills/, commands/, agents/, or hooks/ 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