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.