Estimated reading time: 2 minutes

This documentation was last modified: Wednesday, August 28th, 2019 at 9:08 pm

Developing Skills for Mycroft

Are you looking for the system-generated documentation for the Mycroft Skills API?


Before starting to develop Skills for Mycroft, you should already have these prerequisites:

An overview of Mycroft components

If you haven’t yet read the overview of Mycroft components, it’s worth doing so.

What makes a good Skill?

There are many components to what makes a good Skill.

  • Fulfilling a need the user has: Good Skills meet one or more needs the user has. Popular Skills are popular because people use them frequently – for instance to set alarms, reminders, and to identify the time in other time zones. On the other hand, a Skill that, say, recites π to a 100 digits might be pretty cool, but when was the last time you needed to know π to 100 digits? Contrast that with the last time you set a reminder on your phone.

  • Having an easy to use voice interface: Just like a web page that has thought put into the user interface is much more pleasant to use, a Skill that has a well designed voice interface is a delight, not a chore, to use. You should anticipate the task the user is trying to accomplish, and how to make that as straightforward as possible.

If you have an idea for a Skill, it’s a great idea to join Mycroft Chat, specifically the ~skills channel, and share what your plans are. You’ll be able to get constructive and helpful feedback on your Skill from an experienced community.

The Mycroft Skill Manager (MSM)

The Mycroft Skills Manager – MSM – is a tool that is being increasingly used to find, deploy and resolve dependencies within Skills. It is important that you make your Skills compliant with msm so that they are easy to find and install in the future.

Help us serve you better by rating this documentation