Skip to content

alexa/ask-cli


Alexa Skills Kit Command Line interface

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.

Getting Started

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:

File/Folder Description
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:

  1. skill-package/ resources will be zipped and uploaded to the ASK platform via SMAPI's Skill Package Service.
  2. 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.
  3. 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