Superintelligence CouncilСовет гения · sim.im

DHH · 2026-08-26 · source ↗ · whole document (10)

Programming setup for AI Agents

`1:32:36`

... All right, let's just call it programming. Programming with agents requires a different tool set. It really does. And the main change here is that you're going from single thread programming in your head to parallel processing. When I was writing code, chiseling it by hand in TextMate or even Neovim, Not that long ago, I would just focus on one problem at the time, and I would methodically work my way through it, and that was actually the portal to flow. The portal to flow was deep, immersion into a single problem, see it through to the end. That's not how it works with agents, in part because the agents are at once both too fast and too slow. They don't give you an immediate reply on something that you asked them to do that's the same as typing on a keyboard. So you have to let the agent cook-... for a bit, and therefore you realize, well, if I just sit around waiting for them, first of all, that doesn't feel productive. Even if the agent, just one of them, can be highly productive, it does not feel productive. It does not feel good. It feels actually like you're a little bit useless. And maybe I had a moment, when the first agentic moment was there and we, I was running mostly one agent at a time where I felt like, "I don't know about this." But you can solve a lot of hard problems by simply throwing more resources at it. This is the whole scaling law of AI of itself, right?

That if you parallelize these things and you're not running one agent, but you're running a handful, you can feel like you're in a flow state because you're constantly doing programming work in the sense that you're making decisions, and you're helping either unblock an agent because it has a question about which direction to take, or you're ready for a new task. And to do that, you need a different setup. I started first doing it in tmux and just having separate panes and having separate splits. Basically, a terminal with tabs is a good way to think about it. You open a bunch of tabs. I think most humans know exactly how that works. They don't work in just one tab.

`1:34:57`

I love the fact that this agent revolution was kicked off in the terminal because I was already a huge fan of TUIs, terminal user interfaces, and the terminal in general. That feels like a, a really nice place to be. It's a beautiful place to be. The modern terminal is just a good-looking place to work. So I like that. And then this fact of having multiple agents, especially once it's not just multiple agents running on your own machine, but you start running multiple machines. Now tmux alone is not enough to keep track of it, and that's why as of late I've switched to this thing called Herdr. And Herdr is essentially tmux plus agent notifications. So whenever your agent is done and needs something for you, it goes ding, a little bell telling you it's ready for its human, uh... Is it master or servant? I'm not quite sure always. But it is ready for a decision, and it also keeps track of these is it in working mode or not. So I have this Herdr set up. I have multiple Herdr setups actually running on individual machines. I went on this crazy phase just about a month ago realizing that doing this work on a single machine is not fast enough. It's like I've discovered multi-core programming, but I only have two cores. I'm like, "What if I had 16 cores? What if I had 32 cores? What if I had 64 cores?" So I instantly went out and I bought these amazing KVMs called GL.iNet Comets. And what they do is it's this little box.

You plug in HDMI, you plug in USB and connect it to the computer. It's like a KVM. So a KVM is a remote way of controlling a computer, but what's special about this is just how easy it was. You connect this thing in, you go to a webpage, log in once, set one password. Now this thing can hop on your tailnet. This has been the other revolution of the last year for me, is discovering these WireGuard networks. Uh, Tailscale is essentially turning all the computers you have into a local network wherever you are. Like right now on my phone, I have direct access to all the computers in my Malibu office. I also have access to all my computers in my Copenhagen office. And I can treat them as though I sat right next to them without having to punch holes in a firewall or set up complicated VPNs. And what this does is it just decreases the friction it takes to get new compute online. So as soon as I discovered this, I looked at my closet, and I realized I had a bunch of mini PCs from prior experiments, and I just said, "What if I just connected all of them?" And I just connected four of the computers-... in a closet. They all had their little Comet, and suddenly I could run agents on more computers at the same time, and I could control them all with Herdr. And it did get to a point where I maxed out my own processing power. That I think at about... What do we want to put it? About four to five machines running, I don't know, three agents. I have about 16 threads. That's what I can run.

And the faster the agents run, of course, the fewer threads I can run, but at the current pace, I can run about 16 threads-

`1:38:53`

I'm writing my lines. And over the course of, like, an hour, I will have written one beautiful controller, one beautiful model. Like, that's one file. And I've really worked on it, right? So maybe there's 60 lines left. So maybe my bandwidth at this moment is, like, 30 lines an hour. I think that's even high. Maybe it's 20 lines an hour. Now I'm running 16 threads. I'm producing at some times hundreds of lines of hour or hundreds of lines of code per hour. Now, let me pause myself there for a hot moment. I hate that metric, right? Like, lines of code is a stupid metric in general to measure these things, and I think it's right from some in the programming community to ridicule the AI psychosis when everyone talks about the number of lines of code they're writing, and then you ask them, "What did you build?" And they're like, "Well, I..." And then no good answer comes out, right?