I build local-first tools. They run on your own machine, at a footprint you can measure, and they don't phone home.
Mostly Rust and Python on a CPU-only laptop, which turns out to be a useful constraint. It forces you to find out what things actually cost instead of assuming the hardware will cover for you.
|
|
|
|
|
|
|
|
|
hidforge holds an exact click rate from 10 to roughly 10,000 per second and idles at 0% CPU. It learns whatever a button actually emits rather than assuming a button number, because side buttons don't arrive on a predictable channel and some never reach the OS at all.
AirLock strips API keys, passwords and PII out of text before it reaches an LLM. A CLI you can pipe or hang off a pre-commit hook, plus a browser extension that catches the paste itself. Entirely local, zero network calls, which is rather the whole point of a tool for not leaking things.
Alife grows micro-organisms that learn to survive within their own lifetime, no generational hand-waving, on a single CPU core.
mochi is a cat that lives on your desktop, watches you work, and expects to be fed.
anicli-rpc puts whatever you're watching on your Discord profile, live, by sitting between ani-cli and mpv without patching either of them. Sub or dub is deduced from the audio track's language tag, because ani-cli picks one and then never tells the player which.
Cadence is a to-do app built around the more interesting question: why you stop opening to-do apps.
Learning cybersecurity properly, rather than by tutorial.
Reading an unreasonable amount of Win32 documentation as a side effect of hidforge:
Raw Input, HID report descriptors, and exactly how much a QueryPerformanceCounter
spin loop costs you.
Local IPC, lately. Discord frames its messages with an 8-byte header, mpv speaks line-delimited JSON, and underneath both it is named pipes on Windows or Unix sockets on Linux, which are far less interchangeable than they look.
Before hidforge there was autoclicker: 53 clicks per second, non-adjustable, AutoHotkey. Most of what I've built since has been an argument with that.
