Software I Use
The software I use regularly, and why I tend to keep tools that remove more complexity than they introduce.
I like reading about the software other people use, but the useful part is rarely the list itself. It is learning what problem each tool solved and why it stayed.
My own choices tend to follow one rule: a tool should remove more complexity from my workflow than it introduces. That usually pushes me toward software that is fast, understandable, and boring once it is working.
RSS
NetNewsWire
I use NetNewsWire to follow personal blogs, technical writing, release notes, news sites, and other sources I want to keep up with without relying on algorithmic feeds.
I have tried Inoreader and Feedly. They are more feature-rich, but that is not necessarily an advantage for how I use RSS. NetNewsWire is free, open source, feels native on Apple platforms, and can sync through iCloud. It can also use accounts from services such as Feedly and Inoreader or a self-hosted FreshRSS instance.
What matters to me is that I decide what I follow and new posts appear in a predictable chronological feed.
I do not use NetNewsWire because it is the most capable RSS reader. Part of the reason I use it is that it is not trying to be one.
My own website also publishes an RSS feed, so RSS is something I want to support for people reading my writing as well as something I use myself.
Window management
AeroSpace
I use AeroSpace to manage windows on macOS.
I switched mostly because moving between native macOS Spaces feels slow to me because of the transition animations. AeroSpace makes switching between workspaces much faster while also keeping my terminal, editor, and browser windows predictable.
I still use it with the default configuration.
I could customize it, but I currently do not have a problem that requires doing so. That is generally where I try to stop configuring things.
Networking
Tailscale
I use Tailscale to connect my devices and services over a private network.
It lets me connect to local development servers from my phone without exposing them publicly, access Herdr while away from the computer running it, and use SSH for remote administration.
The main trade-off is that Tailscale itself cannot be completely self-hosted. Headscale is an alternative if I eventually want more control over that part of the setup.
I like self-hosting in principle, but I do not currently have a machine I want to maintain as an always-on server. For my current setup, Tailscale’s convenience is worth that trade-off.
AI workflow
Herdr
Before using coding agents regularly, I had never found much reason to use terminal multiplexers such as tmux.
That changed once I started running several coding-agent sessions and development servers at the same time. Keeping them spread across ordinary terminal windows quickly became awkward.
Herdr gives me persistent workspaces and, more importantly for this workflow, understands the agents running inside them. I can see whether a session is working, blocked, or idle instead of cycling through terminals to find the one that needs attention.
Combined with Tailscale, I can keep those sessions on one machine and reach them from my other devices without exposing them publicly.
Coding agents
I currently use three terminal-based coding agents:
- Antigravity CLI when I want to work with Gemini models
- Codex CLI when I want to work with OpenAI models
- OpenCode when I want more flexibility around model choice, including local models
The overlap is deliberate. The CLI itself is usually not the important choice for me; the model ecosystem is.
I use them for similar work: exploring a codebase, planning changes, implementing scoped tasks, reviewing code, running checks, and comparing how different models approach the same problem.
For larger changes, I prefer asking for a plan first, reviewing it, and then moving on to implementation. I also try to keep tasks scoped and inspect the resulting changes instead of handing an agent a large vague task and assuming the result will be correct.
The individual CLIs are replaceable. The workflow and the models behind them matter more to me.
LM Studio
I use LM Studio mainly to experiment with local models.
Running models locally makes the constraints much more tangible. I can see how model size, quantization, context length, hardware, and inference software change what is practical rather than interacting with every model through the same hosted API.
It is also useful when I want processing to stay local, but I do not expect local models to replace frontier hosted models for everything. The amount of compute required for that is far beyond what I can justify owning for this purpose.
What I like most about LM Studio is how little friction there is between deciding to try a model and actually running it, especially when looking for MLX models that work well on Apple hardware.
Smaller utilities
A few other tools are useful enough to mention without needing full sections:
- Ghostty — my main terminal. It is fast, simple, and gives me little reason to think about the terminal emulator itself.
- IINA — my main media player on macOS. It feels native while still providing much of the flexibility I used to get from mpv on Windows.
- Maccy — a lightweight clipboard manager that I use constantly without really having to think about it.
- Stats — basic system monitoring from the menu bar, mostly when a local model, coding agent, or another development process is consuming more resources than expected.
Most of these are successful precisely because I rarely have to think about them.
Things I am trying
Not everything installed on my computer has earned a permanent place yet.
- LocalSend — a cross-platform alternative to AirDrop. It has worked well so far, but I have not used it long enough to consider it part of my default setup.
- Neovim — I am still getting used to Vim-style controls. The question for me is whether the editing workflow eventually becomes natural enough to justify the learning curve.
- SimpleLogin — I am experimenting with email aliases, although Hide My Email may replace this role if I eventually subscribe to iCloud+.
I like keeping this distinction because trying software and adopting software are different things.
A tool can be interesting without becoming infrastructure.
What I look for in software
Simplicity does not mean using the smallest possible number of applications. AeroSpace adds another application but removes friction from managing windows. Herdr adds another layer to the terminal but makes several concurrent sessions easier to understand. Tailscale adds a service but removes a large amount of networking work.
I am also not trying to turn every service into something self-hosted, open source, or endlessly configurable. Those are useful properties, but they exist alongside maintenance, time, hardware, and cost.
The question I care about is whether a tool removes more complexity from my workflow than it introduces.
The individual tools will change. I expect that criterion to change much more slowly.
This is what that looks like for my setup as of September 2026.