OVOS is a modular system, meaning that you don’t have to install all of its components. Depending on your needs, you can install only the specific modules you want, saving both space and dependencies. The different components of OVOS are grouped into extras — optional feature sets that you can choose to install.
⚠️ this repository only enters in effect after the first codename release, constraints files are a work in progress and subject to change
- Distros
- Release Channels
- Installation Commands for Each Channel
- OVOS from Scratch
- What are OVOS Extras?
- Summary
OVOS distros are projects that ship OVOS, but that are opinionated about which components and skills should be available by default and pre-configured.
- raspOVOS - rasperry pi image
- ovos-installer - install OVOS on top of multiple OVOS
- ovos-buildroot - under development
These distros provide an easier way to get started with OVOS on specific hardware or platforms. The configurations come pre-set with commonly used services, making it quicker to deploy OVOS on different devices.
OVOS follows semantic versioning (SemVer) and a rolling release model with three primary release channels: stable, testing, and alpha.
These channels are managed via the constraints files hosted in this repository
ℹ️ constraints files are similar to
requirements.txt
, but they specify allowed versions instead of required versions, packages in constraints files are not automatically installed
-
Stable Channel
- The stable release channel includes only bug fixes, no breaking changes or new features. It’s safe for general use.
- Installation: Use the
constraints-stable.txt
file to install the stable releases.
-
Testing Channel
- The testing release channel includes bug fixes and new features, but it may not be as thoroughly tested as the stable releases.
- Installation: Use the
constraints-testing.txt
file to install the testing releases.
-
Alpha Channel
- The alpha channel includes the latest experimental features that are still in development. These are not recommended for production use.
- Installation: Use the
--pre
flag to install alpha releases.
To install the stable release with the desired extras, use:
pip install ovos-core[mycroft] -c constraints-stable.txt
To install the testing release with the desired extras, use:
pip install ovos-core[mycroft] -c constraints-testing.txt
To install the latest alpha release with the desired extras, use:
pip install ovos-core[mycroft] --pre
Instead of using distros you can costumize OVOS by manually installing only select services relevant to your use case
- messagebus - provides a communication layer between all services
- core - handles anything related to skills
- audio - handles anything related to audio output (TTS, sounds, music...)
- listener - handles anything related to audio input (WakeWord, VAD, STT...)
- gui - provides UI information for GUI client apps (eg, ovos-shell)
- PHAL - Platform/Hardware Abstraction Layer plugins
For example, if you're setting up a Hivemind server, you can omit the audio stack to save resources.
OVOS packages are divided into different extras that define the components you wish to install. Each extra is a group of related functionality, and you can choose which ones to install based on your use case. For example:
- mycroft: Includes all the individual services, equivalent to the Mycroft-core monolithic architecture (e.g., ovos-audio, ovos-dinkum-listener, ovos-gui, ovos-PHAL, ovos-messagebus).
- lgpl: Includes optional dependencies that are LGPL-licensed (e.g., Padatious).
- plugins: Includes various plugins for additional functionality.
- skills-essential: Includes essential skills.
- skills-audio: Includes skills that require audio input/output capabilities.
- skills-gui: Includes skills that require GUI.
- skills-internet: Includes skills that require internet connection.
- skills-media: Includes OCP skills (media playback).
- skills-desktop: Includes desktop-related skills.
For a full installation of OVOS with all the optional modules, you can use the following command:
pip install ovos-core[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop]
However, you don’t need to install everything. You can customize your installation by selecting only the extras you need, depending on the features you want to use.
For example, if you want minimal functionality, you can install just those:
pip install ovos-core[mycroft,plugins,skills-essential]
This flexibility allows you to tailor the installation to your requirements, without unnecessary components.
- OVOS is modular, and you can choose which components (extras) to install based on your needs.
- Stable Channel: Bug fixes only (use
constraints-stable.txt
). - Testing Channel: Bug fixes and new features (use
constraints-testing.txt
). - Alpha Channel: Latest experimental features (use
--pre
). - Use the base command or customize your installation to fit your requirements by selecting only the necessary extras.