Skip to content

A year in code: what I was actually trying to build

Published: at 06:30 PM

If you look at my GitHub for the past twelve months, it looks like chaos. Agent studios, a fitness app, a podcast generator, a blog that writes itself, a stack of small servers for apps I happen to use. Most of them got a burst of commits and then went quiet.

I went back through all of it this week, trying to work out what I was actually doing. The answer is less random than the repositories suggest. I kept circling the same five ideas.

1. Agents need a home

The idea I’ve spent the most time on is a place to make agents and run them. You describe an agent, give it a model and some tools, talk to it, let it work, and come back later to see what it did.

I have started this four times now. The first version last August was a backend for creating and running agents across a few model providers. In December I rebuilt it around knowledge bases and vector search. On Christmas Day I started it again from scratch, removed the frontend, put it back, and stopped. Last month it became a desktop app that talks to five providers and ships for three operating systems.

Each version was bigger than the one before, and each stopped at about the same place: where creating agents, chatting with them, running them and watching them all had to become one product. I don’t have a fix for that yet. I do have a suspicion that “one product” is the problem.

2. Agents are only as useful as what they can reach

A model that can only talk is a clever search box. The moment it can read your calendar, your runs, your RSS feeds or your company’s invoices, it becomes something else.

So in March I wrote small connectors, one after another, using the Model Context Protocol: for my running data, my workflow automation, Formula 1 results, image generation, movies, my feed reader and an ERP system. Most took a day. That speed is the point. The protocol turns “give the assistant access to X” from a project into an afternoon.

The one I expected least from is the ERP connector. It is the most boring of the lot, and it’s the only one that touches the place where a business keeps its real data. I suspect the boring connectors will turn out to be the useful ones.

3. Generation without curation drifts

In November I built a blog that runs itself. It reads news feeds by category, has Claude rewrite the stories, and publishes to the site on a schedule. For about two weeks it was fun to watch.

Then it found its voice, and the voice wouldn’t change. Post after post came out in the same grand, mournful tone, with titles like “Gaia’s Lament” and “Echoes of Earth”. Nothing was broken. The pipeline did exactly what I built it to do. It just turned out that unattended generation doesn’t drift towards variety; it drifts towards its own favourite sound.

The lesson I took: curation isn’t a finishing step on top of generation. It is the product. Something, or someone, has to decide what’s worth publishing.

4. Agents as a production crew

The podcast project started from a simple question. Could a team of agents produce a motorsport podcast end to end? One researches the race weekend, one plans the episode, one writes the script, one voices it, one masters the audio.

It’s a good way to learn what multi-agent really means. The interesting work isn’t in any single agent. It’s the handoffs: what each agent passes to the next, and what happens when one of them produces something the next can’t use. The voice alone went through three text-to-speech engines before it sounded like a person. Last week I rewrote the whole pipeline around an explicit graph of steps instead of a coordinating agent, and it got simpler.

5. Personal agents for personal things

Some of the projects are just me trying to make my own life easier. A fitness coach that builds personalised workouts. A voice journal you talk to at the end of the day. A personal assistant that I’d like to live on my phone and my laptop at once. Right now I’m experimenting with digital personas: agents that keep a consistent character across social media.

These are the projects I’m least likely to publish and most likely to keep using. They’re also where the uncomfortable questions show up first. An agent that knows your health data, your journal and your voice needs to be trustworthy in a way a demo never does.

Ideas are cheap; picking is hard

At some point this winter I started a list of agent ideas. It passed five hundred, then a thousand, along with a folder of research reports I’d asked various AI tools to write for me.

The list was useful for exactly one thing: showing me that ideas are not the bottleneck. Every one of the five themes above came from a real problem, not from the list.

What I want from the next year

Fewer restarts. Finishing one of these properly would teach me more than starting five more. In particular I want to:

That last one starts now.


Previous Post
The sensor was in the airflow
Next Post
Welcome to My Den