[go: up one dir, main page]


Some software, 2025

December 23, 2025 [software]

One of things that make me happy are deep conversations. Happy is the appropriate word, I would think, if I were to describe that experience later to others. At the moment of connection, it’s more accurate to say my attention is narrow and judgement suspended, and I am completely engaged. I am in a flow state. Such conversations are few and far between, and thankfully there are many other opportunities in life to enter into that zone. Like using new tools, getting fluent with them, building with them. By tool, I mean both an instrument that allows one to get some job done, but also in this context, the job it self. Lego. Ikea furniture. Woodworking. Video games. Meditation. Seeing people use their tools with a feeling for craft, that does something to me. Take a look at master watchmakers or knife makers. Tell me it doesn’t make you want to immediately build something. Good software makes me feel that way. In 2025, I found three: Ghostty, Helix, and Claude Code.

If I spent my career using one set of tools, working more or less the same way, there was a tsunami called Claude Code this year that wiped all that out. I am hard pressed to think of another product that has decisively changed the way I work. At the beginning it was not even clear that I was more productive with it than doing things by hand. But I found it enthralling to use, finding ways to work around the tasteless code it produces, figuring out ways to create guard rails. I make liberal use of plan mode, and I find that the result is still valuable even if I throw away any code that Claude Code produces: I have clarified my thinking about something. The more I work with it, the less I trust it to be right in many cases, but in every case it's useful. There's no going back now. No one in my org codes by hand anymore. Well, there are a few holdouts, and we don’t force people to use these tools. But they will give in eventually. It’s via Claude Code that I learned to enjoy living on the terminal. I now judge other terminal agents by the UX standards that Claude Code has set. Do you have a plan mode? What about subagents? Skills? No? Pass.

About a couple of times a week, Claude Code on my iTerm terminal would get into an infinite scrolling mode and become unresponsive to key presses. Giving up on Claude Code was not an option. So I shopped around for other terminals and picked Ghostty because someone recommended that as a solution on slack. It also helped that Mitchell Hashimoto’s writing resonated with me, in particular, his blog post on vibe coding a UI feature.

The UX on Ghostty blew my mind. It was not as feature rich as iTerm, but I never used any of the fancy features anyway. What I want from a terminal are reasonable shortcuts for opening window panes and tabs, navigating between them, and closing them. Ghostty uses GPU for rendering, and on MacOS this done using Metal. Ghostty seems to cache rendered characters into a texture atlas on the GPU. When a character needs to be displayed, it's simply copied from the cache to the screen instantly. Ghostty uses a custom-built terminal core written in Zig. It interacts as directly as possible with the operating system's windowing primitives. All of this is to say, Ghostty owns the entire stack from the window creation to the PTY (pseudoterminal) communication. The end result is that all this design choices shaves milliseconds off input latency from the moment a key is pressed, to a character appearing on screen. Who knew the effect would be so mesmerizing? The phrase buttery smooth comes to mind. I haven’t found myself going back to iTerm or even exploring other terminal emulators at all.

Ghostty gave me such a good experience that I wanted to do other things on the terminal alone. And what do I do on my computer most of the time? Aside from browsing, it’s reading and writing code. That led me to Helix.

Helix is a modal editor. I had been unhappy with VSCode for a while, especially its performance on large code bases or opening large files. I played around with Zed and while I admit it was performant, it still left me with an empty feeling. It would do, however. But then along came Ghostty and it opened up my mind to the possibilities of TUIs. Around the same time, I read Julia Evans’s post about moving to Helix and I decided to check it out. You know, just some fooling around. I just never went back to VSCode and Zed. Learning modal editors was like discovering a game, a new way of seeing and navigating a world I thought I was already familiar with. Helix has sane defaults, key bindings that make sense. They were easy to memorize because they mapped to semantic understanding of what navigating a code base meant. Who knew that navigating a file with Alt+n and Alt+p and Alt+i - moving up and down the syntax tree - would be faster not just because there's no mouse scrolling, but because it fills in your mental model of the code as you go? I am not sure I even made a conscious decision to memorize them, but here we are. Now it’s second nature. Those early days of exploration, I sometimes even found myself dreaming about Helix.

So why these three, out of the many softwares that come and go? Part of it is that the friction to get deadly with them was just enough - not too much, certainly not too little. But the larger part is that these are made by people who clearly use them for their daily work, and that shows in UX choices that feel inevitable. Good tools make it easy to form habits, moves you reach for without thinking. That's the same thing that happens in a good conversation: the boundary between you and the thing you're engaged with starts to blur. Flow, again.