A Javascript framework to build Alexa Skills expriences easily.

Usage no npm install needed!

<script type="module">
  import chitchatjsAlexa from 'https://cdn.skypack.dev/@chitchatjs/alexa';



🤖 JavaScript framework for building voice user interfaces for Alexa Skills. | 📄 Read the documentation

Package NPM Build
@chitchatjs/cli npm version Build Status
@chitchatjs/alexa npm version Build Status
@chitchatjs/core npm version Build Status

Get in touch



Chitchat requires the following dependencies:


npm i @chitchatjs/alexa --save

Writing a simple skill

To get started, simply write this in your index.ts

import { ax } from "@chitchatjs/alexa";

let state = ax.start().block(ax.say("Hello world")).build();

// create our skill using the state above
let skill = ax.skill().addState(state).build();
exports = ax.dialogManager(skill).exports();


U: open <skill-name>
A: Hello world

Let's add a dialog turn to ask user their name:

let state = ax
      .add(ax.whenLaunch().then(ax.ask("Hello, what is your name?").build()).build())
          .whenUserSays(["my name is {name}"])
          .withSlotType("name", builtins.SlotType.FirstName)
          .then(ax.say("Welcome, {name}! It's nice to talk to you."))


U: open <skill name>
A: Hello, what is your name?
U: my name is kevindra
A: Welcome, kevindra! It's nice to talk to you.

Build and deploy using ChitchatJS CLI:

> tsc
> cjs build
> cjs deploy

That's it!

Deploy to your stack using code

Wrap this in your stack module and deploy as code:

const handler = ax.dialogManager(skill).handler();

AWS Lambda

import { Function, Runtime, AssetCode, Code } from "@aws-cdk/aws-lambda";

// ...
this.lambdaFunction = new Function(this, props.functionName, {
  functionName: props.functionName,
  handler: "handler.handler",
  runtime: Runtime.NODEJS_10_X,
  code: new AssetCode(`./src`), // points to your skill module
  memorySize: 512,
  timeout: Duration.seconds(10),

Express JS

import * as express from "express";
import skill from "./src/skill";

const app = express();
const port = 3000;

app.get("/", skill.express());

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);


  1. chitchat.js core library
  2. chitchat.js alexa library
  3. chitchat.js cli

Sample Skills

  1. Hello bot
  2. Dog Matcher
  3. High log game
  4. Coffee shop
  5. Workout Buddy


  1. @chitchatjs/plugin-ax-common
  2. @chitchatjs/plugin-ax-session
  3. @chitchatjs/plugin-ax-display
  4. @chitchatjs/plugin-ax-card

Check the official documentation of available building blocks and much more here - https://chitchat.js.org/