Development Setup
Explore the fundamental building blocks of a Skill, and the knowledge required to create meaningful and engaging voice interactions.
Last updated
Was this helpful?
Explore the fundamental building blocks of a Skill, and the knowledge required to create meaningful and engaging voice interactions.
Last updated
Was this helpful?
Mycroft Skills are the voice applications that provide different functionality for users. To create a Skill requires at least basic technical experience, a Mycroft installation or device, and an idea of what your Skill will do, and how people will use it.
Skills for Mycroft are written using the . A simple Skill can be a great way for new developers to try Python out in a real project, whilst experienced programmers will quickly see the powerful possibilities available in a well crafted Skill.
If you aren't familiar with the basics of Python, check out our to get you started. If you've programmed in other object-oriented languages, like Javascript or C#, then you'll be able to pick it up, but if you're totally new to programming, you might want to look at an .
Skills are hosted on , so you will need to create an account there if you don't already have one. It is good to have an understanding of the , however the also automates some of the more complex aspects of managing a Github repository (or repo).
To test your Skill out, you will need to . Mycroft can be installed on your computer, a Raspberry Pi using Picroft, or a dedicated device like the Mycroft Mark 1. Mycroft also comes with a number of helpful tools to create new Skills, host them on Github, run integration tests, and submit them for inclusion in the . If you aren't yet familiar with how Mycroft works, check out the to understand the many technologies that come together to provide an intelligent voice assistant.
Good Skills meet one or more of the user's needs. Popular Skills are popular because people use them frequently - for instance, to set alarms, reminders, or to identify the time in other time zones. On the other hand, a Skill that, say, recites π to 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.
Just like a web page with a thoughtfully-designed interface is much more pleasant to use, a Skill with 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 haven't already, be sure to read our Voice User Interface Design Guidelines:
You'll notice some new terms as you start to develop Skills.
utterance - An utterance is a phrase spoken by the User, after the User says the Wake Word. what's the weather like in Toronto?
is an utterance.
dialog - A dialog is a phrase that is spoken by Mycroft. Different Skills will have different dialogs, depending on what the Skill does. For example, in a weather Skill, a dialog might be the.maximum.temperature.is.dialog
.
intent - Mycroft matches utterances that a User speaks with a Skill by determining an intent from the utterance. For example, if a User speaks Hey Mycroft, what's the weather like in Toronto?
then the intent will be identified as weather and matched with the Weather Skill. When you develop new Skills, you need to define new intents.
If you have an idea for a Skill, it's a great idea to join , specifically the channel, and share what your plans are. You'll be able to get constructive and helpful feedback on your Skill from an experienced community.
If you encounter anything else you're not familiar with, checkout the .