Skip to content

Core Libraries

In a nutshell

OVOS is built on a handful of shared Python libraries that the services and skills all depend on, including the messagebus client, general utilities, and typed message models. Their detailed API reference lives in each library's own repository (every one ships a docs/ folder), so this page is a map: what each library is for, and a direct link to its source and docs. Keeping the API reference at the source avoids it drifting out of sync with the code. See the Glossary for terms.

Why this is just links

The library repos themselves maintain per-library API docs (each has a docs/ folder rendered on GitHub). Re-hosting them here would mean keeping two copies in sync, so the manual links out to the authoritative source instead. Use the links below.


ovos-bus-client

The client for the OVOS messagebus: the MessageBusClient, the Message object, Session handling, and the high-level helper APIs (GUI, Enclosure, OCP) that wrap common bus chores. It also ships the ovos-listen / ovos-speak / ovos-say-to / ovos-simple-cli command-line tools.

ovos-utils

The grab-bag of shared helpers used across OVOS: logging, process/lifecycle management, bus-event decorators, language helpers, sound playback, and many small utilities. It also provides the ovos-logs log tool.

ovos-pydantic-models

Typed Pydantic models for OVOS bus messages: a schema layer that lets tools validate and introspect message types instead of passing around raw dicts.

The models are generated semi-automatically from source, so the published catalog can lag or diverge from the code. Treat it as a map of the message space, not as the contract. The formal specifications remain the authority on required behavior.

ovos-plugin-manager (OPM)

Discovers, loads, and configures every kind of OVOS plugin via entry-point groups. Covered in the manual at Plugin Manager.

ovos-workshop

The skill-author framework — the OVOSSkill base classes, decorators, intent registration, GUI helpers, and skill lifecycle. Covered in the manual under Skill Development.

ovos-config

The layered configuration system (defaults → system → user → runtime). Covered in the manual at Configuration.

  • Source: OpenVoiceOS/ovos-config
  • API docs: ovos-config's docs/ folder holds only a prerelease-quirks.md changelog, not an API reference. Its README remains the API reference.
  • License: Apache-2.0

kw-template-matcher

A standalone template-expansion and fuzzy-matching utility for prototyping NLU grammars: expands templates with optional phrases ([optional]), alternatives ((choice1|choice2)), and slots ({slot_name}), then fuzzy-matches free text against the expansions (via rapidfuzz / simplematch) with slot extraction. It also ships an OPM plugin: the entry point labeled ovos-keyword-template-matcher registers under the opm.transformer.intent group (the pip/PyPI package name is keyword-template-matcher, without the prefix) (KeywordTemplateMatcher, an intent transformer that hooks intent registration on the bus). Use the library directly when hand-authoring or prototyping matching rules. License note: the setup.py classifier says MIT, but the repository ships no LICENSE file (see Licensing for how to treat that).


These libraries are transitive dependencies of ovos-core and are version-bounded by the same release-channel constraints files rather than pinned independently. You don't normally choose their versions yourself.

For the full list of OVOS repositories, including plugins, skills, and tools, see the OVOS Repository Index.


Read next: Language Names Related: OVOS Repository Index · Plugin Manager · Bus Service · Configuration