I made a new CLI tool to make switching between jj workspaces a bit less annoying. Or, at least, I published it: I haven’t written a single line of code, other than a little CSS when tweaking the webpage. My process was to iteratively prompt Claude Code until I had something that worked the way I want. Because I was at work, and this is a side project, I babied the coding agent much less than I typically do, instead just checking in every ten minutes or so to rebuild, poke around to see what worked and what needed to change, and reprompt.
It’s a small thing, but I’m very pleased by the results. This is a much better tool than I could have built without AI, certainly than I could have built in so short a time. The space between imagining a change and testing it out has shortened drastically, and if you have the inclination you can use this new ability to build things much more robustly than before. When writing tests and handling edge-cases is free, there is no longer any excuse for taking shortcuts, for not considering every detail.
As many people have pointed out, it’s astonishing what these systems can now achieve. Even a year ago, I wouldn’t have believed you could build something like this in such a hands-off way. Software engineers are ahead of the general population in palpably feeling that something is happening here, but even we haven’t come close to understanding the effects this will have.
For one, the effects on employment. In part, this was an exercise in seeing how much worth I have when working in this way. Right now, it’s a lot. If Claude were truly left to its own devices, this would be a much worse piece of software: buggy, untested and lacking taste. But it’s not hard to see how my remaining interventions might in turn be automated in a new model; or even how, with enough poking and prodding, the right prompt or harness, the capability to automate them might already exist in the models we have. This is the unease every programmer is feeling: for now, we ask questions, we issue commands. It’s even enjoyable, though we find ourselves responsible for less and less. We are still in the room. Will there come a time when we are kindly led out, and the door shut behind us, so the real work can get done without distractions?
I think so. To some extent I believe in the ineffable, irreplaceable self, but we should have some humility about what is actually required to get things done. When I perform what we term “cognitive work”, really difficult reasoning, it doesn’t come naturally. I don’t feel that I am putting my full self into it; actually, the opposite. I feel like I am conjuring up a little automaton, and having it follow the rules of an intellectual game. Not that I actually have the ability to do such a thing. What I am really doing is inventing a narrative, a story in which this character I have created works through the possible moves and comes to the solution. Sometimes that solution even lines up with reality.
Is that all there is to the performance of intelligence? If so, it’s easy to imagine how a real machine might eventually do a better job, and how the absence of consciousness might even be an advantage.
Just limiting the conversation to what this is doing to developers, and leaving aside the question of where our next meal is coming from, I wonder how we will deal with a world where there are many fewer points of social contact. Before, if I wanted something like dwm I would have found someone else’s tool, and in taking it up I would embark on a sort of negotiation: if I wasn’t happy with how it worked, I would need to either change my workflow to suit their preferences or attempt to make my own changes to it and have them accepted upstream. Now, there’s no reason for me to; I can make my own weird thing.
And of course, we can’t just limit the conversation to software’s effect on itself and its makers, because we do not live in a world where software can be neatly sectioned off from the rest of society. Change how software gets made and you change what gets made, who makes it, what’s possible. If a substratum essential to the production of knowledge and power changes, you cannot restrict the impact from reverberating outwards in unexpected ways.
Anyway, there’s no reason to think it will stop with software. These new capabilities come from reinforcement learning: grade a model on concrete tasks, feed the scores back in, and it improves. Coding fell first because code is uniquely easy to grade. All the money in the world is now focused on grading everything else.
So there you have it: I made a new CLI tool, maybe one of the last.