There’s a particular kind of anxiety that comes with having an AI coding agent at your fingertips. It’s not the anxiety of being replaced, that’s a whole other thing. It’s the anxiety of not using it. Of letting it sit idle.
I’ve noticed a pattern lately. The more productive I get with AI agents, the more frantic I feel. The more I can accomplish, the more I feel like I should be accomplishing. Time spent thinking, or researching, or just taking a breath, that feels like time I could be spending with an agent running in the background, churning out code, writing docs, debugging tests.
AI coding agents can do a ridiculous amount of work. But here’s the thing: productivity is supposed to give you time back. Instead, I’m in this perpetual state of urgency. There’s always another project I could start, another refactor I could run, another feature I could ship. The agents don’t get tired. They don’t need breaks. And somewhere along the way, I started feeling like I shouldn’t either. The tool that was supposed to free me up has created a treadmill I can’t step off.
I now have many projects at 80-90% completion. AI coding agents got me that far but to get it shipped I need to spend the extra 10-20% and that takes focus. When you’re constantly spinning up new agents on new tasks, that last 20% never gets finished. It’s much easier to start something new than to finish something old.
I used to work on one or two projects at a time. Maybe three if things got busy. Now I’m juggling a five or six. I can kick off a sub-agent to refactor the API while I review a PR from another agent that fixed the CI pipeline, while a third agent researches some new tech options for a side project I just started (today this was Sprites from fly.io). But the context switching isn’t free, I just preload my brain from a bunch of markdown files. My brain needs continuity and time to settle into a problem.
The Nagging Voice
There’s this growing thought that sits in the back of my mind more often these days. Reading documentation? “You could have an agent writing the code right now.” Thinking through a design problem? “You should check if that agent is done or needs input.” It’s not quite guilt. It’s more like a low-grade background noise. A nagging sense that I should be doing something. When you have a tool that can work while you sleep, that never gets tired, that can execute tasks in parallel there’s this subtle pressure to match that pace.
And then there are mobile agents. I now have my own AI assistant, Polly backed by Clawdbot, which I can message from WhatsApp. I caught myself at a red light, grabbing my phone and sending a voice note to Polly: “Hey, can you research X and create a GitHub issue for Y?”. The light turned green and I drove off, feeling productive. That 30 seconds at a traffic light used to be when my brain would process ideas, make connections, or just… exist. Now it’s another opportunity to delegate a task. It does feel amazing having an agent in my pocket and it can be very useful but it’s also made the boundary between “working” and “not working” completely porous. There’s no friction anymore. I have instant access to something that can start working on my behalf. I’m not sure this is entirely healthy.
Cory Doctorow has a concept called the “reverse centaur.” In automation theory, a centaur is a human augmented by a machine. You’re the head, the machine is the tireless body. A reverse centaur is the opposite: the machine is making the decisions, and you’re just the meat appendage carrying out its instructions. I’m trying not to be a reverse centaur.
Where to now?
I’m still learning how to work with these tools in a way that doesn’t drive me crazy. But here are a few things that seem to help. Before I spin up an agent on a new project, I try to ask myself: “Do I have anything at 80% that I should finish first?” Usually the answer is yes. And usually, finishing that last 20% is more valuable than starting something new at 0%. I used to run 3-4 agents in parallel, context-switching between them like I was managing air traffic. Now I try to stick to one, maybe two at most. If an agent is working on something, I either wait for it or I do focused work that doesn’t need another agent running. Not every moment needs to be “productive”. Some of my best ideas have come when I was doing nothing at all, or something more menial like washing the dishes.
AI coding agents are amazing and they’ve made me more productive than I’ve ever been. But the goal isn’t to maximize output (at least that’s not my goal). It’s to actually finish things. Ship things. Make things that matter. And that comes from knowing when to let the agents run and when to step back and think. We’re the first generation of developers with this kind of capability, and we don’t really know yet what the healthy way to use it is. Not just in terms of ethics or jobs, but in terms of not driving ourselves crazy.
Maybe we’ll get to a point where agents can get to 100% on their own, but we aren’t there yet.