Plugin Marketplace
The Plugin Marketplace is a centralized repository of plugins that extend StudioBrain’s functionality. Browse, install, and manage plugins directly from the application.
Overview
The Plugin Marketplace allows you to:
- Browse available plugins with search and filtering
- Install plugins from the marketplace registry
- Activate/Deactivate plugins per tenant
- Enable/Disable installed plugins (tenant-scoped operations)
- Uninstall plugins from your tenant
- Rate and Review plugins (coming soon)
- View Health Status of plugins (admin feature)
Accessing the Marketplace
Via UI
- Navigate to Settings > Plugins > Marketplace
- Browse or search for plugins
- Click Install to add a plugin
- Click Activate to enable the plugin for your tenant
Via API
All marketplace operations are available through REST API endpoints (see API Reference below).
Marketplace Categories
Plugins are organized into categories:
Creative Tools
- ComfyUI Workflows - Run image generation workflows
- Voice Forge - AI voice synthesis
- Music Gen - Background music generation
- LoRA Trainer - Custom model training
Export & Publishing
- PDF Exporter - Export to PDF documents
- Showrunner Exporter - TV production format
- UEFN Exporter - Unreal Editor for Fortnite
- Unity Exporter - Unity data format
- Unreal Exporter - Unreal Engine format
Integrations
- Jira Sync - Jira issue tracking
- Discord Poster - Discord notifications
- Google Sheets Sync - Spreadsheet sync
- Notion Sync - Notion database sync
- Obsidian Vault - Markdown vault export
- Webhook Automations - Custom webhooks
- YouTube Manager - YouTube integration
- Social Publisher - Social media posting
Project Management
- Kanban Board - Production tracking
- Time Tracker - Time logging
- Version History - Version management
Development
- Blender Bridge - 3D asset creation
- Hello World - Developer example
Installing Plugins
Prerequisites
Before installing a plugin, ensure:
- You have an active StudioBrain subscription (limits vary by tier)
- The plugin is compatible with your entity types
- You have network access to the plugin’s backend (if applicable)
Tier Limits
| Tier | Max Plugins |
|---|---|
| Free | 3 |
| Solo/Indie | 10 |
| Team | Unlimited |
| Enterprise | Unlimited |
| Self-hosted | Unlimited |
Note: Plugin limits are enforced at activation time, not installation. You can install plugins but won’t be able to activate them if you’ve reached your tier limit.
Installation Steps
- Browse the marketplace using search or categories
- Read the plugin description and reviews
- Click Install button
- The plugin is now installed but not activated
Activation
After installation:
- Go to Settings > Plugins
- Find your installed plugin
- Toggle Enable switch or use the API to activate
- Configure plugin-specific settings if needed
Marketplace API Reference
List Marketplace Plugins
GET /api/plugins/marketplace
Browse available plugins with filtering and pagination.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
category | string | null | Filter by category |
search | string | null | Full-text search |
featured | boolean | false | Only featured plugins |
limit | integer | 50 | Max results (1-200) |
offset | integer | 0 | Pagination offset |
Response:
{
"plugins": [
{
"plugin_id": "comfyui_workflows",
"name": "ComfyUI Workflows",
"description": "Run ComfyUI image generation workflows",
"author": "Biloxi Studios",
"version": "1.0.0",
"repository": "https://github.com/BiloxiStudios/...",
"icon_url": "https://...",
"category": "creative",
"tags": ["ai", "image", "comfyui"],
"min_tier": "free",
"is_verified": true,
"is_featured": true,
"manifest": { /* plugin manifest */ },
"average_rating": 4.8,
"install_count": 1234
}
],
"total": 50,
"limit": 50,
"offset": 0
}Get Plugin Info
GET /api/plugins/marketplace/{plugin_id}
Get details for a specific marketplace plugin.
Response:
{
"plugin_id": "comfyui_workflows",
"name": "ComfyUI Workflows",
"description": "Run ComfyUI image generation workflows from within the entity editor.",
"author": "Biloxi Studios",
"version": "1.0.0",
"repository": "https://github.com/BiloxiStudios/comfyui-plugin",
"icon_url": "https://...",
"category": "creative",
"tags": ["ai", "image", "comfyui"],
"min_tier": "free",
"is_verified": true,
"is_featured": true,
"manifest": {
"name": "ComfyUI Workflows",
"version": "1.0.0",
"author": "Biloxi Studios",
"panels": [
{
"id": "workflow-panel",
"name": "Workflow Runner",
"entity_types": ["Character", "Location"]
}
],
"settings": {
"comfyui_url": {
"type": "text",
"label": "ComfyUI Server URL",
"required": true
},
"default_workflow": {
"type": "select",
"label": "Default Workflow",
"options": ["portrait.yaml", "landscape.yaml"]
}
}
},
"created_at": "2025-06-15T10:00:00Z",
"updated_at": "2026-02-20T14:30:00Z"
}Get Marketplace Info
GET /api/plugins/marketplace/info
Return marketplace status, current tenant plugin count, and limits.
Response:
{
"mode": "cloud", // "cloud" or "self-hosted"
"tier": "indie",
"max_plugins": 10,
"enabled_plugin_count": 4,
"can_install_more": true
}Install Marketplace Plugin
POST /api/plugins/marketplace/tenant/install
Install a plugin for the current tenant.
Request Body:
{
"plugin_id": "comfyui_workflows",
"source": "marketplace",
"source_url": null
}Response:
{
"message": "Plugin 'comfyui_workflows' installed for tenant 'tenant-abc123'",
"installation": {
"installation_id": "inst-xyz789",
"plugin_id": "comfyui_workflows",
"enabled": false,
"source": "marketplace",
"installed_by": "user-456",
"installed_at": "2026-03-10T10:00:00Z"
}
}Activate Marketplace Plugin
POST /api/plugins/marketplace/{plugin_id}/activate
Activate a marketplace plugin for the current tenant.
The plugin must exist in the marketplace registry (pre-installed in the Docker image). Activation creates or re-enables a plugin_installations row with source='marketplace' — no server restart is needed.
Response:
{
"message": "Plugin 'comfyui_workflows' activated for tenant 'tenant-abc123'",
"installation": {
"installation_id": "inst-xyz789",
"plugin_id": "comfyui_workflows",
"enabled": true,
"source": "marketplace",
"installed_at": "2026-03-10T10:00:00Z",
"updated_at": "2026-03-10T10:05:00Z"
}
}Deactivate Marketplace Plugin
POST /api/plugins/marketplace/{plugin_id}/deactivate
Deactivate a marketplace plugin for the current tenant.
Sets enabled=False on the plugin_installations row. The plugin backend routes continue to exist but PluginRegistry.is_plugin_enabled() will return False for this tenant.
Response:
{
"message": "Plugin 'comfyui_workflows' deactivated for tenant 'tenant-abc123'",
"installation": {
"installation_id": "inst-xyz789",
"plugin_id": "comfyui_workflows",
"enabled": false,
"source": "marketplace",
"installed_at": "2026-03-10T10:00:00Z",
"updated_at": "2026-03-10T10:10:00Z"
}
}List Tenant Plugins
GET /api/plugins/marketplace/tenant/installed
List plugins installed for the current tenant.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled_only | boolean | false | Only enabled plugins |
Response:
{
"installations": [
{
"installation_id": "inst-xyz789",
"plugin_id": "comfyui_workflows",
"enabled": true,
"source": "marketplace",
"installed_by": "user-456",
"installed_at": "2026-03-10T10:00:00Z",
"updated_at": "2026-03-10T10:05:00Z"
}
]
}Enable Installed Plugin
POST /api/plugins/marketplace/tenant/{plugin_id}/enable
Enable an installed plugin for the current tenant.
Tier Limit: Plugin limits are enforced at activation time. If you’ve reached your tier limit, you’ll need to disable another plugin first.
Response:
{
"message": "Plugin 'comfyui_workflows' enabled",
"installation": {
"installation_id": "inst-xyz789",
"plugin_id": "comfyui_workflows",
"enabled": true,
"source": "marketplace",
"installed_at": "2026-03-10T10:00:00Z",
"updated_at": "2026-03-10T10:15:00Z"
}
}Disable Installed Plugin
POST /api/plugins/marketplace/tenant/{plugin_id}/disable
Disable an installed plugin for the current tenant.
Response:
{
"message": "Plugin 'comfyui_workflows' disabled",
"installation": {
"installation_id": "inst-xyz789",
"plugin_id": "comfyui_workflows",
"enabled": false,
"source": "marketplace",
"installed_at": "2026-03-10T10:00:00Z",
"updated_at": "2026-03-10T10:20:00Z"
}
}Uninstall Plugin
DELETE /api/plugins/marketplace/tenant/{plugin_id}
Uninstall a plugin for the current tenant.
Warning: This removes all installation metadata. The plugin will need to be reinstalled to be used again.
Response:
{
"message": "Plugin 'comfyui_workflows' uninstalled for tenant 'tenant-abc123'"
}Plugin Health Summary
GET /api/plugins/marketplace/health/summary
Return in-process plugin health counters (admin feature).
Shows activation failure counts and circuit breaker status for all plugins that have experienced failures since the last process restart.
This data is also emitted as structured log lines with the tag plugin_health and consumed by Grafana/Loki.
Response:
{
"healthy_plugins": true,
"plugins_with_failures": 2,
"detail": {
"comfyui_workflows": {
"failures": 0,
"circuit_open": false,
"last_failure": null,
"affected_tenant_count": 0
},
"jira_sync": {
"failures": 3,
"circuit_open": true,
"last_failure": "2026-03-10T09:30:00Z",
"affected_tenant_count": 5
}
}
}Response Fields:
| Field | Type | Description |
|---|---|---|
healthy_plugins | boolean | True if no plugins have circuit open |
plugins_with_failures | integer | Number of plugins with recorded failures |
detail | object | Per-plugin health details |
Per-Plugin Detail Fields:
| Field | Type | Description |
|---|---|---|
failures | integer | Total activation failures since restart |
circuit_open | boolean | True if plugin was auto-disabled after 3 failures |
last_failure | string | ISO timestamp of most recent failure (null if none) |
affected_tenant_count | integer | Number of distinct tenants affected |
Plugin Health Detail (Single Plugin)
GET /api/plugins/marketplace/health/{plugin_id}
Return health detail for a single plugin.
Returns 200 with circuit_open: false even if the plugin has no recorded failures (it is healthy by default). Returns 404 only if the plugin_id is syntactically invalid.
Response:
{
"plugin_id": "jira_sync",
"failures": 3,
"circuit_open": true,
"last_failure": "2026-03-10T09:30:00Z",
"affected_tenant_count": 5,
"status": "circuit_open"
}Status Values:
| Status | Description |
|---|---|
healthy | No failures recorded |
degraded | Has failures but circuit is closed |
circuit_open | Auto-disabled after 3+ failures |
Plugin Rating and Reviews (Coming Soon)
⚠️ Coming Soon: The full review system UI will be implemented in a future release. The endpoints exist for frontend development but will not show actual reviews yet.
Submit Rating
POST /api/plugins/marketplace/{plugin_id}/rate
Submit a rating (1-5) and optional review. The rating is logged for analytics; the aggregate average_rating field on PluginRegistryEntry will be updated once the full review system UI is implemented.
Request Body:
{
"rating": 5,
"review": "Great plugin, works perfectly!"
}Response:
{
"message": "Rating submitted. Thank you for your feedback.",
"plugin_id": "comfyui_workflows",
"rating": 5,
"note": "Full review display UI is coming in a future release."
}View Reviews
GET /api/plugins/marketplace/{plugin_id}/reviews
List reviews for a plugin.
⚠️ Coming Soon: Currently returns an empty list. The review storage model and UI will be added in a follow-up ticket.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 20 | Max results (1-100) |
offset | integer | 0 | Pagination offset |
Response:
{
"plugin_id": "comfyui_workflows",
"total": 0,
"limit": 20,
"offset": 0,
"reviews": [],
"note": "Full review display UI is coming in a future release."
}Troubleshooting
Plugin Install Fails
Possible Causes:
- Plugin limit reached for your tier
- Plugin ID invalid or not in marketplace
- Network connection issues
Solutions:
- Check your tier limits:
GET /api/plugins/marketplace/info - Verify the plugin ID exists
- Check network connectivity to marketplace
Plugin Not Activating
Possible Causes:
- Plugin dependencies not met
- Plugin incompatible with tenant configuration
- Plugin backend unavailable
Solutions:
- Check plugin manifest for requirements
- Review plugin logs in the console
- Verify any external service connections
Too Many Plugins
Error: Plugin limit reached (10/10) for the 'indie' tier
Solutions:
- Deactivate unused plugins
- Upgrade to Team or Enterprise tier
- Switch to self-hosted (unlimited plugins)
Note: Plugin limits are enforced at activation time. You can install plugins but won’t be able to activate them if you’ve reached your tier limit.
Circuit Breaker Open
Error: Plugin circuit open or health check shows circuit_open: true
Possible Causes:
- Plugin experienced 3+ activation failures
- Plugin backend is down
- Plugin has compatibility issues
Solutions:
- Check plugin health:
GET /api/plugins/marketplace/health/{plugin_id} - Review plugin logs for error details
- Contact plugin author or disable the plugin
Best Practices
- Read before installing: Review plugin descriptions and reviews
- Start small: Install only plugins you need immediately
- Monitor usage: Check plugin health status periodically
- Deactivate unused: Disable plugins you’re not using to reduce overhead
- Update regularly: Marketplace plugins receive updates - check for new versions
- Track limits: Be aware of your tier’s plugin limit and enforce limits at activation time
Related Documentation
- Plugin User Guide - How to use plugins
- Plugin Development - Building plugins
- Plugin Iframe Protocol - Developer API reference
- Agent Skills Marketplace - Similar system for AI skills