Skip to content

Coding

Things I build.

Mostly because something I wanted didn’t exist yet, or something I wanted to learn how to do. Not everything here is fully public — here’s where each one’s at.

Public projects

Open on GitHub.

Open source, ready to read or run yourself.

CursorGram

Run Cursor agent sessions from your phone, over Telegram.

A bridge between Cursor’s coding agent and Telegram, so you can kick off and steer agent sessions from your phone. Live-streams agent activity, lets you review git diffs before they land, keeps sessions persistent between messages, and ships with a small web console.

  • Python 3.11
  • Telegram Bot API
  • macOS service
  • Git
  • Web console
CursorGram icon

Closed testing

Pending release.

Apps being tested before a wider release — not open to everyone just yet.

FestivAgent

Closed testing

Add a lineup. Build your plan. Ask the crowd — offline.

Search Clashfinder for your festival and import its full lineup to your phone. From there, search by artist, day, stage or genre; build a clash-aware schedule; and ask grounded questions with optional on-device AI. Ask the Crowd finds nearby FestivAgent users over Bluetooth and Wi-Fi, then relays messages through other phones so you can chat to the whole crowd or DM one person without a network.

  • Kotlin
  • Jetpack Compose
  • Nearby mesh chat
  • Room
  • llama.cpp
  • Offline-first

If you'd like to be an early tester, email me and I'll let you know how to join the closed test.

FestivAgent icon

SWCP Tracker

Closed testing

Log the 630-mile South West Coast Path, privately.

A privacy-first Android app for walking the South West Coast Path. Tracks your progress against the full 630-mile route on an OpenStreetMap map, works offline once you’ve preloaded the map, keeps all your data on-device, and needs no account and no tracking. Currently in closed testing on Google Play.

  • Kotlin
  • Jetpack Compose
  • Material 3
  • Room
  • osmdroid
  • Privacy-first

If you'd like to be an early tester and get the app now, email me and I'll send you the opt-in link. It's free either way.

SWCP Tracker icon

Private projects

Not publicly available at present.

Built for myself rather than to ship, so there’s no repo or live link. Interested in how one works? Get in touch.

Graham — the total home agent

Private

An always-on household agent, built to be trusted unattended.

A Python service that runs my own household over Telegram and a local web console. It switches between Claude and GPT depending on the task, keeps its memory in a plain-markdown vault I can read and edit myself, and asks for approval before it does anything outside the chat, like sending an email. Spend is capped, not just tracked.

  • Python
  • FastAPI
  • Telegram Bot API
  • APScheduler
  • Claude + GPT
  • Obsidian vault
  • Safety rails
Graham — the total home agent icon

ImagusReborn

Private

A Chrome extension Google killed, so I rebuilt it.

I used to rely on Imagus, a Chrome extension that let you hover over any thumbnail or link and see the full-size image or video instantly, no new tab required. When Chrome deprecated the old extension platform it depended on, Imagus stopped working, so I rebuilt the whole thing myself. It hovers, previews, and pins images and video inline, with site-specific handling for places like Reddit and YouTube, and its own zoom and pan controls.

  • TypeScript
  • Chrome Extension (Manifest V3)
  • esbuild
  • hls.js
ImagusReborn icon

More bits and pieces on GitHub.