sentinel: watchers that page you, one morning brief, reply to act
Five inboxes, one calendar app that shows one account at a time. I built background watchers that page me only when something needs me, one combined morning message, and an agent I can text back to — now a Claude Code plugin.
mindframe: AI agents that learn your org and act on it
Your organization's working knowledge is scattered across Slack, docs, and a few people's heads. I built a bundle that turns it into a knowledge base — and runs agents that act on it.
I built an infinite radio station that Claude DJs
SuperCollider renders the audio. Claude composes the songs. PipeWire routes it through a null sink. ffmpeg encodes it to MP3. The browser just plays a stream.
I made Claude maintain my wiki
A Claude Code plugin that writes to an Obsidian vault after every session. No RAG, no embeddings, just markdown and grep.
phone to desktop relay
I wanted to text myself to trigger tasks on my computer. RCS said no. So I built an Android app.
thin interfaces, fat contracts
I keep noticing the same pattern in systems that last.
semantic contracts
The contract gets thinner.
composition under constraints
Some capabilities don't work like that.
building a plugin dependency resolver in 650 lines
I built a plugin dependency resolver — 650 lines of Python across five files, no external dependencies beyond the MCP library.