Skip to content

PHAL plugins

The Plugin based Hardware Abstraction Layer plugins allow you to interact with system components such as Wi-Fi, GPIO, NetworkManager, etc... but not only.


The PHAL plugins are handled by the ovos_phal and ovos_phal_admin containers.

ovos_phal_admin is a privileged container

The ovos_phal_admin purpose is to run plugins that require accesses to some devices, files or services.

Plugins installed in this container have to be enabled into ~/ovos/config/mycroft.conf in order to get loaded, this acts as an extra layer of security.

The ovos_phal container comes with few pre-installed PHAL plugins such as:

  • ovos-PHAL-plugin-alsa controls system volume with ALSA
  • ovos-PHAL-plugin-ipgeo provides geolocation information via the message bus
  • ovos-PHAL-plugin-system handles bus events to interact with the operating system

If the existing PHAL plugins are not enough then you can install yours by following the same principle as for the STT plugins by adding a phal.list or phal_admin.list files within the ~/ovos/config/ directory, this file acts as a Python requirements.txt file.

Plugins requirements

These plugins have to be compatible with the pip install method which requires a file.

When the ovos_phal or ovos_phal_admin containers start, they will look for these files and install the skpluginsills defined in there.

~/ovos/config/phal.list or ~/ovos/config/phal_admin.list
ovos-phal-plugin-ipgeo==0.0.1 # Specific plugin version on PyPi
ovos-PHAL-plugin-pulse # Latest plugin version on PyPi
git+ # Specific branch of a plugin on GitHub

The ovos_phal or ovos_phal_admin containers must be restarted if a change occurs in the phal.list or phal_admin.lis files.

docker restart ovos_phal ovos_phal_admin
podman restart ovos_phal ovos_phal_admin