Dependencies
Mycroft Skills are powerful because we can make use of external packages and applications, or add voice interfaces to existing tools.
Last updated
Mycroft Skills are powerful because we can make use of external packages and applications, or add voice interfaces to existing tools.
Last updated
There are three main categories of dependencies:
Python packages sourced from PyPI.
Linux system packages sourced from the repositories available on the Mycroft device.
Other Mycroft Skills sourced from the Skills Marketplace.
Some of these may already be installed on a Users device, however some may not. To make sure a system has everything that your Skill needs, we can define the dependencies or requirements of the Skill. During installation the Mycroft Skills Manager will then check that they are installed, and if not attempt to do so.
For more information on Python package management and Python virtual environments, see our general Python Resources:
There are three files that we can use to define these dependencies.
manifest.yml
is the default method. This can include all three types of dependencies including variations for different operating systems if required.
requirements.txt
can be used only for Python packages.
requirements.sh
is used to run a custom script during installation.
Which ever file you choose to use, it must be located in the root directory of your Skill.
There is no limit to the number of packages you can install, however these are reviewed during the Skills Acceptance Process to ensure they are appropriate for the Skill being installed and do not pose a security concern for Users.
The files outlined above ensure that dependencies are available on devices when a Skill is being installed by the Mycroft Skills Manager. If you are developing the Skill on your own machine, you may need to install these dependencies manually.
System packages can be installed using your standard package manager, for example:
Mycroft Skills can be installed using the Mycroft Skills Manager:
Python packages must be installed in the Mycroft virtual environment. The simplest way to do this is using the helper command mycroft-pip
located in mycroft-core/bin/
During installation you may have selected to add this directory to your PATH in which case you can run it from anywhere.
If you don’t want to use the helper commands you can activate the virtual environment and install the packages using the PIP:
If you have already defined your Python package dependencies, you can use the pip -r
flag to install all of these at once: