Build Your Skill

The Alexa Skills Kit (ASK) includes development tools and libraries to build Alexa skills. After you choose your voice interaction model and know what type of skill you want to develop, you can get started building your skill. For details about skill types and links to documentation for your skill type, see Index of Skill Types.

Prerequisites to build a skill

To build any type of Alexa skill, you need an Amazon developer account. You can use an existing Amazon account to sign in, or you can create a new Amazon account. For most skill types, you also need an Amazon Web Services (AWS) account.

To develop your skill code, you need the following resources:

With a pre-built voice interaction model

To build a skill by using one of the pre-built voice interaction models, you need the following resources:

  • An Internet-accessible endpoint for hosting your cloud-based service. Most skill types that use the pre-built voice interaction model must use AWS Lambda to host the skill code. Create a Lambda function on your personal AWS Lambda resources.

  • A development environment appropriate for the programming language you plan to use to code your skill. You can author a Lambda function in Node.js, Java, Python, C#, or Go.

  • For Smart Home skills, a cloud-enabled device that you want to control (such as a light, switch, or thermostat) and a cloud-based service or hub to control your device.

  • For Music, Radio, Podcast, Video, Meeting, and Education skills, a cloud-enabled service provider.

  • For Flash Briefing skills, an Internet-accessible content feed that refreshes with new content on an ongoing basis.

  • Optionally, an Alexa-enabled device for testing. Skills work with all Alexa-enabled devices, such as the Amazon Echo, Amazon Echo Dot, Echo Show, Fire TV Cube, Fire TV, and devices that use the Alexa Voice Service (AVS).

    If you don't have a device, you can test your skill without a device. You test by using the Alexa simulator in the developer console or in Visual Studio Code.

  • A configuration for account linking between your skill account and the Alexa app, if applicable.

With a custom voice interaction model

To build a skill by using a custom voice interaction models, you need the following resources:

  • An Internet-accessible endpoint for hosting your cloud-based service.

    If you choose the Alexa-hosted option, Alexa hosts your skill on AWS Lambda. Your skill runs as a Lambda function. The skill gets access to an Amazon S3 bucket for storing media and an Amazon DynamoDB table for persisting data. For more details about the Alexa-hosted option, see Build a Skill End-to-end Using an Alexa-hosted Skill.

    Another option is to provision your own backend resources on AWS, and then host your skill on AWS Lambda. For details, see Host a Custom Skill as an AWS Lambda Function.

    Or, you can build and host your skill as an HTTPS web service. For this option, you need a cloud hosting provider and an SSL certificate. For details, see Host a Custom Skill as a Web Service.

  • A development environment appropriate for the programming language you plan to use to code your skill. If you choose the Alexa-hosted skill option, you write your code in Node.js or Python. You can author a Lambda function in Node.js, Java, Python, C#, or Go. You can author a web service in any language appropriate for web services.

  • A publicly accessible web site to host any images, audio files, or video files that you use in your skill. If you choose Alexa-hosted backend resources, Alexa allocates an Amazon S3 bucket to store content.

  • Optionally, an Alexa-enabled device for testing. Skills work with all Alexa-enabled devices, such as Amazon Echo, Amazon Echo Dot, Fire TV, and devices that use the Alexa Voice Service.

    If you don't have a device, you can test your skill without a device by using the Alexa simulator in the developer console or in VS Code.

  • A configuration for account linking between your skill account and the Alexa app, if applicable.

For more details, see Understand Custom Skills.

Tools to build Alexa skills

Use one or more of the following options to create and configure a skill:

  • The Alexa developer console, a graphical user interface (GUI) to create, manage, and publish skills.
  • The ASK CLI to perform most Alexa skills tasks from the command line.
  • The Skill Management API to perform skill management tasks programmatically by using RESTful HTTP interfaces.
  • AWS Tools to create, build, and manage Alexa skills with cloud-based tools from AWS.

Features you can add to your skill

The following features are available to include in your skill based on your skill type and skill functionality:

Additional resources

Use the following additional resources to help you learn how to build an Alexa skill: