Roughly a hundred public repos. A handful are alive.
Most of the roughly hundred public repositories are small and single-purpose. These are the ones that are alive: things I still push to, and a few that get installed by people who aren't me.
- folio: an open-source PDF viewer, built with Tauri, React 19, TypeScript and PDF.js. Fast, extensible, dark-mode native, and keyboard operable end to end, with forms, annotations, OCR, cryptographic signing and a plugin system.
- markcopy: a VS Code extension in TypeScript, on both the VS Code Marketplace and Open VSX. Rich Markdown and PDF preview, right-click copy as rich text that pastes formatted into Word, Gmail and Google Docs, per-element copy for code, tables as CSV/TSV and Mermaid diagrams as PNG/SVG, and a built-in PDF viewer.
- uemcp: an MIT-licensed MCP server that drives Unreal Engine 5 by natural language, with no plugin to compile and nothing to install inside the editor. Published on PyPI as
uemcp, running against UE 5.0 through 5.7. It's ATDev's, and it's the foundation the OPAL accessibility layer is being built on. - polaris: a task tracker for one person and the agents that work for them, in TypeScript. Everything lives in one SQLite file on your own machine, and agents connect over MCP. They can read everything and propose changes, but they can't act behind your back. The decisions stay with you.
- moonveil: open-source dark mode for every website, for Chrome, Edge and Firefox, based on Dark Reader. It remaps each page's colors instead of just inverting them. Early: 0.1.0 isn't in any extension store yet.
- crab-sim: you are a crab. Scuttle, dig, molt, and survive the tide and the gulls. Unreal Engine 5.8 and C++, and playable entirely with a mouse: every action is a click, the click targets are big at any camera range, and nothing needs aim or a fast twitch.
- trinket: a desktop shelf of mouse-driven fidget toys, with a small SDK for building your own.
- deckhand: written in Rust, a mouse-only, always-on-top control surface for Claude Code, with live per-session status tiles.
- blendmcp: controls Blender from LLMs through the Model Context Protocol, a telemetry-free fork of ahujasid/blender-mcp.
- offloader: verified media offload for camera cards, with ShotPut Pro-compatible job reports, ASC MHL, and Blackmagic RAW support.
- Shutter: closes every open plugin window in Ableton Live with one click, an open-source Max for Live device and a free alternative to Plugin Closer.
- penstock: a streaming speech gateway in Java 21, Spring Boot 4.1 and WebFlux.
The accessibility and assistive work has its own page, and the research repositories are on the research one.
Working inside other people's code
Some of it isn't mine to start with: merged contributions to Mathlib 4, to Dasher, and a new Mouse Button Lock module in Microsoft's PowerToys. The details of all three are on the consulting page.