Intent
The message is matched to the agent and skill that own it.
Selected work
I build AI systems, Mac utilities, civic tools, and native apps around one habit: turning loose context into interfaces people can actually use.
AI-native products
Local Mac utilities
Native app experiments
Systems with receipts
Selected portfolio
Each card opens the cover art, captured screens where available, and the build context behind the product.
The system behind the work
Every app on this page runs through one orchestrator. JARVIS reads the request, routes it to the specialist that owns it, works against layered memory, and leaves a receipt behind. It self-configures on first run and rewrites its own playbook as it learns.
The message is matched to the agent and skill that own it.
The orchestrator delegates with clear instructions. It coordinates; it doesn’t execute blindly.
The specialist runs with the most direct tool and relevant past lessons injected first.
Cortex records the handoff, shared context, and proof so work survives across sessions.
The memory loop persists what changed and what was learned for next time.
Intent maps to the agent that owns it. JARVIS delegates and synthesizes instead of doing everything in one overloaded thread.
A six-layer stack that loads lazily — a ~350-token cold start, with semantic recall pulling the right files only when the topic calls for them.
Durable queues, shared context, and accountable handoffs across sessions, plus a scout that goes and finds a missing capability.
210+ engineering skills and a growing set of learned lessons. A pattern seen three times gets promoted into a reusable skill.
Direct connectors for mail, calendar, docs, chat, and the web, plus native control of the Mac — always preferred over slower automation.
Failed tool calls are distilled into lessons automatically, and state is saved before the context window ever compresses.
One chief of staff over a roster of specialists, each tuned to a model and a domain.
Read at the start of a session, written before the end. Nothing learned is allowed to evaporate.
For anything substantial: propose, get explicit sign-off, then build. No build without the go-ahead.
Do exactly what was asked. Don’t touch unrelated code, and don’t improve what wasn’t broken.
Summarize large outputs, clear between phases, and send sub-agents to explore so the main thread stays sharp.
A deterministic script beats an agent nine times in ten. Reach for judgment only when the work truly needs it.
When a capability is missing, go find it — a tool, a skill, an MCP — before ever saying it can’t be done.
Operating style
Across the work, the pattern is practical: compress scattered inputs into a clear surface, give the user a next move, and leave enough proof that the system can be trusted.