Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
234 changes: 124 additions & 110 deletions cli-anything-plugin/PUBLISHING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Publishing the cli-anything Plugin

This guide explains how to make the cli-anything plugin installable and publish it.
This comprehensive guide explains how to make the cli-anything plugin installable and publish it through various distribution channels.

## Option 1: Local Installation (Development)

Expand All @@ -23,13 +23,13 @@ This guide explains how to make the cli-anything plugin installable and publish

### For Sharing Locally

Package as a tarball:
Package as a tarball for easy distribution:
```bash
cd /root/cli-anything
tar -czf cli-anything-plugin-v1.0.0.tar.gz cli-anything-plugin/
```

Others can install:
Others can install by extracting:
```bash
cd ~/.claude/plugins
tar -xzf cli-anything-plugin-v1.0.0.tar.gz
Expand All @@ -42,57 +42,57 @@ tar -xzf cli-anything-plugin-v1.0.0.tar.gz
```bash
cd /root/cli-anything/cli-anything-plugin

# Initialize git
# Initialize git repository
git init
git add .
git commit -m "Initial commit: cli-anything plugin v1.0.0"

# Create repo on GitHub (via web or gh CLI)
# Create repository on GitHub (via web interface or gh CLI)
gh repo create cli-anything-plugin --public --source=. --remote=origin

# Push
# Push to remote repository
git push -u origin main
```

### 2. Create Release

```bash
# Tag the release
# Tag the release with semantic version
git tag -a v1.0.0 -m "Release v1.0.0: Initial release"
git push origin v1.0.0

# Create GitHub release
# Create GitHub release with detailed notes
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:
Users can install directly from the repository:
```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):
Or via Claude Code (if plugin registry is configured):
```bash
/plugin install cli-anything@github:yourusername/cli-anything-plugin
```

## Option 3: Claude Plugin Directory (Official)

To publish to the official Claude Plugin Directory:
To publish to the official Claude Plugin Directory for maximum visibility:

### 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
Ensure your plugin meets all requirements:
- ✅ Complete `plugin.json` with all required metadata
- ✅ Comprehensive README.md with usage examples
- ✅ LICENSE file (MIT recommended for compatibility)
- ✅ All commands documented with examples
- ✅ No security vulnerabilities or hardcoded credentials
- ✅ Thoroughly tested and working

### 2. Submit to External Plugins

Expand All @@ -101,7 +101,7 @@ Ensure your plugin meets requirements:
gh repo fork anthropics/claude-plugins-official
```

2. **Add your plugin to external_plugins:**
2. **Add your plugin to external_plugins directory:**
```bash
cd claude-plugins-official
mkdir -p external_plugins/cli-anything
Expand All @@ -118,49 +118,52 @@ Ensure your plugin meets requirements:
--body "Adds cli-anything plugin for building CLI harnesses for GUI applications"
```

4. **Fill out submission form:**
4. **Complete submission form:**
- Visit: https://forms.anthropic.com/claude-plugin-submission
- Provide plugin details
- Link to your PR
- Provide detailed plugin information
- Link to your pull request

### 3. Review Process

Anthropic will review:
- Code quality and security
Anthropic will review for:
- Code quality and security standards
- Documentation completeness
- Functionality and usefulness
- Compliance with plugin standards
- Functionality and usefulness to community
- Compliance with plugin development standards

Approval typically takes 1-2 weeks.
Approval typically takes 1-2 weeks for review and feedback.

### 4. After Approval

Users can install via:
Users can install via the official directory:
```bash
/plugin install cli-anything@claude-plugin-directory
```

## Option 4: NPM Package (Alternative)

If you want to distribute via npm:
If you prefer npm-based distribution:

### 1. Create package.json

```json
{
"name": "@yourusername/cli-anything-plugin",
"version": "1.0.0",
"description": "Claude Code plugin for building CLI harnesses",
"description": "Claude Code plugin for building CLI harnesses for GUI applications",
"main": ".claude-plugin/plugin.json",
"scripts": {
"install": "bash scripts/setup-cli-anything.sh"
},
"keywords": ["claude-code", "plugin", "cli", "harness"],
"author": "Your Name",
"keywords": ["claude-code", "plugin", "cli", "harness", "automation"],
"author": "Your Name <your-email@example.com>",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/yourusername/cli-anything-plugin.git"
},
"bugs": {
"url": "https://github.com/yourusername/cli-anything-plugin/issues"
}
}
```
Expand All @@ -179,83 +182,88 @@ cd ~/.claude/plugins
npm install @yourusername/cli-anything-plugin
```

## Versioning
## Versioning Strategy

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
Follow semantic versioning (semver) for consistent releases:
- **Major** (1.0.0 → 2.0.0): Breaking changes that require user action
- **Minor** (1.0.0 → 1.1.0): New features that are backward compatible
- **Patch** (1.0.0 → 1.0.1): Bug fixes and minor improvements

Update version in:
Update version consistently 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
- `README.md` installation examples
- Git tags and releases

## Pre-Publication Checklist

Before publishing to any platform:

- [ ] All commands tested and working correctly
- [ ] README.md is comprehensive with clear examples
- [ ] LICENSE file included (MIT recommended)
- [ ] plugin.json has correct metadata and version
- [ ] No hardcoded paths, credentials, or sensitive data
- [ ] All shell scripts are executable (`chmod +x`)
- [ ] Documentation is up to date and accurate
- [ ] Version number is correct across all files
- [ ] Git repository is clean with no uncommitted changes
- [ ] Tests pass (if applicable)
- [ ] Security review completed

## Maintenance
## Maintenance and Updates

### Updating the Plugin

1. Make changes
1. Make and test changes thoroughly
2. Update version in `plugin.json`
3. Update CHANGELOG.md
4. Commit and tag:
3. Document changes in CHANGELOG.md
4. Commit and tag the release:
```bash
git commit -am "Release v1.1.0: Add new features"
git commit -am "Release v1.1.0: Add new features and improvements"
git tag v1.1.0
git push origin main --tags
```
5. Create GitHub release
6. Notify users of update
5. Create GitHub release with detailed notes
6. Notify users through appropriate channels

### Deprecation
### Deprecation Process

If deprecating:
If deprecating the plugin:
1. Mark as deprecated in `plugin.json`
2. Update README with deprecation notice
3. Provide migration path
4. Keep available for 6 months minimum
2. Update README with clear deprecation notice
3. Provide migration path to alternatives
4. Keep plugin available for minimum 6 months
5. Communicate timeline to users

## Support
## Support and Community

### Documentation
### Documentation Maintenance

- Keep README.md updated
- Document breaking changes
- Provide migration guides
- Keep README.md updated with latest features
- Document all breaking changes clearly
- Provide comprehensive migration guides
- Include troubleshooting section

### Issue Tracking
### Issue Management

Use GitHub Issues for:
- Bug reports
- Feature requests
- Questions
Use GitHub Issues effectively for:
- Bug reports with clear reproduction steps
- Feature requests from community
- General questions and support
- Community discussions

### Community
### Community Engagement

- Respond to issues promptly
- Accept pull requests
- Credit contributors
- Respond to issues and PRs promptly
- Accept and review community pull requests
- Credit all contributors appropriately
- Foster welcoming community environment

## Security
## Security Considerations

### Reporting Vulnerabilities
### Vulnerability Reporting

Create SECURITY.md:
Create SECURITY.md file:
```markdown
# Security Policy

Expand All @@ -264,44 +272,50 @@ Create SECURITY.md:
Email: security@yourdomain.com

Please do not open public issues for security vulnerabilities.
We will respond within 48 hours with next steps.
```

### Best Practices
### Security Best Practices

- No credentials in code
- Validate all inputs
- Use secure dependencies
- Regular security audits
- Never include credentials or API keys in code
- Validate and sanitize all user inputs
- Use secure, up-to-date dependencies
- Conduct regular security audits
- Follow principle of least privilege

## Legal
## Legal and Compliance

### License
### License Selection

MIT License allows:
- Commercial use
- Modification
- Distribution
- Private use
MIT License is recommended as it allows:
- Commercial use without restrictions
- Modification and distribution
- Private use in proprietary projects

Requires:
- License and copyright notice
Requirements:
- Include license and copyright notice
- Credit original authors

### Trademark
### Trademark Considerations

If using "Claude" or "Anthropic":
- Follow brand guidelines
When using "Claude" or "Anthropic" in marketing:
- Follow official brand guidelines
- Don't imply official endorsement
- Use "for Claude Code" not "Claude's plugin"
- Use "for Claude Code" not "Claude's official plugin"
- Respect trademark rights

## Helpful Resources

## Resources
- [Claude Code Plugin Documentation](https://code.claude.com/docs/en/plugins)
- [Official Plugin Directory](https://github.com/anthropics/claude-plugins-official)
- [Plugin Submission Form](https://forms.anthropic.com/claude-plugin-submission)
- [Community Discord/Forum](https://discord.gg/claude-code)

- 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
## Getting Help

## Questions?
For questions or support:

- GitHub Issues: https://github.com/yourusername/cli-anything-plugin/issues
- Email: your-email@example.com
- Discord: Your Discord handle
- **GitHub Issues**: https://github.com/yourusername/cli-anything-plugin/issues
- **Email**: your-email@example.com
- **Discord**: Your Discord handle
- **Community Forum**: Link to relevant forum