LatestJune 09, 2026·8 min readTeaching Claude to film the terminalI rebuilt coco’s interface with a TUI design skill, then needed to show it off. Screenshots and demo GIFs turned out to be their own craft, full of subtle traps. So I built a skill for that too. Read Article →
June 05, 2026·10 min readBetter diff rendering in coco, courtesy of tree-sitterThe regex-based structural diff extractors landed and worked – then hit a ceiling regex was never going to clear. Here’s how coco’s diff pipeline actually moved onto tree-sitter: sharper structural context for commit messages, a layered regex fallback, lazy-loaded grammars – plus the bonus the same parser bought us, syntax-highlighted diffs in the Workstation. Read more →
May 11, 2026·13 min readWhat Automating Humble Bundle Taught Me About PlaywrightI got one of those “your key is expiring” emails from Humble Bundle, opened my library, and realized I had no idea how many unclaimed games were sitting there. So I wrote a tool. What followed was a crash course in everything Playwright throws at you when you’re automating a real, bot-averse, React-rendered storefront. Read more →
May 11, 2026·6 min readlocalPress: Local-First WordPress Toolinglocalpress is a CLI tool that processes your WordPress media library locally – compression, WebP/AVIF conversion, AI background removal, and round-trip desktop editing – with no cloud SaaS, no recurring credits, and no plugin required on the WordPress side. Read more →
May 09, 2026·3 min readDoorman 2.0: Cloudflare WAF Support and a New Config FormatDoorman 2.0 ships Cloudflare WAF support alongside Vercel Firewall, a new .doorman.json config format, and 1,100+ tests backing a production-ready multi-provider firewall CLI. Read more →
May 08, 2026·9 min readink-enhanced-select-input 1.0: headless hook, multi-select, search, and groupsA look at everything that’s landed in ink-enhanced-select-input on the road to 1.0: a headless hook for custom renderers, multi-select mode, inline search, item groups, scroll indicators, Escape/cancel support, and 133 tests – including a real bug caught by writing edge-case tests for backspace handling in searchable mode. Read more →
April 14, 2026·9 min readFrom a helper script to an agent-first deploy toolkit: building StrutA client needed help managing a few VPSes, so I wrote a small bash script. Three rewrites and 21 releases later, it’s Strut: an open-source CLI for deploying Docker stacks anywhere there’s SSH, built agent-first for the way I actually code now. Read more →
March 06, 2026·7 min readWhy I Built Spec ShaverHitting OpenAI’s 1MB / 30-operation cap on Custom GPT actions when your real API has 150+ endpoints is maddening. Spec Shaver is the CLI I built to reduce a bloated OpenAPI spec down to the operations that actually matter, while keeping the schema valid. Read more →
October 11, 2025·12 min readBuilding Fargo Flags: A Developer-First Feature Flag ToolkitFargo Flags is the feature-flag toolkit I wished existed for Next.js: zero infrastructure, type-safe, and small enough to drop into any project. Here’s the design call that shaped it and the trade-off I’m still not sure about. Read more