Projects

Things I'm working on outside the day job. All open source.

Active

Open Conduit

Keeps coding agents working on issues and pull requests until they are actually done.

A daemon that runs on your machine and tracks issues, pull requests, Slack threads and alerts as work to be finished. If a run fails, CI goes red or a reviewer replies, it picks the work back up. The agent only gets the permissions you give it, and those are checked outside the model.

  • Mostly builds itself: on 2 Nov 2026, 158 of the 168 merged PRs came from its own agents
  • Work can wait hours or days for a merge, a CI result or a reply, and survives restarts
  • Works with GitHub, Linear, Jira, Slack and scheduled jobs
  • Go
  • Claude Code
  • Codex CLI
  • TUI + Web
Live

Percy Main

Website, members area and match-day app for my cricket club.

Everything online for Percy Main Community Sports Club: the public site, members area and payments, and an app captains use on match days. It runs on AWS. It also has Scout, which looks up the opposition in Play Cricket and ball-by-ball data and writes a scouting report.

  • Match-day app for team sheets, availability and payments that still works when the signal at the ground drops
  • Scout remembers things captains tell it and cites its sources in the PDF reports
  • An assistant that drafts match reports from the scorecard
  • Over 500 commits since March 2026, infrastructure in Terraform
  • TypeScript
  • Fastify
  • React
  • PostgreSQL
  • AWS + Terraform
  • Stripe
Experiment

FugueState

A memory sidecar for Claude Code that tidies up what it has learned overnight.

It records what Claude Code does and what you tell it, and builds up beliefs about how you like to work. On a timer it goes to sleep: it looks for beliefs that contradict each other and has a model resolve them, writing up a dream journal as it goes. Every twelfth cycle it goes on a spirit quest and rewrites everything, then checks whether the rewrites were any good.

  • Runs alongside Claude Code via hooks
  • Beliefs get kept, merged or retired when they conflict
  • Each new session starts with a summary of what changed overnight
  • TypeScript
  • Claude API
  • SQLite
  • Docker
Research

Quantum AI

Research into using quantum measurement as the memory of a sequence model.

Can measuring a quantum system be how a sequence model updates its memory? Here, producing the next token and updating the memory are the same step: the model measures a helper qubit, the result is the token, and the memory keeps whatever state the measurement left it in.

  • Includes qmem, a small differentiable simulator
  • Two to four memory qubits, built on PyTorch
  • Simulation only for now, and mostly worked on by Open Conduit agents
  • Python
  • PyTorch
  • uv