Selected work

Useful software with a point of view.

I build AI systems, Mac utilities, civic tools, and native apps around one habit: turning loose context into interfaces people can actually use.

Browse apps
26
apps
26
AI covers
44
captured screens

AI-native products

Local Mac utilities

Native app experiments

Systems with receipts

Selected portfolio

A sharp edit of the apps worth showing.

Each card opens the cover art, captured screens where available, and the build context behind the product.

The system behind the work

JARVIS — the operating system that builds the rest.

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.

60
specialist agents
11
prime directives
L0–L5
memory stack
210+
engineering skills
~350
token cold start
24/7
always on
01

Intent

The message is matched to the agent and skill that own it.

02

Route

The orchestrator delegates with clear instructions. It coordinates; it doesn’t execute blindly.

03

Build

The specialist runs with the most direct tool and relevant past lessons injected first.

04

Receipt

Cortex records the handoff, shared context, and proof so work survives across sessions.

05

Remember

The memory loop persists what changed and what was learned for next time.

Orchestration

Route, don’t execute

Intent maps to the agent that owns it. JARVIS delegates and synthesizes instead of doing everything in one overloaded thread.

Layered memory

L0 identity to L5 raw

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.

Cortex

Coordination with receipts

Durable queues, shared context, and accountable handoffs across sessions, plus a scout that goes and finds a missing capability.

Skills

A library that compounds

210+ engineering skills and a growing set of learned lessons. A pattern seen three times gets promoted into a reusable skill.

Integrations

The most direct tool

Direct connectors for mail, calendar, docs, chat, and the web, plus native control of the Mac — always preferred over slower automation.

Self-improvement

Learns from its own misses

Failed tool calls are distilled into lessons automatically, and state is saved before the context window ever compresses.

The team it routes to

One chief of staff over a roster of specialists, each tuned to a model and a domain.

Orchestrator Researcher Content Strategist Scheduler Finance Builder App Studio Analyst Web Designer Onboarder Independent Grader + ECC builder sub-team

How it operates

Memory is sacred

Read at the start of a session, written before the end. Nothing learned is allowed to evaporate.

Plan before acting

For anything substantial: propose, get explicit sign-off, then build. No build without the go-ahead.

Minimal scope

Do exactly what was asked. Don’t touch unrelated code, and don’t improve what wasn’t broken.

Protect context

Summarize large outputs, clear between phases, and send sub-agents to explore so the main thread stays sharp.

Boring is beautiful

A deterministic script beats an agent nine times in ten. Reach for judgment only when the work truly needs it.

Discover before blocking

When a capability is missing, go find it — a tool, a skill, an MCP — before ever saying it can’t be done.

Operating style

Find the messy moment, then design the handle.

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.