One Year, 15,000+ Commits: What the Repo Graph Doesn't Tell You
Twelve months, 279 repositories and one idea I have rebuilt more times than I can count. The commit graph shows what I built. This is why.
Pull the commit history from every repo I have touched in the last twelve months and you get a graph that starts flat and goes nearly vertical: 4 commits in late October 2025, 2,949 in September 2026. About 15,700 in all, across 279 repositories.
| Month | Commits |
|---|---|
| Oct 2025 (from the 17th) | 4 |
| Nov 2025 | 5 |
| Dec 2025 | 32 |
| Jan 2026 | 231 |
| Feb 2026 | 348 |
| Mar 2026 | 1,065 |
| Apr 2026 | 1,165 |
| May 2026 | 1,340 |
| Jun 2026 | 1,960 |
| Jul 2026 | 2,665 |
| Aug 2026 | 2,101 |
| Sep 2026 | 2,949 |
| Oct 2026 (to the 16th) | 1,893 |
The early months undercount: until February, most of my work landed as automatic checkpoints, which this count leaves out. But the shape is right. The graph tells you what I built. It does not tell you why, or what happened in the gaps. This is that part.
A trip, and three lost weeks
On 16 December I went to the Py AI Festive Meetup in London, run by Pydantic with Google Cloud at Google's Central Saint Giles office. SurrealDB were there giving a talk and demos, and I got to meet some of their engineers. Then, as soon as I got back from England, I got sick, and took about three weeks off.
That broke my momentum on Quantum ACE, an "AI Command Engine": a visual orchestration platform for AI-assisted development. It was one more attempt at the thing I have been trying to build all along, an AI conductor: one place that runs a team of models and gets the work done. I have built some version of that dozens of times. Quantum ACE was one of them, and when I came back I did not pick it up again.
Vibing with Grok, and the billing problem
Instead I started a new app, Vibing with Grok. The Grok idea was older than that, with my first Grok prototypes dating from October 2025, but Vibing with Grok proper started in February. Grok was far cheaper than the other models at the time, so the plan was simple: Grok as the free tier, the other providers as premium. It grew fast, to nearly 700 commits. Then I hit a design flaw I should have seen at the start. I had built it as an app for people to use, with no plan to charge anyone. Add billing to that later and the billing logic lives in the client, and anything in the client can be cheated. If the app decides who has paid, users can just tell it they have.
Guardian Shield / Metatron Security
In February, Apple granted me the Endpoint Security entitlement, and I am genuinely grateful that they believed in the vision. I explained why it is needed for the coming AI age, and my pitch was simple. I do not want to interfere with system data: Apple polices that. I want to police user space, and what AI can do there, because the system's protections are about the system, not about what a user, or a user's agent, launches in user space.
Developing the SwiftUI app felt confusing at first: it was burning CPU just drawing itself. So I put it on the back burner while I learned more about Swift.
Cosmic Duck, twice
So in March I started Cosmic Duck, a Tauri app. It stalled. The UI never looked right, and I realised I was mostly re-implementing Vibing with Grok in a new shell except for the billing logic is now powered by my API, so I paused it.
The pause made me answer a different question: where do I actually want to be? The answer was the Mac. In April I started Cosmic Duck OS, my first real Swift app. Making text stream properly took far more debugging than I expected, and it took ages to get right. But once it worked, it became the base for everything that followed. It has run to 754 commits.
The design kit and the conductor
In June, a day apart, I started the Cosmic Design Kit and the AI Conductor app. The design kit exists so that I never rebuild the same UI by hand again. It is now shared by AI Conductor, Cosmic Duck OS, Baton, Metatron Security, SurveyorsMate and Cifra.
AI Conductor is the conductor idea done properly, with one rule I had been getting wrong: it does not depend on me. It does not route through my API. It talks straight to the providers using direct API keys, and it pulls the provider-reported billing and usage stats from Claude Code, AGY and Codex. It's had 964 commits since June, the second-most of any repo this year.
The engine underneath
Talking straight to the providers meant owning the agent loop myself. In July I started rust_agent, an embeddable, multi-provider agent engine, and two days later Baton, the command line and daemon that runs a fleet of agents across macOS, Linux and Windows. Baton is the most-committed repo of my year, at 1,068. The engine now drives a terminal front end and, since August, a second Tauri Cosmic Duck: the app I paused in March, rebuilt on the new engine as the combination of AI Conductor and Cosmic Duck OS.
I would put rust_agent up against any of the professionally available agent harnesses. I know exactly what is in it. There is no spyware in it, I am not monitoring anyone, no cloud bucket mass uploads, and I never see anyone's data. That is why I am building the whole stack, from the engine to the terminal that runs the agents: so that when I offer a service, I know it's clean.
Why Baton is a daemon
Putting all the logic in an app has a basic flaw: if the app is closed, nothing can start it. To launch work on my machine when I am not sitting at it, you need a daemon. And once you have a daemon that can launch AI services on your computer, you are building a remote access tool, with everything that means for security.
That is where Metatron Security comes in, and it is why I started Guardian Shield. An AI agent runs as you. As far as the operating system is concerned it is you, so anything you can read, it can read: your SSH keys, your cloud credentials, your login keychain. And anything an agent reads goes into its context, which is sent to the model provider. One cat ~/.ssh/id_ed25519, from a confused agent, an instruction hidden in a README, or a malicious package's install script the agent happened to run, and your private key has left the machine.
You cannot fix that by asking the model nicely. You have to stop the read. Metatron uses Endpoint Security to have macOS check with it before a protected file is opened. The tools that are meant to use those files, like ssh and git for your keys or gcloud for your Google credentials, are let through, checked by signature and location rather than just by name. Anything else is stopped, and I am asked. The key never reaches the agent, so it never reaches the cloud.
That is the user-space policing I pitched to Apple: they protect the system, and Metatron protects your secrets from whatever is running as you.
What the graph leaves out
The graph shows the side work too: two quoting apps, two crypto wallets, a LiDAR survey app, a Zig monorepo of components I use in the other apps. Each has its own reason, and maybe its own post. But the line through the year is one idea, rebuild until it is right.
Commit counts are from baton git activity across my two Macs: commits under my name on each repo's default branch, 17 October 2025 to 16 October 2026, with automatic checkpoint commits excluded and clones counted once. Vibing with Grok's figures come from its GitHub history. Work done on my Linux machine in late 2025 is not included.