Things I have built.
Side projects, research prototypes, and open-source tools — a running log of what I make after hours. 7 of them, newest thinking first.
-
TypeScript
c302
What happens when you wire a 302-neuron worm brain to an AI coding agent? c302 is a research prototype that uses the C. elegans connectome — the only fully mapped nervous system in biology — as a behavioural modulator for LLM agents. A live neural simulation runs alongside the agent, translating biological dynamics into control signals that steer exploration, caution, and focus. The worm doesn't write code. It decides how the agent feels while writing it.
TypeScriptPythonNEURONOpenWormClaude SDK -
TypeScript
A CLI that discovers business domains in TypeScript / Node codebases and generates per-domain AI agent files for evolutionary architecture. Static analysis (TS compiler API, import graphs, naming patterns) finds natural domain boundaries, then emits agent context — interfaces, tech debt, observability gaps, scaling triggers — plus an MCP server so Claude Code and Cursor auto-load the right domain context as you edit. Built so AI-generated codebases don't hit a wall when the product takes off.
TypeScriptNode.jsMCPClaude SDKts-morph -
TypeScript
openhealth
Chat with your Apple Health data — anywhere. Claude's and ChatGPT's Apple Health connectors are US-only, so openhealth turns your 200MB export.zip into seven short markdown files any LLM can read. Streaming SAX parser handles a million records in about five seconds, entirely in your browser. Ships as a static web app, a Bun-compiled CLI, and a phone-to-desktop handoff over WebRTC. Pipe the output into a local model and your health data never leaves your laptop.
TypeScriptBunsaxesWebRTCCloudflare
-
Python
CrimeMap NZ
Interactive crime visualisation and prediction platform for New Zealand. Ingests over 1.15 million NZ Police records, geocodes them against Stats NZ boundaries, and constructs spatiotemporal tensors for deep learning prediction. Explore crime density across Auckland's 500m grid cells over time.
PythonPyTorchGeoPandasReact
-
TypeScript
Adaptive Browser
A purpose-built browser that constructs bespoke UIs from API specs and user preferences, instead of servers dictating the interface. Services publish a semantic UI manifest describing capabilities, and the browser assembles the right components — tables, cards, forms — layered with personal and organisational preference constraints.
TypeScriptTauri v2ReactRust
-
Go
Codemap
Incremental repo intelligence CLI that indexes every file in a repository with one-line summaries using a cheap LLM, then selects only the files relevant to a given task. Agents get exact context in one shot instead of burning 10+ tool calls exploring. Integrates as an MCP server for Claude Code with tools for select, status, and build.
GoMCPClaude CodeBLAKE3
-
Go
Slack TUI
Retro terminal Slack client with integrated AI hooks. Keyboard-first interface built with Bubbletea for channel browsing, threaded conversations, reactions, and fuzzy search. AI features include message summarisation, multi-tone reply drafting, and automatic sentiment analysis on thread open — all powered by Claude.
GoBubbleteaAnthropic SDKSocket Mode