Improving the User experience in CLI(Command Line Interface), specially for Geeks — Part 01

Dakshika Jayathilaka
2 min readFeb 19, 2018

--

Improving the user experience in CLI or command line interface is a bit debatable area since many developers think that they know what geeks want. Some Developers loves the CLI while others hate.

What is CLI?

According to the wikipedia, A command-line interface or command language interpreter (CLI), also known as

  • Command-line user interface,
  • Console user interface,
  • Character user interface (CUI),
    is a means of interacting with a computer program where the user (or client) issues commands to the program in the form of successive lines of text (command lines)

Pros and Cons of CLI

There are many pros and cons you may figure out while using the real CLI. I’ll list down key things which I learned during my career.

  • Efficient
  • Fast
  • Flexible

Once you speed up your life with the keyboard you may never want to use the mouse. Not only that you may learn the bunch of shortcuts and navigation options to do things faster. For most of the repetitive tasks, CLI users will create their own shortcuts, scripts, and aliases using the flexibility of the system.

Again there are heap of Cons as well,

  • Rely on recall memory
  • Unknown conventions
  • Error-prone
  • Responsibility & Danger

According to the research, Recognition memory is almost 3 times more accurate and almost 2 times faster than recall memory (Nobel, 2001). If you think about the user onboarding aspect unknown conventions may lead to huge frustration during the learning phase of the CLI. Human typing errors are inevitable and proving powerful codes may darken the entire world that they know.

A Good example is,

$ sudo rm -fr /

If you run this on any UNIX based OS, that will remove the entire filesystem recursively. If you are a windows fan you can try this too

Format C: /q /y

Define User experience for CLI

First, we need to clearly identify the goals of creating a CLI. Even those will become the challenges while we designing the experience.

If a particular user can easily memorable and typeable the particular command s/he will love to use it. In part two we’ll discuss how to achieve above listed heuristics by examples. Until then.. :)

--

--