Skip to content
← Posts

September 27, 2025/708 words/4 min read

When the Terminal Finally Clicked

From something I avoided to a tool I rely on daily.

For years I opened the terminal only when documentation told me to. I'd paste a few commands, pray nothing broke, then close the window until the next guide forced me back. It felt brittle, like I was one typo away from disaster.

I can't remember the exact moment because the comfort came gradually. I do remember following a short course for a totally unrelated product that happened to include a really nice CLI section. The interface was simple and did everything it needed to. That was enough to flip the switch. Over time I stopped reaching for GUI apps and spent more time in the terminal. I haven't really gone back since.

Once it clicked, I did what everyone does and tried every terminal emulator I could find. iTerm2 was the first one that stuck with me. I used split panes constantly, and its hotkey window made it feel much more capable than the default macOS Terminal. The endless settings didn't hurt. Then I tried Warp because it was the new thing at the time and I lasted maybe two days. The AI features were everywhere and constantly in the way! Command search had AI baked into it, and every error came with an offer to explain or fix it. Meh! AI cut me some slack. I get the intent, and I'm sure it works for some people, but it felt like having someone standing behind me offering unsolicited advice. Sometimes I just want to run ls without commentary.

I eventually ended up on Ghostty, and that's where I plan to stay. It's the kind of fast that makes it feel properly native, and it gets out of the way. You can tell Mitchell Hashimoto built it because he wanted a better tool for himself. The config makes that clear.

ini
font-family = Iosevka
font-size = 13
theme = dark:Catppuccin Frappe,light:Catppuccin Latte
window-padding-x = 10
window-padding-y = 10

Five lines and you're done. I also started keeping dotfiles at some point, though the collection is tiny. .zshrc and .gitconfig handle most of it, with the Ghostty config and a few short scripts beside them. I like keeping it simple. I'm trying to avoid being one of those people with 3,000 line scripts that provision an entire system from scratch, because that always felt like infrastructure disguised as performance art and it's just silly. A few dozen lines that make the terminal feel like mine are absolutely worth it! My prompt shows Git status, and the rest saves me from typing the same commands or chaining the same steps by hand. I have to know when to stop, because I can spend infinite time optimizing my shell config and never be truly done. Past a point, tuning it is procrastination.

You can build terminal UIs with React now. Ink renders actual React components in your terminal, so writing a TUI (text user interface) feels much like working on a web app. You even get state and hooks.

jsx
import React from "react";
import { render, Box, Text } from "ink";
 
const App = () => (
  <Box flexDirection="column" padding={1}>
    <Text color="green">Terminal UI with React!</Text>
    <Text dimColor>This is actually rendering in your terminal</Text>
  </Box>
);
 
render(<App />);

Ink handles the terminal escape codes, including cursor positioning and color. Those are usually the parts that make building TUIs feel like pulling teeth. You write components and Ink figures out how to render them, which is perfect for people like me who know React but have zero interest in learning ncurses or dealing with raw ANSI codes. React in the terminal is magic until something breaks and you need to know what stdout and stderr are.

The terminal finally clicked when I saw how good it was at the work I did every day. GUIs are great for discovery and visual feedback, but when I know exactly what I want to do, typing it is almost always faster than clicking through menus. git status is faster than opening a Git client. When I need to search, grep -r "search term" . beats clicking through a dialog. Once I got comfortable, I automated the repetitive tasks I'd been doing manually, or at least the ones I bothered to automate. I also like looking at it. After a long day, a clean terminal with a good color scheme is satisfying, especially when the prompt shows exactly what I need and then gets out of the way.

Nobody needs to use the terminal for everything. It took me years of casual exposure before it stopped feeling intimidating. If you've been avoiding it for the same reason, it might be worth another look.