node-wit Node.js SDK

Usage no npm install needed!

<script type="module">
  import nodeWit from '';


Wit Node.js SDK npm

node-wit is the Node.js SDK for


In your Node.js project, run:

npm install --save node-wit


Run in your terminal:

# Node.js <= 6.x.x, add the flag --harmony_destructuring
node --harmony_destructuring examples/basic.js <MY_TOKEN>
# Node.js >= v6.x.x
node examples/basic.js <MY_TOKEN>

See examples folder for more examples. Some examples have associated .zip files, do not forget to import those when creating a new app and grab your access token from the Settings section.

Messenger integration example

See examples/messenger.js for a thoroughly documented tutorial.


The Wit module provides a Wit class with the following methods:

You can also require a library function to test out your bot in the terminal. require('node-wit').interactive

Wit class

The Wit constructor takes the following parameters:

  • accessToken - the access token of your Wit instance
  • logger - (optional) the object handling the logging.
  • apiVersion - (optional) the API version to use instead of the recommended one

The logger object should implement the methods debug, info, warn and error. They can receive an arbitrary number of parameters to log. For convenience, we provide a Logger class, taking a log level parameter


const {Wit, log} = require('node-wit');

const client = new Wit({
  accessToken: MY_TOKEN,
  logger: new log.Logger(log.DEBUG) // optional

console.log(client.message('set an alarm tomorrow at 7am'));


The Wit message API.

Takes the following parameters:

  • message - the text you want to extract the information from
  • context - (optional) the object representing the session state


const client = new Wit({accessToken: 'MY_TOKEN'});
client.message('what is the weather in London?', {})
.then((data) => {
  console.log('Yay, got response: ' + JSON.stringify(data));


Starts an interactive conversation with your bot.


const {interactive} = require('node-wit');

See the docs for more information.

Changing the API version

On May 13th, 2020, the GET /message API was updated to reflect the new data model: intents, traits and entities are now distinct. We updated the SDK to the latest version: 20200513. You can target a specific version by passing the apiVersion parameter when creating the Wit object.

  "text": "hello",
  "intents": [ {
    "id": "1353535345345",
    "name": "greet",
    "confidence": 0.9753
  } ],
  "entities": [],
  "traits": []

Running tests

  1. Create a new app in web console using tests/
  2. Copy the Server Access Token from app settings
  3. Run WIT_TOKEN=XXX npm test, where XXX is the Server Access Token


The license for node-wit can be found in LICENSE file in the root directory of this source tree.