Mycroft AI
  • Documentation
  • About Mycroft AI
    • Why use Mycroft AI?
    • Glossary of terms
    • Contributing
    • FAQ
  • Using Mycroft AI
    • Get Mycroft
      • Mark II
        • Mark II Dev Kit
      • Mark 1
      • Picroft
      • Linux
      • Mac OS and Windows with VirtualBox
      • Docker
      • Android
    • Pairing Your Device
    • Basic Commands
    • Installing New Skills
    • Customizations
      • Configuration Manager
      • mycroft.conf
      • Languages
        • Français (French)
        • Deutsch (German)
      • Using a Custom Wake Word
      • Speech-To-Text
      • Text-To-Speech
    • Troubleshooting
      • General Troubleshooting
      • Audio Troubleshooting
      • Wake Word Troubleshooting
      • Log Files
      • Support Skill
      • Getting more support
  • Skill Development
    • Voice User Interface Design Guidelines
      • What can a Skill do?
      • Design Process
      • Voice Assistant Personas
      • Interactions
        • Intents
        • Statements and Prompts
        • Confirmations
      • Conversations
      • Error Handling
      • Example Interaction Script
      • Prototyping
      • Design to Development
    • Development Setup
      • Python Resources
      • Your First Skill
    • Skill Structure
      • Lifecycle Methods
      • Logging
      • Skill Settings
      • Dependencies
        • Manifest.yml
        • Requirements files
      • Filesystem access
      • Skill API
    • Integration Tests
      • Test Steps
      • Scenario Outlines
      • Test Runner
      • Reviewing the Report
      • Adding Custom Steps
      • Old Test System
    • User interaction
      • Intents
        • Padatious Intents
        • Adapt Intents
      • Statements
      • Prompts
      • Parsing Utterances
      • Confirmations
      • Conversational Context
      • Converse
    • Displaying information
      • GUI Framework
      • Show Simple Content
      • Mycroft-GUI on a PC
      • Mark 1 Display
    • Advanced Skill Types
      • Fallback Skill
      • Common Play Framework
      • Common Query Framework
      • Common IoT Framework
    • Mycroft Skills Manager
      • Troubleshooting
    • Marketplace Submission
      • Skills Acceptance Process
        • Information Review Template
        • Code Review Template
        • Functional Review Template
        • Combined Template
      • Skill README.md
    • FAQ
  • Mycroft Technologies
    • Technology Overview
    • Roadmap
    • Mycroft Core
      • MessageBus
      • Message Types
      • Services
        • Enclosure
        • Voice Service
        • Audio Service
        • Skills Service
      • Plugins
        • Audioservice Plugins
        • STT Plugins
        • TTS Plugins
        • Wake Word Plugins
      • Testing
      • Legacy Repo
    • Adapt
      • Adapt Examples
      • Adapt Tutorial
    • Lingua Franca
    • Mimic TTS
      • Mimic 3
      • Mimic 2
      • Mimic 1
      • Mimic Recording Studio
    • Mycroft GUI
      • Remote STT and TTS
    • Mycroft Skills Kit
    • Mycroft Skills Manager
    • Padatious
    • Precise
    • Platforms
Powered by GitBook
On this page
  • Recommended
  • Alternatives
  • Manual installation

Was this helpful?

  1. Skill Development
  2. Skill Structure

Dependencies

Mycroft Skills are powerful because we can make use of external packages and applications, or add voice interfaces to existing tools.

PreviousSkill SettingsNextManifest.yml

Last updated 3 years ago

Was this helpful?

There are three main categories of dependencies:

  • Python packages sourced from .

  • Linux system packages sourced from the repositories available on the Mycroft device.

  • Other Mycroft Skills sourced from the .

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.

Recommended

manifest.yml is the default method. This can include all three types of dependencies including variations for different operating systems if required.

Alternatives

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.

Manual installation

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:

apt install system-package-name

Mycroft Skills can be installed using the Mycroft Skills Manager:

mycroft-msm install required-skill-name

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.

mycroft-pip install python-package-name

If you don’t want to use the helper commands you can activate the virtual environment and install the packages using the PIP:

cd ~/mycroft-core        # or whereever you cloned Mycroft-core
source venv-activate.sh  # activate the virtual environment
pip install python-package-name
deactivate               # to exit the virtual environment again

If you have already defined your Python package dependencies, you can use the pip -r flag to install all of these at once:

cd /opt/mycroft/skills/my-skill
mycroft-pip install -r requirements.txt

There is no limit to the number of packages you can install, however these are reviewed during the to ensure they are appropriate for the Skill being installed and do not pose a security concern for Users.

PyPI
Skills Marketplace
Python Resources
Manifest.yml
Requirements files
Skills Acceptance Process