In Prompts already won, Samir talks about text-based interfaces and how they have expanded from traditional command line to all sorts of places like browser’s URL bar (called Omnibar in Chrome) and operating system level tools like Spotlight, Alfred or Raycast on Mac.

I use these tools all the time and had never really considered their relationship with command line interfaces. One of my favourites is the command palette or Command K Bar that Maggie Appleton writes about in Command K Bars. The ability to navigate complex options of a software, not via graphical menus and settings pages but via fuzzy search enabled text interface, is so powerful. Not only does it require less learning of software specific menu structures, it allows achieving things without moving the hand away from the keyboard. This is especially valuable in tools like Obsidian or code editor where majority of the use is about writing:

This makes it much faster and easier to find things. If you’re in the middle of writing something, you don’t even have to take your hands off the keyboard. A few quick finger strokes and you can find the action you need and run it. Far faster than navigating a small cursor through a series of menu mazes.


@zens@merveilles.town brought up a good point about the CLI vs GUI discussion: GUIs change a lot and often:

In an ideal world, software vendors treat their GUI designs like they treat their dev facing APIs: they are implicitly a promise that a particular sequence of keys will do a certain task. that a feature will be found in a specific sub menu.

if you find that you need to change any of these promises for any reason no matter how important or how much it improves things for new users

you version that shit and let users use the old version of the GUI forever. not 6 months. not until the A/B test.

with @oblomov@sociale.network following with another good point about the “change for the sake of progress optics”

@zens and in reality, the opposite happens, for the most horrible of reasons: changing the UI is the only way to show users the new version is different (and implicitly better) than the old one.

Ugh.

Command line interfaces change way less often and are more robust. It leads to time invested into learning them becoming a longer term investment.