It’s been just over a year since I had ACL surgery that put me out for about 3 months. I still remember all the pain associated with it, and I am still at only about 80% of where I thought I’d be.
I also remember that before I left on medical leave, I had started using AI a lot more for all the coding work. I’d still open VS Code and use Cline because it felt cool seeing how AI made changes in your IDE. It was working great on some smaller tasks and much worse on anything a little bit ambiguous or big. When I returned to work in December, I didn’t realize it was going to be a whole new world.
Back to work
Cline was a thing of the past for me. AI agents got a lot smarter, and just the terminal was enough. Since then, I’ve opened my IDE maybe once or twice. My team had also made this package where they’d added a bunch of “skills,” including the “skill-builder” skill. Now every team has its own version of that, plus everyone’s cloud desktop automatically gets more centralized skills that help agents figure out how to use internal CLIs, websites, and MCPs.
Yes, just do it
I also remember always running my Claude CLI in “yolo” mode before auto-approve was a thing. I didn’t want to just sit there like a monkey and just type “y” on my keyboard all day. But the agents loved stopping and asking if you wanted to continue, even though the answer was always the obvious “Yes, stop freaking asking me that already.”
But that doesn’t always work. What always works, as I’ve mentioned many times before, is hooks. So I added the “don’t ask hook.” Then “block all delete requests.” Or maybe it was the other way around. “Don’t do scans on the DDB table.” Don’t do that, or this. And do that instead. As of now, I have 99 different hooks configured for Claude sessions (I actually counted for this newsletter).
I do have to be honest: I’ve mostly been using the Opus 4.8 model for the last several months. I tried using Opus 5.0, but my experience with it was pretty terrible. And I wasn’t able to use Fable 5 or 5.1 because I kept getting 429s from Bedrock in our work setup.
Trying something else
But a couple weeks ago, I was told that we could use the Codex Astra model. We were already able to use Codex models before, but I was hesitant to switch because of the claude agents feature that allows me to see all my running sessions and their status in a single terminal window.
When Astra came out, I figured I’d give it a shot, though. Especially after running it on some personal projects. I still kept my remaining sessions until I’d completed them in Claude, but anything new I sent to Codex.
I also configured 0 hooks for Codex at the start after seeing some people on Twitter telling everyone to delete all of their setup and try the “raw” model. Full disclaimer though: I didn’t remove any of the skills that came automatically with the Codex setup about internal stuff.
My name is still on it
But I quickly realized that I needed at least one hook. The one that adds the --no-auto-publish --no-auto-merge flags to our cr CLI (for creating code reviews). And the reason is that almost all our repos on the team are onboarded to “auto-verify,” where if all of your tests and other analyzers pass, and the automatic AI reviewer doesn’t find any issues, your code review will be automatically approved and merged.
Since I still need to know and understand what the heck these agents produced, and my name is still attached to the code, I wanna be “in the know.”
Is it actually ready?
The second one was to make sure it automatically starts watching the analyzers (think of them like GitHub Actions) and only tells me it’s ready when all of them pass. Otherwise, it should automatically figure out what needs to change to make them pass.
Too many tabs
Codex recently released codex agents, but it’s not as good yet. I’ve had to revert to using tmux. But because it’s much harder to monitor what’s going on and what needs reviewing, I added a third hook that sends me a Slack message when the agent needs my input and then starts polling the thread associated with the sent message for responses. All the native “remote” features are currently not allowed for us, so this path is a somewhat acceptable alternative.
After a full 2 weeks of using it, I’ve configured exactly 3 hooks, with the third one just added yesterday. I’ll probably add a few more in the next few weeks, but I don’t think it’ll ever grow to almost 100 again. Guess sometimes “Twitter bros” are right.
What model are you using right now? How complicated is your setup?
Cheers!
Evgeny Urubkov (@codevev)