My AI Coding Setup Still Lives in the Terminal
Bruce Hart
The ChatGPT Windows app is useful, and I use it. But when I settle in to work with Codex, I still open a command line in Windows Subsystem for Linux, or WSL.
The terminal lets me build a workspace around the way I work. Coding agents have made that flexibility even more useful.
My setup combines WSL, tmux, Codex, Claude, OpenCode, and herdr, which manages terminal workspaces for coding agents. I can keep several projects open, see which agent needs me, and hear a satisfying little tone when one finishes.
I also have a custom tmux footer showing how much Codex usage I have left for the week. Naturally, Codex built it for me.
Keeping everything in one workspace helps me stay with the task
The command line gives me continuity. The repository, Git history, tests, deployment commands, logs, and coding agent all live in the same environment. I can ask Codex to investigate a failure, watch it run the relevant commands, review its changes, and keep moving.
That matters more as agents take on longer stretches of work. I spend less time translating between interfaces and more time following the problem itself. The terminal is becoming the place where I coordinate several projects and the agents working on them.
There is also a more subjective reason I prefer WSL: Codex feels faster and more economical inside Linux, especially when searching a repository or processing lots of files. My theory is that utilities like rg, sed, and awk, connected with pipes and small scripts, give it a familiar toolbox for doing a lot with compact commands.
I tried to measure the difference, though, and did not find much of one. Timings and usage were close enough that I could not make a serious claim about speed or token efficiency.
Maybe I am noticing the absence of friction. I know the tools, I can follow the commands, and the process feels predictable. That can register as speed even when the stopwatch barely moves. For now, Linux is my preference; the measurements do not justify a stronger claim.
More agents make attention the scarce resource
Starting another Codex, Claude, or OpenCode session is easy. Remembering which one is working, which has finished, and which is waiting for an answer is harder. Once several projects are open, ordinary terminal tabs offer very little help. From the outside, every tab looks equally quiet.
This is where herdr clicked for me. It keeps persistent workspaces and tracks agent states across them, so I can see what needs attention without opening every pane. It also works with the mix of agents I use.
I can hand off a contained task, move to another workspace, and still keep track of the first job. That is the useful shift: the workspace starts to reflect the work happening inside it.
The small feature I appreciate most may be the sound. Herdr supports separate notifications for finished work and requests for input. Mine plays a little tone in the background, which lets me work in another window without checking on the agent repeatedly.
An agent that takes five or ten minutes creates an awkward gap. Watching it is usually a waste of time, but forgetting about it wastes the benefit of running tasks in parallel. A reliable notification lets me put my attention elsewhere and return when there is something to do.
It also makes the setup feel a little like a workshop. Something is running in the background, and it calls me over when it needs me.
A tiny footer answers a recurring question
My custom tmux footer solves a different attention problem: keeping track of my weekly Codex usage. It updates in real time at the bottom of the terminal, alongside the other status information I care about.
I like information that works this way. It answers a question in half a second when I happen to look at it. I do not need to open an account page or discover the limit by hitting it.
The meter also helps me decide what to hand off. With plenty of usage left, I might ask Codex to explore a larger idea. As the budget gets tight, I become more deliberate about which tasks benefit from an agent and which I can finish quickly myself.
There is something delightfully recursive about asking Codex to build the meter that tracks Codex. Increasingly, that is how these tools become part of my routine: I notice a small annoyance, describe what I want, and have the agent help me fix it.
An assembled interface comes with maintenance
This setup takes more care than installing one app and signing in. WSL, herdr, tmux, agent integrations, and a custom status line are separate pieces. Hooks need attention, usage reporting can change, and setting up a new machine takes work.
The benefit is that I can change those pieces independently. I can switch agents while keeping my workspaces, adjust the notifications, or rewrite the footer. I can also work on another machine over SSH. The workflow is something I can keep adapting.
That is why I keep returning to the command line. I am still a terminal guy at heart, but the terminal itself has changed. What used to be one cursor waiting for a command is now a place to follow several streams of work.
If you have built a setup that makes working with agents easier, I would love to hear which small addition made the biggest difference.