Projects 7 total

Things I've built.

Side projects, research prototypes, and open-source tools — a running log of what I've been making after hours.

All projects 7 total

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.

TypeScript Python NEURON OpenWorm Claude SDK
c302 connectome visualization — animated neural network with signal pulses

domain-agents

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.

TypeScript Node.js MCP Claude SDK ts-morph
domain-agents — animated diagram of a central AI agent connected to specialised domain agents

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.

TypeScript Bun saxes WebRTC Cloudflare
openhealth web app — drop your Apple Health export, get seven markdown files

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.

Python PyTorch GeoPandas React
CrimeMap NZ dashboard — Auckland crime heatmap with hotspot rankings

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.

TypeScript Tauri v2 React Rust
Adaptive Browser landing page — API endpoint list with preference-driven UI

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.

Go MCP Claude Code BLAKE3
Codemap CLI showing ASCII banner and usage commands for incremental repo intelligence

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.

Go Bubbletea Anthropic SDK Socket Mode
Slack TUI chat view — retro terminal interface showing channel messages