Work
The projects I've written up in depth. Everything else I'm building is listed below, and on GitHub.
Deep dives
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 |