You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenVoiceUI's TTS system is the only component with true pluggability — registry-based auto-discovery, custom API URL support, admin panel selection, and per-agent profile overrides. Every other service (STT, Vision, Image Gen, Music Gen, LLM, Search, Voice Cloning) is either hardcoded to specific providers or missing a "bring your own endpoint" option.
The name is OpenVoiceUI — every service should be mix-and-match, plug-and-play.
Current State
Service
Pluggable?
Gap
TTS
✅ Done
Gold standard — registry + custom URL + admin UI
STT
❌ In Progress
No custom URL. Chrome WebSpeech or hardcoded cloud only. See #193
Vision / Camera
❌ Not Started
Hardcoded to Groq/Llama 4 Scout. No custom endpoint
Image Generation
⚠️ Partial
Multiple providers exist but no registry, no custom URL
Music Generation
❌ Not Started
Suno API endpoint hardcoded
Voice Cloning
⚠️ Partial
Embedded in TTS providers, inconsistent interfaces
LLM
⚠️ Partial
Profile system works but no generic "bring your own LLM URL"
Web Search
❌ Not Started
DuckDuckGo hardcoded, Brave only in OpenClaw
Target Architecture (Per Service)
Every service should follow the TTS pattern:
Abstract base class — provider contract (providers/<type>/base.py)
Provider registry — auto-discovery via config/providers.yaml
Custom API URL env var — <SERVICE>_API_URL for bring-your-own endpoints
Admin panel selection — radio buttons or dropdown to switch providers
Per-agent profile override — each agent profile can use different providers
Overview
OpenVoiceUI's TTS system is the only component with true pluggability — registry-based auto-discovery, custom API URL support, admin panel selection, and per-agent profile overrides. Every other service (STT, Vision, Image Gen, Music Gen, LLM, Search, Voice Cloning) is either hardcoded to specific providers or missing a "bring your own endpoint" option.
The name is OpenVoiceUI — every service should be mix-and-match, plug-and-play.
Current State
Target Architecture (Per Service)
Every service should follow the TTS pattern:
providers/<type>/base.py)config/providers.yaml<SERVICE>_API_URLfor bring-your-own endpointsImplementation Order
Related