308 lines
6.4 KiB
Markdown
308 lines
6.4 KiB
Markdown
# Publishing the cli-anything Plugin
|
|
|
|
This guide explains how to make the cli-anything plugin installable and publish it.
|
|
|
|
## Option 1: Local Installation (Development)
|
|
|
|
### For Testing
|
|
|
|
1. **Copy to Claude Code plugins directory:**
|
|
```bash
|
|
cp -r /root/cli-anything/cli-anything-plugin ~/.claude/plugins/cli-anything
|
|
```
|
|
|
|
2. **Reload plugins in Claude Code:**
|
|
```bash
|
|
/reload-plugins
|
|
```
|
|
|
|
3. **Verify installation:**
|
|
```bash
|
|
/help cli-anything
|
|
```
|
|
|
|
### For Sharing Locally
|
|
|
|
Package as a tarball:
|
|
```bash
|
|
cd /root/cli-anything
|
|
tar -czf cli-anything-plugin-v1.0.0.tar.gz cli-anything-plugin/
|
|
```
|
|
|
|
Others can install:
|
|
```bash
|
|
cd ~/.claude/plugins
|
|
tar -xzf cli-anything-plugin-v1.0.0.tar.gz
|
|
```
|
|
|
|
## Option 2: GitHub Repository (Recommended)
|
|
|
|
### 1. Create GitHub Repository
|
|
|
|
```bash
|
|
cd /root/cli-anything/cli-anything-plugin
|
|
|
|
# Initialize git
|
|
git init
|
|
git add .
|
|
git commit -m "Initial commit: cli-anything plugin v1.0.0"
|
|
|
|
# Create repo on GitHub (via web or gh CLI)
|
|
gh repo create cli-anything-plugin --public --source=. --remote=origin
|
|
|
|
# Push
|
|
git push -u origin main
|
|
```
|
|
|
|
### 2. Create Release
|
|
|
|
```bash
|
|
# Tag the release
|
|
git tag -a v1.0.0 -m "Release v1.0.0: Initial release"
|
|
git push origin v1.0.0
|
|
|
|
# Create GitHub release
|
|
gh release create v1.0.0 \
|
|
--title "cli-anything Plugin v1.0.0" \
|
|
--notes "Initial release with 4 commands and complete 6-phase methodology"
|
|
```
|
|
|
|
### 3. Install from GitHub
|
|
|
|
Users can install directly:
|
|
```bash
|
|
cd ~/.claude/plugins
|
|
git clone https://github.com/yourusername/cli-anything-plugin.git
|
|
```
|
|
|
|
Or via Claude Code (if you set up a plugin registry):
|
|
```bash
|
|
/plugin install cli-anything@github:yourusername/cli-anything-plugin
|
|
```
|
|
|
|
## Option 3: Claude Plugin Directory (Official)
|
|
|
|
To publish to the official Claude Plugin Directory:
|
|
|
|
### 1. Prepare for Submission
|
|
|
|
Ensure your plugin meets requirements:
|
|
- ✅ Complete `plugin.json` with all metadata
|
|
- ✅ Comprehensive README.md
|
|
- ✅ LICENSE file (MIT recommended)
|
|
- ✅ All commands documented
|
|
- ✅ No security vulnerabilities
|
|
- ✅ Tested and working
|
|
|
|
### 2. Submit to External Plugins
|
|
|
|
1. **Fork the official repository:**
|
|
```bash
|
|
gh repo fork anthropics/claude-plugins-official
|
|
```
|
|
|
|
2. **Add your plugin to external_plugins:**
|
|
```bash
|
|
cd claude-plugins-official
|
|
mkdir -p external_plugins/cli-anything
|
|
cp -r /root/cli-anything/cli-anything-plugin/* external_plugins/cli-anything/
|
|
```
|
|
|
|
3. **Create pull request:**
|
|
```bash
|
|
git checkout -b add-cli-anything-plugin
|
|
git add external_plugins/cli-anything
|
|
git commit -m "Add cli-anything plugin to external plugins"
|
|
git push origin add-cli-anything-plugin
|
|
gh pr create --title "Add cli-anything plugin" \
|
|
--body "Adds cli-anything plugin for building CLI harnesses for GUI applications"
|
|
```
|
|
|
|
4. **Fill out submission form:**
|
|
- Visit: https://forms.anthropic.com/claude-plugin-submission
|
|
- Provide plugin details
|
|
- Link to your PR
|
|
|
|
### 3. Review Process
|
|
|
|
Anthropic will review:
|
|
- Code quality and security
|
|
- Documentation completeness
|
|
- Functionality and usefulness
|
|
- Compliance with plugin standards
|
|
|
|
Approval typically takes 1-2 weeks.
|
|
|
|
### 4. After Approval
|
|
|
|
Users can install via:
|
|
```bash
|
|
/plugin install cli-anything@claude-plugin-directory
|
|
```
|
|
|
|
## Option 4: NPM Package (Alternative)
|
|
|
|
If you want to distribute via npm:
|
|
|
|
### 1. Create package.json
|
|
|
|
```json
|
|
{
|
|
"name": "@yourusername/cli-anything-plugin",
|
|
"version": "1.0.0",
|
|
"description": "Claude Code plugin for building CLI harnesses",
|
|
"main": ".claude-plugin/plugin.json",
|
|
"scripts": {
|
|
"install": "bash scripts/setup-cli-anything.sh"
|
|
},
|
|
"keywords": ["claude-code", "plugin", "cli", "harness"],
|
|
"author": "Your Name",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/yourusername/cli-anything-plugin.git"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. Publish to npm
|
|
|
|
```bash
|
|
npm login
|
|
npm publish --access public
|
|
```
|
|
|
|
### 3. Install via npm
|
|
|
|
```bash
|
|
cd ~/.claude/plugins
|
|
npm install @yourusername/cli-anything-plugin
|
|
```
|
|
|
|
## Versioning
|
|
|
|
Follow semantic versioning (semver):
|
|
- **Major** (1.0.0 → 2.0.0): Breaking changes
|
|
- **Minor** (1.0.0 → 1.1.0): New features, backward compatible
|
|
- **Patch** (1.0.0 → 1.0.1): Bug fixes
|
|
|
|
Update version in:
|
|
- `.claude-plugin/plugin.json`
|
|
- `README.md`
|
|
- Git tags
|
|
|
|
## Distribution Checklist
|
|
|
|
Before publishing:
|
|
|
|
- [ ] All commands tested and working
|
|
- [ ] README.md is comprehensive
|
|
- [ ] LICENSE file included
|
|
- [ ] plugin.json has correct metadata
|
|
- [ ] No hardcoded paths or credentials
|
|
- [ ] Scripts are executable (`chmod +x`)
|
|
- [ ] Documentation is up to date
|
|
- [ ] Version number is correct
|
|
- [ ] Git repository is clean
|
|
- [ ] Tests pass (if applicable)
|
|
|
|
## Maintenance
|
|
|
|
### Updating the Plugin
|
|
|
|
1. Make changes
|
|
2. Update version in `plugin.json`
|
|
3. Update CHANGELOG.md
|
|
4. Commit and tag:
|
|
```bash
|
|
git commit -am "Release v1.1.0: Add new features"
|
|
git tag v1.1.0
|
|
git push origin main --tags
|
|
```
|
|
5. Create GitHub release
|
|
6. Notify users of update
|
|
|
|
### Deprecation
|
|
|
|
If deprecating:
|
|
1. Mark as deprecated in `plugin.json`
|
|
2. Update README with deprecation notice
|
|
3. Provide migration path
|
|
4. Keep available for 6 months minimum
|
|
|
|
## Support
|
|
|
|
### Documentation
|
|
|
|
- Keep README.md updated
|
|
- Document breaking changes
|
|
- Provide migration guides
|
|
|
|
### Issue Tracking
|
|
|
|
Use GitHub Issues for:
|
|
- Bug reports
|
|
- Feature requests
|
|
- Questions
|
|
|
|
### Community
|
|
|
|
- Respond to issues promptly
|
|
- Accept pull requests
|
|
- Credit contributors
|
|
|
|
## Security
|
|
|
|
### Reporting Vulnerabilities
|
|
|
|
Create SECURITY.md:
|
|
```markdown
|
|
# Security Policy
|
|
|
|
## Reporting a Vulnerability
|
|
|
|
Email: security@yourdomain.com
|
|
|
|
Please do not open public issues for security vulnerabilities.
|
|
```
|
|
|
|
### Best Practices
|
|
|
|
- No credentials in code
|
|
- Validate all inputs
|
|
- Use secure dependencies
|
|
- Regular security audits
|
|
|
|
## Legal
|
|
|
|
### License
|
|
|
|
MIT License allows:
|
|
- Commercial use
|
|
- Modification
|
|
- Distribution
|
|
- Private use
|
|
|
|
Requires:
|
|
- License and copyright notice
|
|
|
|
### Trademark
|
|
|
|
If using "Claude" or "Anthropic":
|
|
- Follow brand guidelines
|
|
- Don't imply official endorsement
|
|
- Use "for Claude Code" not "Claude's plugin"
|
|
|
|
## Resources
|
|
|
|
- Claude Code Plugin Docs: https://code.claude.com/docs/en/plugins
|
|
- Plugin Directory: https://github.com/anthropics/claude-plugins-official
|
|
- Submission Form: https://forms.anthropic.com/claude-plugin-submission
|
|
- Community: Claude Code Discord/Forum
|
|
|
|
## Questions?
|
|
|
|
- GitHub Issues: https://github.com/yourusername/cli-anything-plugin/issues
|
|
- Email: your-email@example.com
|
|
- Discord: Your Discord handle
|