This guide explains how to list your plugin in the SperaxOS Plugin Marketplace so it can be discovered and used by the community.
BUILD WILL FAIL if you don't create both files:
src/your-plugin.json- Plugin definitionlocales/your-plugin.en-US.json- REQUIRED locale fileThen run
bun run formatto auto-generate other locales.
- Overview
- Prerequisites
- Submission Methods
- Plugin Entry Format
- Locale Files
- Submission Steps
- Review Process
- Important Notes
- After Submission
The SperaxOS Plugin Marketplace is a curated registry of plugins available to all SperaxOS users. Submitting your plugin makes it discoverable in the plugin store and allows users to install it with one click.
Repository: github.com/nirholas/plugin.delivery
Before submitting, ensure:
- ✅ Your plugin is functional and tested
- ✅ Your plugin server is deployed and accessible (e.g., on Vercel)
- ✅ Your
manifest.jsonis publicly accessible via HTTPS - ✅ Your plugin has a unique identifier (not already in use)
- ✅ You have tested with SperaxOS by adding as a custom plugin
Submit a PR to add your plugin definition to the repository.
Open an issue with the "Plugin Submission" template and provide your plugin details.
Your plugin entry should be a JSON file in the src/ directory:
{
"author": "YourName",
"createdAt": "2025-01-01",
"homepage": "https://github.com/yourname/your-plugin",
"identifier": "your-plugin-identifier",
"manifest": "https://your-plugin.vercel.app/manifest.json",
"meta": {
"avatar": "🔌",
"description": "A brief description of what your plugin does",
"tags": ["utility", "search"],
"title": "Your Plugin Name",
"category": "tools"
},
"schemaVersion": 1
}| Field | Type | Required | Description |
|---|---|---|---|
author |
string | Yes | Your name or organization |
createdAt |
string | Yes | Creation date (YYYY-MM-DD format) |
homepage |
string | Yes | Plugin homepage or repository URL |
identifier |
string | Yes | Unique plugin ID (lowercase, hyphens) |
manifest |
string | Yes | URL to your manifest.json |
meta.avatar |
string | Yes | Emoji or image URL for the plugin icon |
meta.description |
string | Yes | Brief description (under 200 chars) |
meta.tags |
string[] | Yes | Categorization tags |
meta.title |
string | Yes | Display name |
meta.category |
string | Yes | Primary category |
schemaVersion |
number | Yes | Always use 1 |
| Category | Use For |
|---|---|
stocks-finance |
Financial, crypto, trading plugins |
web-search |
Search engines, web crawlers |
tools |
Utilities, productivity |
media-generate |
Image, video, audio generation |
science-education |
Learning, research, academic |
gaming-entertainment |
Games, fun, entertainment |
lifestyle |
Travel, weather, personal |
social |
Social media, communication |
For multi-language support, create locale files in the locales/ directory:
locales/
├── your-plugin.en-US.json
├── your-plugin.zh-CN.json
├── your-plugin.ja-JP.json
└── ... (other locales)
{
"meta": {
"title": "Your Plugin Name",
"description": "A brief description in this language",
"tags": ["utility", "search"]
}
}en-US- English (United States) requiredzh-CN- Chinese (Simplified)zh-TW- Chinese (Traditional)ja-JP- Japaneseko-KR- Koreande-DE- Germanfr-FR- Frenches-ES- Spanishit-IT- Italianpt-BR- Portuguese (Brazil)ru-RU- Russianar- Arabicbg-BG- Bulgarianfa-IR- Persiannl-NL- Dutchpl-PL- Polishtr-TR- Turkishvi-VN- Vietnamese
Tip: You only need to provide
en-US. The build system can auto-generate other locales using AI translation (requiresOPENAI_API_KEY).
# Fork via GitHub UI, then clone your fork
git clone https://github.com/YOUR_USERNAME/plugin.delivery.git
cd plugin.deliveryCreate a new file src/your-plugin.json:
touch src/your-plugin.jsonAdd your plugin definition (see Plugin Entry Format).
Create the required English locale file:
touch locales/your-plugin.en-US.jsonAdd your locale content (copy title, description, tags from your plugin's meta):
{
"meta": {
"title": "Your Plugin Name",
"description": "A brief description of your plugin",
"tags": ["utility"]
}
}Run the format command to auto-generate all other language translations:
# Set your OpenAI API key
export OPENAI_API_KEY="your-key-here"
# Generate all locale files
bun run formatThis will create your-plugin.ar.json, your-plugin.zh-CN.json, etc.
# Build the index to verify everything works
bun run buildgit add src/your-plugin.json locales/your-plugin.*.json
git commit -m "feat: add your-plugin to marketplace"
git push origin main- Go to github.com/nirholas/plugin.delivery
- Click "Compare & pull request"
- Fill in the PR template with:
- Plugin name and description
- Link to plugin homepage
- Brief explanation of functionality
- Submit the pull request
After submission, your plugin will be reviewed for:
- Functionality - Plugin must work correctly
- Security - No malicious code or data collection
- Quality - Reasonable code quality and UX
- Relevance - Adds value to the ecosystem
- Uniqueness - Not a duplicate of existing plugins
- Initial review: 1-3 business days
- Feedback (if needed): Via PR comments
- Merge (if approved): Within 1 week
✅ Functional plugins that work as described ✅ Plugins that add value to the ecosystem ✅ Well-documented plugins with clear descriptions ✅ Plugins from any author (you don't have to be the original creator)
❌ Non-functional or broken plugins ❌ Duplicate plugins (same functionality as existing) ❌ Malicious or harmful plugins ❌ Plugins violating terms of service ❌ Low-quality or spammy submissions
- Plugins must remain functional to stay listed
- If a plugin becomes unavailable or unmaintained, we may:
- Redirect to a fork
- Remove from the index
- Plugin authors are encouraged to:
- Respond to issues
- Keep dependencies updated
- Fix reported bugs
If you need to:
- Update your plugin - Submit a PR with changes
- Remove your plugin - Open an issue requesting removal
- Report incorrect info - Open an issue with corrections
Once your plugin is merged:
- Build runs automatically - The CI/CD pipeline builds the index
- Plugin appears in store - Usually within minutes of deployment
- Users can install - Via the SperaxOS Plugin Store
- Analytics - Track usage through your own analytics (if implemented)
To update an already-listed plugin:
- Update your
src/your-plugin.jsonfile - Update locale files if descriptions changed
- Submit a PR with the changes
- Changes deploy automatically after merge
Learn from these official reference implementations:
| Plugin | Type | Description | Repository |
|---|---|---|---|
| CoinGecko | OpenAPI | Cryptocurrency data | public/openai/coingecko/ |
| DeFiLlama | OpenAPI | DeFi analytics | public/defillama/ |
| Search Engine | Default | Web search | Templates: templates/default/ |
| Markdown Demo | Markdown | Formatted output | Templates: templates/markdown/ |
| Interactive Widget | Standalone | Full interaction | Templates: templates/standalone/ |
- Documentation: This guide and related docs
- GitHub Issues: github.com/nirholas/plugin.delivery/issues
- Twitter/X: @nichxbt
- Quick Start Guide - Build your first plugin
- Plugin Manifest Reference - Complete manifest documentation
- Plugin Development Guide - Full development documentation