DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

Are you more of a CLI person or a GUI person

And why do you think that's your preference?

Top comments (9)

Collapse
 
moopet profile image
Ben Sinclair

I'm a CLI person.

There are a lot of reasons:

  • Emoji blindness.
    I am really bad at understanding what the little pictograms people use mean. I can't tell the difference between a bear and an otter (alright, calm down) when it's an emoji.

  • GUIs suffer from a degradation issue where a designer makes a bunch of pretty icons for your app, then leaves the company. You need to update these icons but the artist isn't around and their replacement has strong opinions that their format is better. You go ahead and use a generic icon pack, but you can't do it because you've already used three different "spyglass" icons for "search" and you're going to have to resort to using a square or a text document icon instead. It ends up with the situation where the majority of the icons are generic and the UI has to be learnt through trial-and-error. It becomes mystery-meat navigation.

  • GUIs change a lot, and that's terrible for UX and difficult for documentation to keep up. If you look at answers on Stack Overflow around GUIs from a few years ago, none of them will represent the state of the app today. Menu items will have moved, pages will no longer exist, things will be renamed.

  • GUIs are harder to explain. If you look for a tutorial or solution for how to do something using a GUI, it will be several pages of screenshots which don't look like the current version of the app, or lists of where to click the mouse, often confusingly like, "click the three dots" on pages which by 2026 now have 5 instances of the three-dot menu scattered to different contextual areas on a page.

  • Companies are trying harder and harder to break GUI conventions. Browsers where back buttons don't work. Scrolling that goes in unexpected directions. Apps that shadow system-wide keyboard shortcuts. Things like that.

  • The CLI doesn't show me nauseating moving background images (yes, I know prefers-reduced-motion is a thing but can count on one hand the number of websites that respect the user enough to use it) or play unexpected sound effects. It doesn't have apps competing for my attention.

  • The CLI isn't a tempting target for injecting flashy ads. Which in turn means less malware.

  • And GUI apps often just wrap a terminal command anyway

The CLI solution to your problem will probably have a snippet you can click to copy and paste, and it will work because the CLI app in question hasn't broken backward-compatibility since 1997.

I'll use a GUI for a browser and video, picture or other media apps. I'll use it for games and game development.

For everything else, I'll use the terminal. It's so much easier.

Collapse
 
th3chris profile image
Christian Daniel

I'm still looking for a Warp-like Terminal that seamlessly integrates into my desktop like a dynamic wallpaper. I don't want to open an app, i do want to have my terminal to be direct in front of me - always, because i am way faster then using a gui.

Collapse
 
ben profile image
Ben Halpern

For me, I'm not heavy one or the other, but I'd say I lean GUI β€” and I kind of think it's because I was late to ever touching the CLI. So by the time I was introduced to it I had a lot of hardened habits and stayed in GUI land for a lot of my most important work.

Collapse
 
annavi11arrea1 profile image
Anna Villarreal

I avoided the terminal at first. Even though I was curious. After building a bare metal Linux server from spare parts at my old job, I cannot be separated from bash. I use WSL all the time and it makes me feel like a renegade. πŸ˜‚

There is something about the grittiness of the terminal that brings a nostalgic feeling. Like the old CRT monitors back in the day with amber colored font. I remember all that from when I was like 7. Its satisfying and comfortable to look at.

But I also like a good button with solid styling. Perhaps a leg 🦡 in both worlds as well? πŸ˜‚

Collapse
 
georgekobaidze profile image
Giorgi Kobaidze

Generally, I use both GUI and CLI, but whenever I can accomplish something with the CLI, I usually prefer it. There are several reasons for that:

  1. CLI is the most β€œgenuine” interface.
    It does exactly what you tell it to do, nothing more, nothing less. In many cases, GUI tools are simply wrappers built on top of underlying CLI commands.

  2. CLI exposes more capabilities.
    Many advanced features are only available through the command line. If every possible option were exposed through a GUI, the interface would become extremely cluttered and confusing.

  3. Automation is far easier.
    With CLI commands, you can write scripts (e.g., Bash, PowerShell) to automate repetitive tasks. This gives you powerful control over your system and workflows.

  4. Consistency across environments.
    GUI tools often vary from application to application. The CLI, on the other hand, is usually consistent, once you learn a command or tool, you can use it across many systems and environments.

  5. CLI tools are typically more stable and predictable.
    Because they are simpler and widely used in automation and infrastructure, CLI tools tend to be heavily tested and behave very consistently.

  6. Better understanding of what happens under the hood.
    Using the CLI often exposes the actual operations being performed, which helps you understand how systems work internally.

  7. Speed and efficiency.
    Once you know the commands, using the CLI is often significantly faster than navigating through multiple menus and windows in a GUI.

  8. Remote work is much easier.
    Working with remote machines (servers, containers, cloud instances) is far more efficient via CLI tools like SSH. Many systems don’t even have a GUI installed.

  9. Reproducibility.
    CLI commands can be saved, shared, version-controlled, and reused. This makes it much easier to reproduce environments and setups.

  10. Resource efficiency.
    CLI tools consume far fewer system resources compared to GUI applications, which makes them ideal for servers and lightweight environments.

  11. Better integration with development workflows.
    Many developer tools (git, docker, build systems, package managers) are designed with CLI-first interfaces, making them easier to integrate into pipelines and CI/CD systems.

  12. CLI scales better with complexity.
    As tasks grow more complex, the command line often scales better than GUI tools, which can become too complex when too many options are added.

Collapse
 
pinotattari profile image
Riccardo Bernardini

Definitively CLI, but it depends a lot on what I need to do.

I guess that part of the "why" is due to the fact that I began working with Unix-like systems in the 80s when GUI were not common yet. It must be said that CLI can be much simpler (and faster) for many actions. For example, to push my changes to a remote repository I need only git push, that can be shortened to, say, gp with a suitable alias.

Collapse
 
vasughanta09 profile image
Vasu Ghanta

GUI by heart (cozy vibes!), CLI by mind (ninja powers!). GUIs for "ooh, pretty buttons"; CLI for "grep that bug into oblivion." Hybrid life wins! πŸš€πŸ˜‚ Your combo?

Collapse
 
danhof profile image
Daniel Hofman

Both, depending on the task. I type commands all day but I don't want to memorize every Git flag for things I do twice a year. That's why I built TerminalNexus around the idea of wrapping visual tools around the CLI instead of replacing it.

Collapse
 
leob profile image
leob

CLI +1