Skip to content
Natural language virtual assistant using Node.js + Bootstrap
JavaScript HTML CSS Shell
Branch: master
Clone or download
timstableford Merge pull request #58 from timstableford/fix/crash_with_single_skill
Fixed crash when all but one skill is removed
Latest commit 92db7d6 Apr 4, 2018 - Voice Controlled Personal Assistant

Join the chat at Donate

Natural language virtual assistant using Node + Bootstrap


alt tag

Video Introduction To The Project


  • Node 6
  • Python >= 2
  • Yarn / npm



Install Yarn

Clone repo, cd into its directory and type yarn & yarn start

Add api info for and to config/index.js

Open Chrome and enter http://localhost:4567/

Say Hey Brain, Brain or Okay Brain followed by your query (i.e Hey Brain, What is the weather in Paris).

Install - Extra Windows Instructions

Install Python:

Install Node.js v6:

Install Windows Build Tools: npm install --global --production windows-build-tools


Adding Skills

Add a skill by creating a new folder with the name of your new skill and adding an index.js.

Add functions for intent and {skill_name}_resp to that index, the latter contining the logic that will respond to a query. The {skill_name}_resp function must have a response type of String

In intent add return {keywords:['key 1','key 2'], module:'{skill_name}'} where keywords are the phrases you wish the skill to respond to and {skill_name} is the name of your new skill.

Add module.exports = {intent, get: {skill_name}_resp}; to the end of your index.js

Add that new folder to the skills directory in the project.

And bang, Brain will automatically import and enable your new skill!


For more detail on adding skills see the Wiki page Adding Skills.


Web Client

http://localhost:4567/api/ask?q={query} http://localhost:4567/ http://localhost:4567/settings.html http://localhost:4567/users.html

Raspberry Pi Client

The Raspberry Pi Client for this project is available here:


Coming Soon!

Android Client

iOS Client


You can run this application via Docker. Prequisites are that you have docker installed and cloned this repository locally. Then execute the following command to create an docker image called p-brain and a container called p-brain.

docker build -t p-brain .
docker run --name=p-brain --net=host -v `pwd`:/home/app -v /home/app/node_modules -p 4567:4567  p-brain npm start

After doing this you can stop the container by running docker stop p-brain. Starting it again is done by running docker start p-brain.

Easter eggs

  • One can ask brain about 'trip to mordor'
  • or 'what is love'
You can’t perform that action at this time.