Skip to content

Plugin Marketplace — Browse and one-click install from admin panel #246

@MCERQUA

Description

@MCERQUA

Overview

The plugin system works (drop folder + restart) but there's no discovery or installation UI. Users have to manually find repos, git clone, and restart. That's not "Open" or "plug and play."

What We Need

The admin panel should have a Plugin Marketplace tab where users can:

  1. Browse available plugins — catalog of approved/community plugins with descriptions, screenshots, install counts
  2. One-click install — click "Install" → app pulls from the plugin's GitHub repo → done
  3. One-click uninstall — remove without touching the terminal
  4. Update notifications — show when a newer version is available
  5. Status indicators — installed, active, needs config (missing API key), update available

Implementation

Plugin Registry (source of truth)

A plugins-registry.json hosted in the openvoiceui-plugins repo:

{
  "plugins": [
    {
      "id": "example-gateway",
      "name": "Example Gateway",
      "description": "Reference implementation for custom LLM backends",
      "repo": "MCERQUA/openvoiceui-plugins",
      "path": "plugins/example-gateway",
      "category": "gateway",
      "version": "1.0.0"
    }
  ]
}

Admin Panel

  • New sidebar section or tab: "Plugin Marketplace"
  • Cards showing each plugin: name, description, category (gateway/tts/stt/face/tool), install button
  • Installed plugins show status, config requirements, uninstall button

Backend

  • GET /api/plugins/catalog — fetch registry, merge with installed state
  • POST /api/plugins/install — git clone from repo URL into plugins/
  • POST /api/plugins/uninstall — remove plugin folder
  • POST /api/plugins/update — git pull latest

No restart required (stretch goal)

Hot-reload plugins without container restart — Flask blueprint dynamic registration.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions