The Alexa Skills Kit Command Line Interface (ask-cli) is used to create, manage, and deploy Alexa skills from the command line. Please see the full documentation from ASK CLI quick start guide.
Note: To use ask-cli for
Alexa-Hosted skill, please check our instructions for the usage.
1. Install CLI
$ npm install -g ask-cli
2. Configure CLI profile
Before you can start using the ASK CLI, configure your ASK (and AWS) credentials:
$ ask configure
You’ll be prompted to sign into your Amazon developer account. If you choose to have your skill hosted by AWS, you’ll have the option of linking your AWS account as well.
3. Create new skill project
Create a new skill project and follow the prompts from the command:
$ ask new
You'll be asked to select a deployment method for your skill. Currently we support deployment via AWS CloudFormation (@ask-cli/cfn-deployer), deployment via AWS Lambda (@ask-cli/lambda-deployer), and deployment through Alexa-Hosted skill (@ask-cli/hosted-skill-deployer).
Your new skill project will provide a number of files and folders that make up the structure of an Alexa skill. Here is an overview on each of the files and folders that are created by default:
|skill-package/||Skill resources utilized by the ASK platform such as skill manifest, interaction models, and assets|
|lambda/||Contains the source code for your skill that utilizes the ASK SDK|
|infrastructure/||Contains your CloudFormation definitions for deploying your skill to AWS|
|ask-resources config||Configuration for your Alexa skill project|
See the ASK SDKs documentation to learn more about how to build an Alexa skill.
4. Deploy Alexa skill
In order for Alexa to communicate with your skill code, it will need to be deployed and hosted on the cloud using this command.
$ ask deploy
The deploy command performs the following steps:
skill-package/resources will be zipped and uploaded to the ASK platform via SMAPI's Skill Package Service.
lambda/source files will be built and zipped for deployment to AWS. We currently support the build flows of npm for Nodejs, pip for Python and maven for Java developers.
infrastructure/definitions will be used to provision resources on AWS. The
lambda/'s zip file from the previous step will be deployed to the provisioned AWS Lambda function. The gif below shows the deployment using
@ask-cli/cfn-deployer, you can also try other deployers as they serve different purposes.
5. Dialog with what you build
To test while developing your skill locally, or quickly showcase your skill ideas, or even build end-to-end testing, you can use CLI's dialog command.
$ ask dialog