This documentation has live examples and it’s preferable to browse this site on a desktop browser.

50 GBP to USD
50 GBP is 68.65 USD
Weather in Bangkok
Currently 26c, Mostly Cloudy in Asia, Bangkok
Go to training
Taking you to Intent training


GI uses NodeJS 8.x and the code has only been tested on Linux Mint. Install node.js from It is also recommended to use nvm (node version manager) to manage your node.js versions.

Step one

Create a directory on your computer and clone the git repository.

cd ~
mkdir gi
cd gi
git clone server
cd server
npm install
cp app/Config/config.example.js app/Config/config.js
node server.js

The server should now be running with default settings. It’s recommended to change the access keys in the configuration file.

Step two

Once the server is running open another terminal window go back to your gi directory created in step one.

Make sure you are not in the server directory!

cd ~/gi
git clone cli
cd cli
npm install
cp config.example.js config.js

Step three

Say something in the cli you just ran!

You should now be talking directly to the GI server.

Development Tips

Using nodemon with both the server and test cli client.

When any code is updated the server and / or client will be restarted.

nodemon server.js

Key Components


A set of entities, intents and data sets


Data source for training the system and parsing parameters from user input


Business logic for the users input


The interface between GI and the end-point, e.g. Facebook Messenger


Parsed user input with entity data


Matching user input to an intent using trained data


Intents train classifier collections for Understand


Handles the user input, finding which intent to use and calling the intent


Additional meta information send to the client such as buttons and cards


An event that happens within GI core and can be listened to


We welcome contributions from developers to fix bugs, enhance existing features and creating new features for the chat bot. If you’re just getting started check out the project Github Issues for a list of improvements, bugs and wild ideas!

Areas of interest

  • Clients
  • Example intents
  • Skills
  • Entities and data
  • NLP improvements
  • Database layer / ORM improvements
  • Documentation
  • Reporting issues

How to Contribute

  1. Fork the code from master
  2. Create a branch (git checkout -b my-branch)
  3. Commit your changes (git commit -m “My fix or feature”)
  4. Push to the origin branch (git push origin my-branch)
  5. Create a new Pull Request

Reporting Issues

Github Issues is used for managing bugs, improvements and future ideas.

For all improvements and feature requests that the following format is adheared to as often as possible for the description.

Who the issue is affecting or the target audience for the issue

Not required if it's a bug
Why the issue is required or why the target audience needs it

Detailed information about the issue.
User stories and example dialog.

An example for creating a “Ping” Skill.

Onboarding new developers to the framework

There is a learning curve for GI so providing a simple example skill with an intent is useful

As a new developer who downloads GI I want to learn how to build my first skill.
As a reference I go into my app skills directory and can see the "Ping" skill.
I then copy this directory, rename the skill, filenames and can make my own skill with an intent quickly