Ubuntu / Linux news and application reviews.

Betty is like Siri or Google Now for the command line. Well, sort of. The tool translates plain English into commands: it displays the command it runs and obviously, the command output, in the terminal.

Betty isn't voice controlled so you still have to type your (plain English) commands but if you want, it can speak the command output.

Betty command line

Update: the Betty Internet functionality does not currently work, at least in recent Ubuntu versions. However, you'll find a fix for this below.

Betty's mission is, according to its GitHub page, to "provide a way to use computers through natural language input":

"Specifically, the benefit is being able to do things on your computer without leaving the command line or screwing around on the internet trying to find the right command. Betty just works".

For example, if you can't remember the exact compress and uncompress commands (and avoid sittuations like THIS), you can simply ask Betty to do it:
betty uncompress archive.tar.gz
Of course, the commands supported by Betty at this time is pretty limited since the tool is under two weeks old, but it should improve quite fast since it's not that hard to add new commands (and there are 17 contributors already).

Betty 0.1.5 supports a wide variety of commands, such as:
  • count (number of characters in a file, number of words in a directory, etc.);
  • config (change your name);
  • datetime (current time, date, etc.);
  • Find (find in files);
  • Internet / web queries (download some file, find out what's the weather like, etc.);
  • file / directory operations (compress/uncompress files, show file size, change permissions, etc.);
  • processes;
  • user commands (what's my username, real name, ip address, who else is logged in, etc.);
  • control iTunes and Spotify;
  • more.

Here are a few Betty examples:

$ betty whats my username
Betty: Running whoami

$ betty how many words are in gnome3 
Betty: Running find gnome3 -type f -exec wc -w {} \; | awk '{total += $1} END {print total}'

$ betty download http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-amd64.iso to ubuntu-14.10-daily.iso
Betty: Running curl -o ubuntu-14.10-daily.iso http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-amd64.iso

$ betty give me permission to this directory
Betty: Running sudo chown -R `whoami` .

$ betty turn web mode on
Betty: Web queries ON
$ betty whats the weather like in Bucharest
Asking the internet...
Betty: Bucarest, Bucuresti: It is currently patchy light rain in area with thunder, 63 Fahrenheit

$ betty turn web mode on
Betty: Web queries ON
$ betty translate "command line" to Spanish
Asking the internet...
Betty: Línea de comandos

And of course:
$ betty whats the meaning of life
Betty: 42.

A complete list of supported commands is available @ GitHub (under Documentation).

Update: fix for Betty Internet queries not working in recent Ubuntu versions

The Betty Internet commands do not work by default in recent Ubuntu versions (and possibly other Linux distributions as well). 

To fix it, you'll need to apply a patch. You can do this using the following commands (which assume you've extracted Betty in the "betty" folder in your home directory):
cd ~/betty
wget https://raw.githubusercontent.com/hotice/webupd8/master/betty-ssl-fix.patch
patch -p1 < betty-ssl-fix.patch

fix via

Install Betty

1. Install Ruby (required to use Betty) and curl (required by some Betty commands). In Ubuntu, install them using the following command:
sudo apt-get install ruby curl

2. Install git and download the latest Betty using the following commands:
sudo apt-get install git
cd && git clone https://github.com/pickhardt/betty

Or, to download Betty without using Git, grab THIS archive, extract it in your home folder and rename the extracted folder to "betty".

3. And finally, you'll have to add the path to the "betty/main.rb" file as an alias for "betty" in your ~/.bashrc file (Zsh users: use ~/.zshrc instead of ~/.bnashrc). Do this automatically (assuming you've downloaded Betty in your home folder!) by using the following commands:
echo "alias betty=\"~/betty/main.rb\"" >> ~/.bashrc
source ~/.bashrc

To contribute, submit bug reports, check out the latest code and the official installation instructions, see the Betty GitHub page.