OVOS Plugin Manager (OPM) Documentation

July 31, 2026 · View on GitHub

ovos-plugin-manager (OPM) is the plugin discovery, loading, and configuration framework for the OpenVoiceOS ecosystem. It defines the base classes (templates) that OVOS plugins implement, and it has factory methods and utilities to find and load installed plugins at runtime through Python entry points.

Contents

Architecture Overview

ovos-core / ovos-dinkum-listener / ovos-audio

        └── ovos-plugin-manager
                ├── find_plugins(PluginTypes.STT)   → {name: entrypoint, ...}
                ├── load_plugin(name, PluginTypes.STT) → Class
                └── OVOSSTTFactory.create(config)   → STT instance

Plugins are Python packages that register themselves under a well-known entry point group (for example, opm.stt). OPM calls importlib.metadata.entry_points() to discover installed plugins without any manual registration.

Quick Start

Find all installed STT plugins

from ovos_plugin_manager.stt import find_stt_plugins
plugins = find_stt_plugins()
# {'ovos-stt-plugin-whisper': <class 'WhisperSTT'>, ...}

Load a plugin class by entry point name

from ovos_plugin_manager.stt import load_stt_plugin
MySTT = load_stt_plugin("ovos-stt-plugin-whisper")
stt = MySTT(config={"lang": "en-US"})

Create a plugin from configuration

from ovos_plugin_manager.stt import OVOSSTTFactory
# reads stt.module from mycroft.conf / ovos.conf
stt = OVOSSTTFactory.create()

Inspect a plugin (installed or not)

from ovos_plugin_manager.plugin_entry import OpenVoiceOSPlugin
p = OpenVoiceOSPlugin.from_name("ovos-stt-plugin-whisper")
print(p.human_name)   # "Whisper STT"
print(p.is_installed) # True
print(p.json)         # full metadata dict