Projects(27)

Things I have shipped: software running in urgent care clinics, the agent systems I build with, and a music product. Capability level only, no client names, no patient data.

  1. 01 Music Education

    Tutti

    A way into classical music that tells you what to listen for

    A bilingual classical-music learning product that guides people through pieces with stories, context, and things to listen for: not intimidating analysis or assumed expertise.

    The problem
    Classical music can feel locked behind jargon, theory, and an expectation that newcomers already know how to listen.
    Who it is for
    Amateur listeners and newcomers who want a bilingual path into classical music
    What it changed
    A welcoming way to hear more in every piece, build confidence, and turn curiosity into a lasting listening habit.
    How it works

    A listener chooses a piece and a language, then follows a story-first path that sets the scene and introduces a few concrete things to hear before or during the music. Context and guided listening arrive in small steps, so newcomers build confidence without being dropped into theory-heavy analysis.

    Bilingual UXGuided ListeningStory-First Learning
  2. 02 Healthcare AI

    Patient Portal

    One web app for the whole clinic day

    A web platform for a clinic's day: check-in, a live provider queue, lightweight charting, telehealth, staff messaging, and billing in one place instead of a dozen disconnected legacy tools.

    The problem
    Clinics juggle fragmented systems with no shared real-time picture, so nothing improves quickly.
    Who it is for
    Urgent-care clinics + their front-desk, clinical, and billing teams
    What it changed
    Real-time queue visibility, faster patient throughput, less manual charting, and operations you can actually iterate on: all in one owned surface.
    How it works

    A single web app fronts the whole clinic. Check-in writes a patient onto a shared queue that every screen subscribes to over server-sent events, so the front desk, providers, and billing all see the same state in real time: no polling, no stale views. Charting, telehealth, and claims hang off that same record.

    TypeScriptReactRedis (SSE)TwilioStripe
  3. 03 Agent Infrastructure

    Firstmate

    The one agent I talk to; it runs the rest

    The one captain-facing surface for dispatching agent work: Firstmate routes goals through persistent secondmates, keeps subordinate workers behind one interface, and watches for trouble: rate limits, context exhaustion, dead sessions: so work can recover automatically. This work builds on Firstmate, Kun Chen's open-source project.

    The problem
    A single agent is a toy. A dependable system needs many agents, coordinated, supervised, and safe enough to run unattended.
    Who it is for
    Anyone running AI agents that must stay up and do real work
    What it changed
    Agents that run real work overnight, detect their own degradation early, and recover with full context: including building and shipping this site.
    How it works

    Firstmate is the sole captain-facing surface: the captain gives it a goal, and it routes the work through persistent secondmates that each hold a scoped responsibility over time. Those secondmates coordinate projects and outcomes while subordinate workers stay internal, so the public model stays legible without exposing every execution identity. This work builds on Kun Chen's open-source Firstmate project: https://github.com/kunchenguid/firstmate.

    TypeScriptBunClaude Codetmuxsystemd
  4. 04 Clinic Operations

    Patient Intake

    Patients check themselves in before they are roomed

    A kiosk and mobile intake flow where patients check themselves in: confirm demographics and insurance, sign policies, answer pre-visit questions: and drop straight into the live clinic queue.

    The problem
    Front desks are the bottleneck during a rush, and half-finished intake stalls the provider.
    Who it is for
    Urgent-care clinics + arriving patients
    What it changed
    Faster check-in, complete structured data before the patient is roomed, and real-time arrival alerts for staff.
    How it works

    A kiosk or phone flow captures demographics, insurance, and pre-visit answers, runs OCR + eligibility on the insurance card, and drops a structured, validated record straight onto the live queue: pushing a real-time arrival alert to staff. The provider sees complete data before the patient is roomed.

    TypeScriptSSETwilioOCRKiosk UI
  5. 05 Agent Infrastructure

    Agent Machine Fleet

    Dedicated machines for the agents, separate from my own

    A network of dedicated computers, each running autonomous agents that write code, review PRs, and automate browsers: isolated from my main workstation so the agents don't compete with it or carry context between tasks.

    The problem
    Running many agents on one machine causes contention, instability, and context pollution.
    Who it is for
    Teams + solo builders scaling AI work across hardware
    What it changed
    Dispatch-and-forget delegation, true parallel work across many repos at once, and zero pollution of my own environment.
    How it works

    Work is spread across dedicated machines instead of one box. Each runner is isolated: its own sessions, its own browser, its own context: so dozens of agents work in parallel across many repos without contention or context bleed, and nothing pollutes the human's workstation.

    Claude CodetmuxSSHsystemdGitHub Actions
  6. 06 Dev Tooling

    CODY, a code reviewer that learns its own rules

    Reads every PR across my repos and holds the merge until its rules pass

    An AI code reviewer that posts PR reviews, records what it missed, researches detector improvements, and auto-merges upgrades to itself. Each run uses a fresh throwaway container so its secrets stay local.

    The problem
    Off-the-shelf review bots repeat the same misses forever and learn nothing.
    Who it is for
    Engineering teams that want review that improves over time
    What it changed
    Precision that compounds PR over PR, a 'prove-it, don't assert-it' culture, and ephemeral-runner security that keeps secrets local.
    How it works

    A pull request triggers a review on a fresh, throwaway container (so secrets stay local). After posting findings, CODY captures what it missed, researches a detector improvement, and opens a PR against itself: so review precision compounds with every pass instead of plateauing.

    TypeScriptClaude OpusGitHub ActionsDocker
  7. 07 Knowledge Systems

    Second Brain Knowledge Engine

    Vector plus keyword plus graph retrieval over my notes

    A knowledge system that answers questions over thousands of notes by blending three methods: LLM reasoning, a graph database, and vector search: then synthesizes one cited answer and flags what's missing.

    The problem
    Pure vector search misses relationships; pure keyword search misses meaning.
    Who it is for
    Anyone with a large personal or organizational knowledge base
    What it changed
    Fast, precise, cited answers across a whole vault: graph traversal for relationships, vectors for meaning, reasoning to tie it together, with honest gap-flagging.
    How it works

    A question fans out to three retrievers at once: LLM reasoning, a graph database for relationships, and vector search for meaning: then a synthesizer merges the hits into one cited answer and flags any coverage gaps. No single method has to be right alone.

    Neo4jPostgreSQLpgvectorLightRAGClaude
  8. 08 Media & Voice

    Fleet Voice System

    Each machine and notification gets its own synthetic voice

    A self-hosted text-to-speech system where each source speaks in a distinct voice, plus a 'Fusion Lab' that blends voices in embedding space to make new ones: for notifications, narration, and the video voiceovers on this site.

    The problem
    Audible notifications only help if you can tell what they're from, and custom voices normally need costly APIs.
    Who it is for
    Builders of voice apps, agent operators, and content creators
    What it changed
    Source-identifiable spoken alerts, true embedding-space voice blending (not splicing), and a self-hosted alternative to paid voice APIs.
    How it works

    Each source gets a distinct voice so you can tell notifications apart by ear. New voices are made by blending existing ones in embedding (x-vector) space: averaging the speaker vectors, not splicing audio: which is what keeps any single donor's identity out of the result.

    Qwen3-TTSx-vector embeddingsWhisperTypeScript
  9. 09 Agent Infrastructure

    Multi-Account AI Load Balancer

    Spreads Claude Code sessions across accounts so one rate limit does not stop the fleet

    A launcher that picks among many AI accounts by available headroom and fails over automatically, so a single rate limit never silences the whole system. Adding an account means dropping its file on disk; no code changes.

    The problem
    One account hitting its limit can halt every agent that depends on it.
    Who it is for
    Heavy AI users running many concurrent agent sessions
    What it changed
    Continuous uptime under heavy load, automatic failover, and anti-concentration routing so no single account gets overloaded.
    How it works

    A launcher scores every available account by remaining headroom and picks the best one per call, failing over automatically when one is exhausted: so a single rate limit never silences the system. Accounts are discovered from disk, so adding one is dropping a file, not editing code.

    TypeScriptBashClaude APIsystemd
  10. 10 Healthcare AI

    AI Chart & Coding Auditor

    Reads charts and flags billing-code errors before a claim goes out

    A service that continuously reviews clinical encounters with rule packs plus an LLM, flagging common coding mistakes: mis-leveled visits, wrong patient class, missing codes: each with a confidence band and a suggested fix.

    The problem
    Provider-side coding errors quietly cost clinics real revenue, and manual audits eat staff time.
    Who it is for
    Billing, coding, and compliance teams at urgent-care clinics
    What it changed
    Recovers revenue lost to coding errors, cuts manual audit labor, and produces per-provider trends for coaching.
    How it works

    A scheduler pulls clinical encounters and runs them through rule packs plus an LLM to flag likely coding mistakes: mis-leveled visits, wrong patient class, missing codes. Each finding carries a confidence band and a suggested fix, queued for a human biller rather than auto-applied.

    TypeScriptlocal LLM (vLLM/Qwen)EMR APISQLite
  11. 11 Healthcare AI

    Claraly, a patient engagement assistant

    Answers routine patient texts and runs follow-up, with a human on every edge

    An AI assistant that handles patient texting: routine questions about hours and services, wait-time updates, automated post-visit follow-up: and routes anything clinical straight to a human.

    The problem
    Front desks drown in routine calls, and post-visit follow-up is inconsistent.
    Who it is for
    Urgent-care front-desk and clinical teams
    What it changed
    Fewer routine calls, faster replies, and automated recovery check-ins: with strict human-in-the-loop safety so it never gives medical advice.
    How it works

    Inbound patient texts hit an AI layer that answers routine questions (hours, services, wait times) and runs post-visit follow-up. Anything clinical is detected and escalated to a human immediately: the safety guardrail is the point, so it never gives medical advice.

    LLM (GPT-4 / Claude)Twilio SMSn8nLangfuse
  12. 12 Agent Infrastructure

    Fleet Health System

    Watches every agent for exhaustion, rate limits, and silence

    A monitoring system for AI agents. A sensor checks each agent's vitals: context pressure, rate-limit status, liveness: flags trouble with smooth scoring, and offers consent-gated actions like compaction, transfer, or resurrection.

    The problem
    Agents fail quietly, exhausting context or hitting limits with no warning.
    Who it is for
    Operators of persistent agent fleets who need reliability
    What it changed
    Early degradation detection, no-cliff smooth scoring, treatment that never overrides a refusal, and a live board showing the whole fleet at a glance.
    How it works

    A sensor reads every agent's vitals each tick: context pressure, rate-limit status, liveness: and scores risk on a smooth curve (no threshold cliffs). When risk crosses a line it offers a treatment (compaction, transfer, resurrection) that the agent can refuse; consent is never overridden.

    TypeScriptsystemdtmuxClaude APIJSONL
  13. 13 Dashboards

    Heads-Up Dashboard

    A daily brief that shows only what changed

    A personal dashboard that folds many streams: commitments, deals, infrastructure health, spend: into one narrative brief, and stays quiet until something materially changes so it never becomes wallpaper.

    The problem
    Operating pictures scatter across tools, and delegated work falls through silently.
    Who it is for
    Solo operators and small teams who want awareness without noise
    What it changed
    Commitments first, nothing-drops tracking, material-change detection that suppresses churn, and a brief you can scan in seconds.
    How it works

    It aggregates many streams: commitments, deals, infra health, spend: and runs material-change detection so it only speaks when something actually moved. The output is one narrative brief, not a wall of metrics, so it never decays into wallpaper.

    TypeScriptBunmaterial-change detectionmTLS
  14. 14 Agent Infrastructure

    Agent OS, the nation

    A written charter and offices for a fleet of agents; I later simplified it away

    A framework for running a large agent fleet with an executive, legislature, and judiciary in code and documents. It records decisions, limits terms, and keeps a succession handbook so knowledge survives rotation.

    The problem
    Managing a big fleet by hand becomes chaos: no accountability, no policy, a rulebook that rots.
    Who it is for
    Researchers exploring how to govern large multi-agent systems
    What it changed
    Every agent has a durable identity, every decision is recorded, recovery follows rules instead of heroics, and the law self-prunes via a 'librarian' that garbage-collects stale rules.
    How it works

    A fleet is governed like a state: an executive decides and acts, a legislature ratifies rules as versioned law, and a judiciary adjudicates. Term limits force every artifact to survive rotation, and a 'librarian' garbage-collects stale law so the rulebook stays small as the system grows.

    Markdown-as-lawGitTypeScriptClaude Code
  15. 15 Dev Tooling

    Session Resurrection Engine

    Brings crashed agent sessions back with their conversation intact

    A recovery tool that durably records each session's identity and location, then restores the exact conversations and working context after a crash, reboot, or terminal-server failure.

    The problem
    When a multiplexer crashes or a machine reboots, live sessions and their full history vanish.
    Who it is for
    Anyone running long-lived terminal AI sessions
    What it changed
    Automatic capture when a session is born and deterministic resurrection with full history: no manual re-selection, no lost work.
    How it works

    When a session is born it durably records its identity and where it lives. After a crash, reboot, or terminal-server failure, the engine replays that record to restore the exact conversations and working context: deterministically, with no manual re-selection.

    Bashtmuxtmux-resurrectJSON registry
  16. 16 Healthcare AI

    Self-Hosted Insurance Card OCR

    Reads an insurance card from a photo without sending it to a third party

    An intake component that scans a photo of an insurance card and extracts payer, member ID, and plan details automatically to feed eligibility checks: running on infrastructure the clinic controls.

    The problem
    Hand-keying cards is slow and error-prone, and sending card images to third parties raises privacy concerns.
    Who it is for
    Urgent-care clinics and their intake staff
    What it changed
    Instant, accurate card capture with a fallback OCR engine, feeding real-time eligibility: less typing, fewer errors, more privacy control.
    How it works

    A card photo is preprocessed and read by a document-AI model, with a fallback OCR engine if confidence is low. It extracts payer, member ID, and plan, then feeds a real-time eligibility check: all on infrastructure the clinic controls, so card images never leave their walls.

    Document AIFallback OCREligibility APIPython
  17. 17 Dashboards

    Fleet Monitoring Wall

    One screen showing every agent pane at once

    A web UI that streams live terminal sessions from many machines into one configurable grid: a read-only view of an agent fleet by default, with a secure, gated way to take control of a single pane.

    The problem
    Operators need one place to watch dozens of agents and step in, without everything being writable by default.
    Who it is for
    Fleet operators and agent-infrastructure teams
    What it changed
    At-a-glance monitoring of dozens of agent sessions on one screen, a read-only-by-default posture, and on-demand single-pane control over an encrypted channel.
    How it works

    Live terminal sessions from many machines stream into one configurable grid over an encrypted channel: CCTV for an agent fleet. It's read-only by default; taking control of any single pane is an explicit, gated action, so watching can never accidentally become writing.

    ttydxterm.jstmux capturemTLS
  18. 18 Agent Infrastructure

    Acquisition Prospecting Platform

    Researches acquisition targets and drafts outreach I then send myself

    A platform that finds acquisition targets, researches each into a sourced profile, picks the best personalization angles, writes personalized letters and emails, then runs the multi-touch campaign with reply tracking.

    The problem
    Prospecting is hours of manual research per target and generic outreach that gets deleted.
    Who it is for
    M&A teams, search funds, and acquisition entrepreneurs
    What it changed
    Hours-to-minutes research, human-grade personalization, and an adversarial writer→critic→buyer-simulation loop that strips generic and creepy language before anything sends.
    How it works

    It discovers acquisition targets, researches each into a sourced profile, picks the strongest personalization angle, and drafts outreach: which then passes through an adversarial loop: a writer drafts, a critic attacks, and a simulated buyer reacts, stripping generic and creepy language before anything sends.

    TypeScriptBunClaude (multi-agent)HubSpotLob
  19. 19 Developer Tools

    Autonomous Merge Gate

    Code merges itself only when every gate passes

    A system that lets orchestrator agents merge their own PRs only after checking actual review-thread state and CI status. It handles resolved and outdated threads, waits for re-review after fix pushes, and treats reviewer silence as 'not approved.'

    The problem
    Agents kept auto-merging unfixed code by counting comments, racing fix commits, or misreading outdated/blocked review threads as green.
    Who it is for
    Autonomous AI coding agents shipping to main without a human in the loop
    What it changed
    PRs now merge unattended with the same rigor as a careful human reviewer, eliminating false-green merges and silent blocks.
    GitHub ActionsCodeRabbitGraphQL review-thread APICI status checksNode.js
  20. 20 Agent Infrastructure

    Agent Seat Rescue Daemon

    Revives dead and rate-limited agent seats without a human

    A distributed watchdog that continuously checks whether each agent seat is live, then restarts rate-limited, dormant, or crashed Claude panes. Cooldowns and crash-loop detection keep it from repeatedly rescuing a permanently broken seat. It judges success rather than age and confirms liveness before acting.

    The problem
    Agent seats die silently or get rate-limited and stale monitors report them as 'LIVE' while no work happens, forcing manual revival.
    Who it is for
    Operators running large always-on AI agent fleets
    What it changed
    Keeps the fleet self-healing and continuously productive without the boss agent or a human babysitting restarts.
    tmuxsystemdlaunchdClaude CodeBashSSH
  21. 21 Agent Infrastructure

    Fleet Config Deployer

    Every box pulls its own config on every push to main

    A pull-based deployment pipeline where each machine runs its own self-hosted CI runner that reconciles dotfiles, shell init, and Claude Code plugins from a central Git repo. Replaces brittle SSH sync scripts with idempotent, per-machine reconciliation that also manages agent plugins, not just config files.

    The problem
    SSH push-sync scripts silently drifted, never managed plugins, and leaked per-box overrides to the whole fleet.
    Who it is for
    Operators running a heterogeneous fleet of agent machines
    What it changed
    Every machine converges to its intended config and plugin set on its own, eliminating cross-fleet drift and accidental override leaks.
    GitHub Actions self-hosted runnersGitZsh/BashsystemdmacOS LaunchDaemons
  22. 22 Agent Infrastructure

    Fleet Credential Broker

    One source for every agent's tokens, never a plaintext file

    A centralized credential layer that issues and rotates per-agent auth tokens from the OS keystore, isolating each agent's secrets so a switch on one machine never clobbers another's. It validates tokens against their real source instead of trusting fragile signals like process environ reads.

    The problem
    Plaintext token files, racing account switchers, and unreliable token-presence checks caused silent auth failures and one agent overwriting another's credentials.
    Who it is for
    Autonomous AI agent fleets that authenticate across many accounts and machines
    What it changed
    Every machine in the fleet authenticates with the right isolated token, with secrets kept out of plaintext and out of each other's way.
    1Password Service AccountsOS KeystoresystemdBashtmux
  23. 23 Agent Infrastructure

    Fleet Doctrine Sync

    Keeps every agent on the same version of the rules

    A system that sends updated agent skills, operating doctrine, and scoped stand-down orders to every running seat mid-session, then verifies that each agent adopted the new rules instead of using cached instructions. It distinguishes global orders from scoped ones so a local pause never silently overrides a fleet-wide directive.

    The problem
    After a mid-session skill or doctrine refactor, half the fleet kept executing stale instructions and agents confused narrow stand-downs with global loop orders, going dormant for hours.
    Who it is for
    Operators running a distributed fleet of long-lived AI coding agents
    What it changed
    Every agent in the fleet operates on current doctrine within one refresh cycle, eliminating stale-instruction drift and accidental dormancy.
    tmuxsystemdClaude CodeBashGit
  24. 24 Agent Infrastructure

    Fleet Egress Firewall

    Decides which hosts the agent fleet is allowed to reach

    A network-layer policy system that enforces which protected hosts and services each agent machine can and cannot reach, backed by firewall block rules and DNS/subnet-aware health checks. It treats egress as a security boundary so agents can't wander off to sensitive systems.

    The problem
    Autonomous agents with broad shell access will happily reach protected hosts unless the network itself stops them, and silent DNS or subnet failures can masquerade as agent bugs for hours.
    Who it is for
    Operators running fleets of autonomous coding agents across many machines
    What it changed
    Contains blast radius of a self-directed fleet while surfacing real connectivity faults quickly instead of misdiagnosing them as agent sleep.
    pfSenseDNS resolution checkstmuxSSHmacOS/Linux networkingLaunchDaemon/systemd
  25. 25 Agent Infrastructure

    PR Self-Healing Loop

    Agents fix their own PRs until the reviewer signs off, then stop

    A system that keeps each coding agent iterating on its own pull request in response to automated review feedback, waiting for the reviewer to finish before acting and halting when the PR merges. It treats reviewer silence as ambiguous rather than approval and uses a watchdog to prevent post-merge churn.

    The problem
    Agents were exiting remediation too early on unfinished reviews or looping forever after their PRs already merged, wasting compute and shipping unaddressed feedback.
    Who it is for
    Autonomous coding-agent fleets shipping to production
    What it changed
    PRs converge to a clean, reviewer-approved state autonomously without agents stalling early or spinning after merge.
    CodeRabbitGitHub APIClaude Codetmuxsystemd watchdog
  26. 26 Agent Infrastructure

    Fleet boss, the agent orchestrator

    Routes the work and restarts the stalled; never does the labor itself

    A supervisor agent that dispatches tasks to worker agent panes instead of doing the work itself, and auto-restarts rate-limited or stalled panes without human approval. It keeps a multi-pane Claude fleet productive by acting purely as a router and recovery layer.

    The problem
    An orchestrator that starts doing the labor becomes a bottleneck, and rate-limited or wedged panes silently stall the whole fleet.
    Who it is for
    Solo builders running large autonomous coding-agent fleets
    What it changed
    The fleet stays continuously working with self-recovery, while the operator's own context stays free for high-level decisions.
    tmuxClaude CodesystemdBash/ZshSub-agent delegation
  27. 27 Agent Infrastructure

    Self-Hosted Inference Gateway

    Local GPU models so the fleet does not depend on one vendor

    A self-hosted service that runs open models on private GPUs behind a token-secured endpoint. It handles auth, request sizing, and quota behavior so large and small calls route reliably through a model backend the fleet controls.

    The problem
    Relying solely on external model APIs leaves the fleet exposed to rate limits, opaque 429s, and vendor lock-in for sensitive or high-volume work.
    Who it is for
    AI fleet operators who need local, controllable model inference
    What it changed
    The fleet gains a private, always-available inference path with predictable throughput and no third-party data exposure.
    vLLMHugging Face1PasswordsystemdGPU servingREST API