Why I never left the terminal

by Ilyes Hernandez

3 min read

I've been programming for a long time and there's one thing I've always loved: the terminal. That program that runs on any computer, that lets you talk to the machine by typing some mysterious words. I remember the first time I discovered it. I felt so damn good. Like a hacker, minus the actual knowledge required to be one. But in reality, the terminal is one of the first interfaces most programmers ever see. Whenever you start out, the first thing you touch is a terminal.

The first TUI

That step matters more than people give it credit for. I remember the first time I touched an editor that wasn't some gui but an actual terminal user interface, a TUI. It was fast, reliable, and built to be shortcut-driven, which put a stupid amount of power in my hands. I was flying through folders, listing them, managing them, all from the keyboard. But like most tools, I started running into its limits, and started understanding the ecosystem underneath it. An ecosystem built on years of work, with multiple "shells" (a term I only learned later) and the actual terminal applications that display those shells.

That distinction took me a while to get. The shell is the thing interpreting your commands. The terminal emulator is just the window it lives in. Bash, zsh, fish, all different shells with different quirks, different autocomplete behavior, different scripting rules. And on top of that, dozens of terminal emulators, each with their own rendering, their own font handling, their own idea of what a good default looks like. Once that clicked, the terminal stopped being a black box and became a stack I could actually reason about.

Everyone's back in the terminal now

Now here's where I want to give my opinion, because I think it's a good one.

We're in the middle of an AI boom, and a lot of people are rediscovering the terminal through it. Coding agents live there. You run a command, the agent goes off and does something, comes back with a diff or a log, and you're back at the prompt. People who never touched a shell in their life are suddenly living in one, and a lot of them are loving it. There's something honest about a terminal. No hidden menus, no mystery meat navigation, just you, a prompt, and whatever you type next.

And then they leave again

But I've noticed a pattern too: some of these same people are starting to dismiss the terminal once a proper app shows up to replace it. And I get why. A dedicated GUI, something like Codex's app version or any of the polished wrappers coming out right now, is going to be better at a lot of things. Visual diffs, click-to-approve, drag and drop, all of that is genuinely nicer for a lot of workflows. I'm not going to pretend a raw terminal beats a well-designed app at showing you a three-way merge conflict.

Why I'm staying

But I still think the terminal has a place, and not as some nostalgia thing. For people like me who want a keyboard-driven workflow, who want speed, who want something light that doesn't try to render forty UI elements just to show me a status, the terminal is still one of the most practical tools I own. It's not about rejecting the new apps. It's about knowing when the old tool is still the right one. And for me, most of the time, it still is.