Work
The projects I've written up in depth. Everything else I'm building is listed below, and on GitHub.
Deep dives
Foreman
ShippingRuns software missions without you in the loop, and shows you everything when you come back. A director agent plans, delegates to workers, verifies the result on its own terms, and reports. Any model provider, cost that is never invented, a default for every question, and your phone for the ones that matter.
xPhone
ShippingA phone line for your code — SIP and RTP implemented from scratch. Native libraries for Go and Rust hand you call audio as PCM frames; xbridge brings the same phone line to every other language; and test tooling lets you build without a live trunk. Battle-tested across 500,000+ production calls.
cadence
ShippingProvider-agnostic Go engine for low-latency STT→LLM→TTS voice pipelines — streaming engines behind uniform interfaces, swap vendors with a config change. Owns the hot path.
Vocito
Private betaDictation that types for you — push-to-talk voice typing for macOS. Talk naturally, false starts and all; Vocito types the sentence you meant, formatted for wherever you're writing.
Shot Crisp
ShippingmacOS screenshot studio — capture, annotate, OCR, pin, share; menu-bar native with an MCP bridge for agents.
Also building
No write-up yet — the link goes to the repository.
| My Notes — Side Panel Notepad | TypeScript | Local-first, Notion-like notes in the Chrome side panel — block editor, revision history, optional Drive/Dropbox sync. |
| xPhone (Go version) | Go | The embedded telephony data plane for Go. Place and answer calls on any SIP trunk — or be the trunk — with carrier failover, full SIP-signaling visibility, and call audio delivered as PCM frames on a channel, ready for STT or a voice agent. Battle-tested across 500,000+ production calls. |
| Vonzio | TypeScript | The runtime for production agents — bring your own model. Open-source, self-hostable, isolated Docker workspaces per session. |
| elefante | TypeScript | The open, Git-native memory protocol for MCP agents: portable, inspectable, versioned, and human-editable. |
| claude-voice | TypeScript | Give Claude Code a voice — selective, tasteful spoken summaries and attention cues. Quiet by default. |
| xbridge | Rust | Phone calls for every other language: one self-hosted binary turns SIP calls into WebSocket audio + REST call control. Twilio-compatible framing, so existing voice apps port over with the URL swapped. |
| xPhone (Rust version) | Rust | The same phone line for Rust — SIP and RTP implemented from scratch, zero telephony crate dependencies. Call audio as crossbeam channels of PCM frames; powers xbridge in production. |
| fakepbx | Go | In-process SIP server for Go tests. Real SIP over loopback — no Docker, no Asterisk, no hardcoded ports. |
| xpbx | Go | A real PBX in one docker run — Asterisk with a web UI for extensions, trunks and dialplans. The five-minute test bench for anything you build with xphone or xbridge. |
| oxiclean | Rust | macOS storage cleaner — reclaims disk from package-manager caches, Docker artifacts, and orphaned app data. brew install getoxiclean/tap/oxiclean |
| Trokky | TypeScript | Modern, composable CMS for developers — in private beta, with an open-source CLI for backup, restore, export and import. |
| gh-setup | Go | Declaratively configure GitHub accounts, repos, and settings from a YAML file |
| tts-bridge | Rust | TTS APIs speak HTTP. Voice apps speak WebSocket. This bridges the gap. |
| shopcart | TypeScript | Save Amazon products to custom lists. Chrome extension for organizing your wishlist |