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
  • Prerequisites
  • Understand the flow of your Skill
  • Mycroft Skills Kit (MSK)
  • MSK Create

Was this helpful?

  1. Skill Development
  2. Development Setup

Your First Skill

Ready to create your first Skill? See how easy it is to get a new Skill up and running, then we will step through the basic anatomy of a Mycroft Skill.

PreviousPython ResourcesNextSkill Structure

Last updated 3 years ago

Was this helpful?

Prerequisites

If you haven't already, check out our . This walk through assumes you:

  • Know some basic knowledge of ,

  • have an account on , and

  • have a .

Understand the flow of your Skill

It's a good idea to start by writing down how your Skill will work, including

  • What words will the User speak to activate the Skill?

  • What will Mycroft speak in response?

  • What data will you need to deliver the Skill?

  • Will you need any additional packages or dependencies?

Once you've given these some thought, you can get started.

Mycroft Skills Kit (MSK)

If you receive a "command not found", then you will need to run msk manually from your mycroft-core directory. Anytime you see mycroft-msk in our documentation you must replace this with:

MSK Create

mycroft-msk create is an interactive script that asks you a few questions and generates a new Skill template. This template can immediately be used as a Skill, however you will most likely want to extend its functionaity.

To create your first Skill, you will be asked for a:

  1. Example phrases (known as utterances) Utterances that you expect Users to say to Mycroft, that your Skill will respond to.

  2. Response dialog The dialog that your Skill will respond with.

  3. Short description A one-line description, less than 40 characters long.

  4. Long description This can be as short or as long as you like.

  5. Author This is most often your name, and / or Github @username

  6. Tags Tags provide an additional means for Users to search for or discover relevant Skills. Unlike categories, you can set your tags to anything you like.

If you have completed all of these steps, your Skill will have been created in the /opt/mycroft/skills directory on your device.

In the next section, we will explore each component that makes up your Skill.

To setup the foundations of your Skill, we will use the that comes installed with Mycroft. If you chose the defaults during installation, you can run MSK from your Terminal using the command: mycroft-msk. Running this command without any arguments will provide a brief overview of what you can do with MSK.

Name To be readable within the space available on the the name should be short, generally under 22 characters in length. The name must also be unique. You can check the to see what other Skills already exist.

Categories The categories your Skill belongs to. It's important to note that the first category you select will be set as the default category. This is where your Skill will most often appear in the Marketplace.

After inputting this data you will be asked if you would like a Github repo created for your Skill. This provides an easy way to store your Skill, and will be required if you choose to .

Mycroft Skills Kit (MSK)
Mycroft Skills Marketplace
Marketplace
Mycroft Skills Marketplace
publish your Skill in the Marketplace
Introduction to Skill Development
Python programming
Github.com
working version of Mycroft
Video Tutorial: Mycroft Skills Kit