Command Line Little Helper: CLI Companion

Dmitri Popov

Productivity Sauce

Oct 14, 2010 GMT
Dmitri Popov

Whether you are a command line newbie or a proficient terminal user, you'll probably appreciate CLI Companion. This nifty little tool couples the terminal with a database of frequently-used commands. So if you need to execute a specific command, you don't have to type it manually and remember all its parameters. Instead, select the command from the list and hit the Apply button.

CLI Companion comes with a comprehensive list of commands, and you can easily add your own commands to the database. To do this, press the Add button, enter the command in the Command field, and provide an optional description in the Description field. If the command requires user input, specify it in the User Input field. Press OK to save the new entry in the database. By default, custom commands are added at the end of the list, but what if you want to move them at the top? CLI Companion doesn't offer any tools for rearranging entries in the database, there is a simple workaround for this. CLI Companion stores all commands in the ~/.clicompanion text file. Open it in your favorite text editor, and rearrange the commands in the list to your liking.

CLI Companion also provides a handy search feature which can help you to quickly find the command you need. Simply enter the command you want to find in the Search field, and the utility automatically narrows the result as you type.

The CLI Companion project page at Launchpad provides a .deb binary package for Ubuntu and its derivatives. Alternatively, you can add the CLI Companion's PPA and install the utility from it using the following commands:

sudo add-apt-repository ppa:clicompanion-devs/clicompanion-nightlies
sudo apt-get update
sudo apt-get install clicompanion


  • Other Solution

    To solve this, I usually set my bash history to 500K and save after every command, like so. This solves most of this. Then, I script anything that needs it.

    export PROMPT_COMMAND='history -a;echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
    export HISTSIZE=500000
  • CLIcompanion -- more explanation might be helpful

    I've always liked tools with features similar to CLI-Companion. On one side of the situation you have "commands" with complex options and often equally complex syntax. On the other side, you have
    "tasks" that you routinely accomplish with those commands. Often, these tasks are performed at a low frequency and so that associated command often requires re-invention. Features that enable one to store those commands once configured and recall them when needed at a future time, make one's like easier in many ways. I encourage the authors of CLI-Companion to add features to augment shell history features with "helpers". When when tries a new command, CLI-Companion might remember what was tried before and guide the end-user with prompts or questions accompanied with suggestions for suitable command verbs and associated options.

    While this article is an informative piece about the existence of CLI-Companion, it might be more valuable if it contained at least one good example of effective use of this interesting tool.

comments powered by Disqus

Issue 25: Raspberry Pi Handbook 4th Ed./Special Editions

Buy this issue as a PDF

Digital Issue: Price $15.99
(incl. VAT)