• Stars
    star
    104
  • Rank 319,049 (Top 7 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ASK Toolkit is an extension for Visual Studio Code (VSC) that that makes it easier for developers to develop and deploy Alexa Skills.


Alexa Skills Toolkit for Visual Studio Code

Alexa Skills Toolkit for Visual Studio Code is an extension that makes it easier for you to create, test, and deploy Alexa skills. It provides a dedicated workspace for Alexa Skills in VS Code and provides features for managing and previewing APL documents along with the ability to test and debug your skills in VS Code with local debugging.

See the getting started documentation

Requirements

  1. To create and deploy Alexa-hosted skills, download Git and install it. We recommend the latest version of git to have a seamless experience.
  2. Install and configure VSCode Python extension, if you plan to develop skills using python.
  3. ASK Toolkit (v2.5.0 and above) works with Visual Studio Code IDE (version 1.53.0 or higher), please make sure you have the latest version installed.

Note : ASK CLI is no longer a requirement for the extension and the commands are no longer available in the VSCode Command Palette. Please install and use the ASK CLI directly.

Quick Start

Sign in to your Amazon Developer account


Sign-In Preview

Create a skill


Create Skill

Create and preview APL documents


Create APL doc

Setup local debugging


Local debugging

Test skill through local simulator


Local simulator

Deploy and build skill

Deploy an Alexa hosted skill


Deploy Alexa hosted skill

Deploy a self hosted skill


Deploy self hosted skill


Features

  • Set up skill project

    • Quickly set up an Alexa skill project by creating a skill or downloading an existing skill or opening a local skill. Any skill that follows the ASK CLI v2 skill structure is supported. Use the Skill Management tab under the extension, to try these out.
    • Once opened, your skill project will appear under the Skills pane in the extension sidebar.
    • Alexa Skills Toolkit supports creation of both Alexa-hosted and self-hosted skills. To create a self-hosted skill, you can select Provision your own to host your skill's backend resources.
  • Build or Download Interaction Model

    • Edit the Interaction Model JSON under Skill Package folder of your skill project.
    • Alternatively, download the updated Interaction Model JSON from developer console using the Download option under Skills pane -> YourAwesomeSkill -> Interaction model.

Note: Currently, only saved and built interaction models can be downloaded from developer console.

  • Build or Download Skill Manifest

    • Edit the Skill Manifest JSON under Skill Package folder of your skill project.
    • Alternatively, download the updated Skill Manifest JSON from developer console using the Download option under Skills pane -> YourAwesomeSkill -> Skill manifest.
  • Create, Download & Preview APL Documents

    • Create new APL documents using the Create option under Skills pane -> YourAwesomeSkill -> Alexa Presentation Language (APL).
    • Download saved APL documents in the APL Authoring tool, using Download option under Skills pane -> YourAwesomeSkill -> Alexa Presentation Language (APL).
    • Preview APL documents in Skill Package, using Preview option under Skills pane -> YourAwesomeSkill -> Alexa Presentation Language (APL).
    • Optionally, change the viewport of the preview to a different device, using Change viewport profile option under Skills pane -> YourAwesomeSkill -> Alexa Presentation Language (APL).
  • Test & Debug Skills Locally

    • Add default Node/Python debug configurations in your skill's launch.json debug configuration file, install dependencies (ask-sdk-local-debug) and start a local debug session. More information can be found on the getting started documentation
    • Simulate alexa requests through local simulator in the extension.
    • Save and replay the simulate session through the local simulator.

Note: If you are using any existing profiles, we recommend you to recreate them again from the Skill Management tab -> hamburger (...) menu -> Profile Manager view, so that the profile will contain all LWA scopes needed for local debugging.

  • Deploy your skill
    • Deploy all changes in your skill, using the Deploy skill option under the Skills pane -> YourAwesomeSkill.
    • A skill must be synchronized with changes made in the console in order to deploy. The Skill deploy status overview displays skill local changes and the skill remote sync status to guide you how to successfully deploy.
    • Alexa Skills Toolkit supports deployment of Alexa-hosted skills, using Git. Commit any changes you wish to deploy to your skill's master branch. You can use VS Code built-in Git support or any Git client.
    • Alexa Skills Toolkit also supports the deployment of self-hosted skills. However, only the skill package can be deployed. Depending on how you source control your code, you can download and deploy skill code from and to an existing Lambda function, S3, or a git repository.

Note: Alexa Skills Toolkit does not support deployment of the skill code for a self-hosted skill, but you can set up your own skill service endpoint in the skill.json file. The endpoint will receive POST requests when a user interacts with your Alexa Skills. See FAQs for more information.

  • Documentation

    • Quickly jump to Alexa Skills Kit docs using the links under Documentation pane.
  • Profile Manager

    • Create or delete profiles using Profile Manager under the hamburger menu (...) of Skill Management pane.
    • Quickly jump between multiple developer profiles using the ASK Profile status bar item.

and many more ...


FAQs

  • How do I setup and configure Alexa Skills Kit Toolkit extension when doing Visual Studio Code Remote Development using SSH?

    Note: Install Remote - SSH extension on Visual Studio Code, then connect to remote machine over SSH.

    • Install Alexa Skills Kit Toolkit extension on SSH after connecting to remote machine over SSH.
    • Forward port 9090 on Remote-SSH extension, please refer to Forwarding a port / creating SSH tunnel.
    • Click on the Alexa activity tab icon and sign in.
  • What if I failed to sign in Amazon account over SSH remote development?

  • Why do I get a prompt for Git credentials when an Alexa hosted skill is created or downloaded?

    • The git credential is used to access the AWS CodeCommit repository that the hosted skill resides at. This is one of the AWS resources Alexa-hosted skills service provides when creating a skill, explained here.
    • To get the hosted skills' git credentials, you can call SMAPI API manually, or use the ASK CLI command. The git credentials are short-lived, and need to be refreshed periodically, to keep being able to access the locally cloned hosted skill git.
    • The ASK Toolkit extension is able to automatically configure the credential helper for the hosted skills, and fetch the credentials whenever executing git operations. However, we observed that some specific versions(2.26.x and 2.25.x) of git cannot configure the credential helper properly, leading to the Git credentials prompt.
    • Therefore, we suggest checking your git version using git version. If it is versions 2.25.x or 2.26.x, you need to update to Git >= 2.27.x. This should prevent being asked for Git credentials again.
    • Otherwise, we suggest you create an issue report.
  • How do I set up my own skill service endpoint for a self-hosted skill?

    • You can specify your skill's service endpoint by updating the apis filed in the skill.json. The endpoint will receive POST requests when a user interacts with your Alexa Skills. The JSON snippet below shows how to set up your Lambda endpoint. The code below will set up your endpoint in the Default Region.
    "apis": {
      "custom": {
        "endpoint": {
          "uri": "arn:aws:lambda:us-west-2:123456789012:function:my-function"
        }
      }
    }
    
    • Skill endpoints can also be set up in a specific region. For each AWS region, there is an corresponding optimal ASK region code (NA, EU, FE). See the best practices in choosing Lambda regions for the AWS region codes and corresponding optimal ASK region codes. Using the corresponding optimal codes is recommended and can reduce the overall latency of your skill. The JSON snippet below shows how to specify other regions. In this example, the AWS region code is (us-east-1) and the optimal ASK region code is (NA).
    "apis": {
      "custom": {
        "endpoint": {
          "uri": "arn:aws:lambda:us-west-2:123456789012:function:my-function"
        }
        "regions": {
          "NA": {
            "endpoint": {
              "uri":"arn:aws:lambda:us-east-1:123456789012:function:my-function"
            }
          },
        }
      }
    }
    
  • Why cannot I use the toolkit for deploying ACDL files?

    • ASK Toolkit (v2.4.0 and above) provides syntax highlighting support for Alexa Conversations Descriptive Language (ACDL) files. ACDL is a beta feature and is currently under developer preview.
    • Since ACDL files need additional builds before deploying to the service, and since this development is still in beta phase, we do not yet provide support for the same. As ACDL and the development processes evolve, we will prioritize on improving the support in the toolkit.
    • You will need to install the ASK CLI tool, to manage your ACDL skills. Please follow this documentation for more details.
  • How can I test APL user events and audio output in simulator?

    Note: The APL user events and audio output are available only in MacOS and Windows.

    • ASK Toolkit simulator supports testing APL user events now. To enable this feature, follow Register device instructions to register your device in ASK toolkit.
  • How can I deregister my virtual device?

    • To delete the device in ASK toolkit, please follow Delete device instructions.
    • To deregister the device with your Amazon account, please follow Deregister a Device instructions.
  • The latest version seems to be not installable on my vscode. What is the minimum compatible vscode version for the toolkit?

    • ASK Toolkit (v2.5.0 and above) works with Visual Studio Code IDE (version 1.53.0 or higher), please make sure you have the latest version installed.
  • Why am I getting the error '[token] is not recognized as an internal or external command, operable program or batch file' when trying to start the local debugger?

    • For Windows users, this is sometimes caused by an incompatibility between the Debug Terminal and the way VSCode parses the launch.json configurations. A simple workaround for this is to add "console": "integratedTerminal" to the debug configuration in your launch.json file, like the following:
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Alexa Skill (Node.js)",
            "type": "node",
            "request": "launch",
            "program": "${command:ask.debugAdapterPath}",
            "args": [
                "--accessToken",
                "${command:ask.accessToken}",
                "--skillId",
                "${command:ask.skillIdFromWorkspace}",
                "--handlerName",
                "handler",
                "--skillEntryFile",
                "${workspaceFolder}/lambda/index.js",
                "--region",
                "FE"
            ], 
            "console": "integratedTerminal" //Add this
        },
    

Got Feedback?

We would like to hear about your bugs, feature requests, questions or quick feedback.


License

The Alexa Skill Toolkit for VSCode extension is distributed under the Apache License, Version 2.0. Any marks/logos displayed as part of the extension GUI are not licensed under an open source license, but instead subject to Amazon’s Trademark Guidelines, available here.

Data & Telemetry

The Alexa Skill Toolkit for VSCode extension collects usage data and sends it to Amazon to help improve our products and services. This extension respects the Ask: Telemetry Enabled / ask.telemetryEnabled setting under the extension settings.

More Repositories

1

alexa-skills-kit-sdk-for-nodejs

The Alexa Skills Kit SDK for Node.js helps you get a skill up and running quickly, letting you focus on skill logic instead of boilerplate code.
TypeScript
3,106
star
2

alexa-cookbook

A series of sample code projects to be used for educational purposes during Alexa hackathons and workshops, and as a reference for tutorials and blog posts.
JavaScript
1,845
star
3

avs-device-sdk

An SDK for commercial device makers to integrate Alexa directly into connected products.
C++
1,250
star
4

alexa-skills-kit-sdk-for-java

The Alexa Skills Kit SDK for Java helps you get a skill up and running quickly, letting you focus on skill logic instead of boilerplate code.
Java
811
star
5

alexa-skills-kit-sdk-for-python

The Alexa Skills Kit SDK for Python helps you get a skill up and running quickly, letting you focus on skill logic instead of boilerplate code.
Python
795
star
6

Topical-Chat

A dataset containing human-human knowledge-grounded open-domain conversations.
Python
588
star
7

massive

Tools and Modeling Code for the MASSIVE dataset
Python
527
star
8

bort

Repository for the paper "Optimal Subarchitecture Extraction for BERT"
Python
472
star
9

alexa-auto-sdk

The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles.
C++
288
star
10

dialoglue

DialoGLUE: A Natural Language Understanding Benchmark for Task-Oriented Dialogue
Python
275
star
11

ask-cli

Alexa Skills Kit Command Line Interface
JavaScript
154
star
12

teach

TEACh is a dataset of human-human interactive dialogues to complete tasks in a simulated household environment.
Python
124
star
13

alexa-apis-for-python

The Alexa APIs for Python consists of python classes that represent the request and response JSON of Alexa services. These models act as core dependency for the Alexa Skills Kit Python SDK (https://github.com/alexa/alexa-skills-kit-sdk-for-python).
Python
112
star
14

alexa-with-dstc9-track1-dataset

DSTC9 Track 1 - Beyond Domain APIs: Task-oriented Conversational Modeling with Unstructured Knowledge Access
Python
100
star
15

alexa-dataset-contextual-query-rewrite

This repo includes extensions to the Stanford Dialogue Corpus. It contains crowd-sourced rewrites to facilitate research in dialogue state tracking using natural language as the interface.
83
star
16

alexa-smart-screen-sdk

⛔️ DEPRECATED Active at https://github.com/alexa/avs-device-sdk
75
star
17

Commonsense-Dialogues

A crowdsourced dataset of dialogues grounded in social contexts involving utilization of commonsense.
74
star
18

alexa-apis-for-nodejs

The Alexa APIs for NodeJS consists of JS and Typescript definitions that represent the request and response JSON of Alexa services. These models act as core dependency for the Alexa Skills Kit NodeJS SDK (https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs).
TypeScript
61
star
19

alexa-with-dstc10-track2-dataset

DSTC10 Track 2 - Knowledge-grounded Task-oriented Dialogue Modeling on Spoken Conversations
Python
59
star
20

alexa-for-business

This repository holds sample Alexa skill templates for use in enterprise scenarios and in particular for use with Alexa for Business (aws.amazon.com/a4b). Some samples are more complete, such as the Help Desk skill, but others will be smaller in scope, focusing on specific use cases or integrations.
JavaScript
43
star
21

dstc11-track5

DSTC11 Track 5 - Task-oriented Conversational Modeling with Subjective Knowledge
Python
40
star
22

apl-core-library

APL Core Library enables device makers to create their own "APL viewhost", bringing Alexa experiences with visual renderings to new devices or platforms using any programming language that can invoke C/C++ code.
C++
35
star
23

ask-sdk-controls

The ASK SDK Controls framework builds on the ASK SDK for Node.js, offering a scalable solution for creating large, multi-turn skills in code with reusable components called controls.
TypeScript
34
star
24

dstqa

Code for Li Zhou, Kevin Small. Multi-domain Dialogue State Tracking as Dynamic Knowledge Graph Enhanced Question Answering. In NeurIPS 2019 Workshop on Conversational AI
Python
28
star
25

alexa-apis-for-java

The Alexa APIs for Java consists of JAVA POJO classes that represent the request and response JSON of Alexa services. These models act as core dependency for the Alexa Skills Kit Java SDK (https://github.com/alexa/alexa-skills-kit-sdk-for-java ).
Java
28
star
26

kilm

Python
21
star
27

alexa-end-to-end-slu

This setup allows to train end-to-end neural models for spoken language understanding (SLU).
Python
20
star
28

AIAClientSDK

Device SDK for products that use Alexa Voice Service (AVS) Integration for AWS IoT written in C99. For more information, visit https://docs.aws.amazon.com/iot/latest/developerguide/avs-integration-aws-iot.html
C
19
star
29

apl-viewhost-web

TypeScript
18
star
30

ramen

A software for transferring pre-trained English models to foreign languages
Python
17
star
31

max-toolkit

The MAX Toolkit provides software which aims to accelerate the development of devices which integrate multiple voice agents. The Toolkit provides guidance to both device makers and agent developers towards this goal.
C++
11
star
32

apl-client-library

C++
10
star
33

places

This is the code for our paper: PLACES: Prompting Language Models for Social Conversation Synthesis
Python
10
star
34

apl-suggester

TypeScript
9
star
35

schema-guided-nlg

This repository provides the dataset used in "Schema-Guided Natural Language Generation" by Yuheng Du, Shereen Oraby, Vittorio Perera, Minmin Shen, Anjali Narayan-Chen, Tagyoung Chung, Anu Venkatesh, and Dilek Hakkani-Tur.
9
star
36

visitron

VISITRON: A multi-modal Transformer-based model for Cooperative Vision-and-Dialog Navigation (CVDN)
Python
9
star
37

apl-viewhost-android

C++
9
star
38

xlgen-eacl-2023

Python
9
star
39

factual-consistency-analysis-of-dialogs

A human annotated dataset that determines if neural generated responses are factually inconsistent with a knowledge snippet.
9
star
40

gravl-bert

pytorch implementation for GraVL-BERT paper
Python
8
star
41

skill-components

Public repository for Alexa Conversations Description Language (ACDL) Reusable components
TypeScript
7
star
42

wow-plus-plus

WOW++ is a knowledge-grounded dataset containing multiple relevant knowledge sentences for the last turn within a dialog
7
star
43

amazon-pay-alexa-utils-for-nodejs

TypeScript
6
star
44

alexa-dataset-redtab

5
star
45

alexa-point-of-view-dataset

Point of View (POV) conversion dataset. Messages spoken to virtual assistants are converted from sender perspective to virtual assistant's perspective for delivery.
HTML
5
star
46

alexa-smart-screen-web-components

A node.js framework for commercial smart screen device makers to integrate Alexa multi-modal features into their products.
TypeScript
5
star
47

conture

ConTurE is a human-chatbot dataset that contains turn level annotations to assess the quality of chatbot responses.
4
star
48

amazon-voice-conversion-voicy

This repository contains audio samples from the paper “Voicy: Zero-Shot Non-Parallel Voice Conversion in Noisy Reverberant Environments”
HTML
4
star
49

apl-translator-lottie

TypeScript
3
star
50

unreliable-news-detection-biases

Python
3
star
51

alexa-conversations-reusable-dialogs

2
star
52

alexa-with-dstc9-track1-new-model

Python
1
star
53

avs-sdk-oobe-screens-demo

Demo for Alexa Voice Service OOBE flow for screen-based devices. To be used with the AVS Smart Screen SDK.
JavaScript
1
star