Command-line interfaces are a hassle. It just tests our memory instead of logic. As programming professionals, we always felt there should be someone who helps us with all other mundane tasks like opening, running, analyzing projects, etc, so we can focus on the logic. This is where HeyBro comes into picture!
What it does
HeyBro is an intelligent personal assistant who resides in the command line, and we can ask it to do mundane tasks. There are no particular commands like a typical common line interface. Instead, just type in whatever you want to do, and it utilizes Wit.ai's NLP processing to identify what user intents and executes commands to fulfill the needs. Simply put, type in "run this project" or "execute it" or "can you start this" and code will be executed. Similarly "give me an analysis of this project" or "examine it" will do an examination of the project. Basically ask HeyBro what is your need and get it done.
How I built it
Challenges I ran into
Running some commands with NodeJS was tricky. Like running a project. A great amount of time was spent on researching this. And there were lots of edge cases like there tons of programming languages and libraries and supporting everything requires hectic effort. But we limited our scope for the first version to tackle this.
Accomplishments that I'm proud of
HeyBro can now do basic analysis, open, and run (NodeJS at the moment, but it is easily extendible to other languages) on projects. Wit.ai's NLP capabilities are so impressive as training our model is such a breeze. Above all this is a project that we, as programmers will use on day to day basis from now on. And we are pretty sure that with some optimization, this project can take out many repetitive tasks from our schedule, which will help us focus on things that really matter.
What I learned
NLP has a huge potential to make our life easier, and imagination is the limit. We will try to integrate NLP wherever possible to ease interactions from now on.
What's next for HeyBro - Programmers Personal Assistant
- Automatic project language detection with support to more languages
- Improve project analysis
- Linked commands. Eg: we can just tell HeyBro to "add a commit message 1234fixed and push to master" and HeyBro will detect it is a git command, switch to master, perform a
git add .and
git commit -m "1234fixed"then push it to remote.
- More useful traditional command-line replacement commands, like "rename this file abc.txt to 123.txt"
- More activities, by analyzing user queries