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
  • File contents
  • Python Packages
  • Linux System Packages
  • Other Mycroft Skills
  • Example files

Was this helpful?

  1. Skill Development
  2. Skill Structure
  3. Dependencies

Manifest.yml

A Skill's `manifest.yml` file is the default method for defining the dependencies of a Mycroft Skill.

PreviousDependenciesNextRequirements files

Last updated 4 years ago

Was this helpful?

In this file we can include Python packages, Linux applications or other Mycroft skills that are required for our own Skill to function properly.

is a language commonly used for configuration files. It uses indentation rather than brackets or parentheses to define the structure or hierarchy of its contents.

File contents

We start the manifest.yml by defining a top-level key of dependencies and the type of dependency we want to include.

dependencies:
  python:

Python Packages

Here we can see a simple example that defines the requests and gensim Python packages as required dependencies.

dependencies:
  python:
    - requests
    - gensim

When a Skill with this manifest.yml file is being installed, Mycroft would check for, and if required install, both packages from using the PIP installer.

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.

Linux System Packages

Linux packages are defined under the system key. As Mycroft can be installed on many different Linux distributions, support is provided for a range of package managers.

For packages that have consistent naming across package managers, we can use all.

dependencies:
  system:
    all: pianobar piano-dev

If the package has a different name on specific platforms, we can define that using the name of the package manager as a key. In the following example, we want to use the libpiano-dev package when using the APT package manager on Debian, Ubuntu and other related distributions.

dependencies:
  system:
    all: pianobar piano-dev
    apt-get: pianobar libpiano-dev
dependencies:
  system:
    all: pianobar piano-dev
    apt-get: pianobar libpiano-dev  

  exes:
    - pianobar

Here we have installed a number of pianobar packages, and then verify that the pianobar executable is available for our Skill.

Other Mycroft Skills

A Skill may even require that other Mycroft Skills are installed rather than duplicate functionality. Here we can see that the Cocktails Skill and the Mozilla Webthings Gateway are listed as dependencies.

dependencies:
  skill:
    - cocktails
    - webthings-gateway

Example files

Finally we can check that certain executables are available for the install to succeed. This is done by checking the .

Anything listed in this section will be passed to the for installation. A feature of MSM is that it will search for Skills that most closely match the given string. So even though the mozilla-webthings-gateway Skill has not been perfectly entered, it will still match with a high enough confidence to install the Skill.

A complete manifest.yml example can be found in the .

A simple example from a real Skill can be found in the .

YAML
PyPI
Skills Acceptance Process
PATH environment variable
Mycroft Skills Manager
official Template Skill on Github
Desktop Launcher Skill