Skip to content
Voxa is a framework that uses state machines to create elegant cross platform conversational experiences.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Alexa video directive (#216) Mar 18, 2019
test Alexa video directive (#216) Mar 18, 2019
.codeclimate.yml Code Smells Fixes (#155) Sep 21, 2018
.editorconfig editor config file (#13) Mar 10, 2017
.gitignore Adding support for the elicit dialog directive in alexa. (#210) Mar 8, 2019
.ignore Typescript (#88) Jan 11, 2018
.npmignore Adds npmignore files Apr 30, 2019
.nvmrc V3 (#99) Apr 25, 2018
.nycrc Updates Google Assistant to allow for multiple simple responses (#211) Mar 6, 2019
.travis.yml Adding,, tests and package.json. Jun 28, 2016
Makefile More work and tests for the botframework platform (#154) Sep 12, 2018 touch for build Aug 13, 2018
_config.yml Set theme jekyll-theme-architect Feb 23, 2017
package.json Merge branch 'master' into dev May 10, 2019
tsconfig.json Updates Google Assistant to allow for multiple simple responses (#211) Mar 6, 2019
tslint.json Code Smells Fixes (#155) Sep 21, 2018
yarn.lock Adds npmignore files Apr 30, 2019


Build Status Coverage Status Documentation npm Gitter

A fsm (state machine) framework for Alexa apps using Node.js


Voxa is an Alexa skill framework that provides a way to organize a skill into a state machine. Even the most complex voice user interface (VUI) can be represented through the state machine and it provides the flexibility needed to both be rigid when needed in specific states and flexible to jump around when allowing that also makes sense.

Why Voxa vs other frameworks

Voxa provides a more robust framework for building Alexa skills. It provides a design pattern that wasn’t found in other frameworks. Critical to Voxa was providing a pluggable interface and supporting all of the latest ASK features.


  • MVC Pattern
  • State or Intent handling (State Machine)
  • Easy integration with several Analytics providers
  • Easy to modify response file (the view)
  • Compatibility with all SSML features
  • Works with companion app cards
  • Supports i18n in the responses
  • Clean code structure with a unit testing framework
  • Easy error handling
  • Account linking support
  • Several Plugins


Install from npm

npm install --save voxa


const Voxa = require('voxa');

// Controllers use views to send responses to the user
const views = {
  LaunchIntent: { tell: 'Hello World!' },

// initialize the skill
const skill = new Voxa({ views })

// respond to a LaunchIntent
skill.onIntent('LaunchIntent', (event) => {
  return { reply: 'LaunchIntent' };

// lambda handler
exports.handler = skill.lambda();


An extensive test suite with more than 90% code coverage

npm run test

JS Code linting

npm run lint


You can’t perform that action at this time.