Package Plugin
Package a plugin into a distributable .zip archive suitable for importing into Claude Code or sharing with other teams.
When to Use
-
Exporting a plugin for Claude Code import (claude --plugin-dir )
-
Sharing a plugin with another developer or repository
-
Creating a release artifact for distribution
Execution Steps
- Validate the Plugin
Before packaging, verify the plugin has a valid manifest:
python3 plugins/plugin-manager/skills/package-plugin/scripts/package.py
--validate-only --plugin <path-to-plugin>
This checks:
-
.claude-plugin/plugin.json exists and is valid JSON
-
name is kebab-case
-
version is semver
-
author is an object (not a string)
-
At least one skills/*/SKILL.md exists
- Package the Plugin
python3 plugins/plugin-manager/skills/package-plugin/scripts/package.py
--plugin <path-to-plugin> --output <destination>
Default output: ~/Desktop/<plugin-name>-v<version>.zip
- Verify the Package (Optional)
python3 plugins/plugin-manager/skills/package-plugin/scripts/package.py
--verify <path-to-zip>
Extracts to /tmp/package-verify/ and confirms the structure is intact.
What the Packager Does
-
Preserves symlinks (--symlinks flag) for agents/ and commands/ directories
-
Excludes: .DS_Store , pycache , .history/ , node_modules/ , *.pyc , .git/
-
Names output as <plugin-name>-v<version>.zip
-
Validates plugin.json schema before packaging
Rules
-
Always validate before packaging. Catch manifest issues before they reach consumers.
-
Never manually zip a plugin. Always use this script to ensure correct flags.
-
Source Transparency Declaration: state which plugin was packaged and the output path.