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 →
May 02, 2025·6 min readBuilding an AI-Powered Git Assistant: The Story Behind CocoCoco is the AI-powered Git assistant I built because I was tired of writing terrible commit messages at 11pm. The story of how it grew from a one-off script into something I now use daily across every project. Read more →
June 25, 2026·10 min readWhen Exit 0 Is a Lie: Debugging Kiro’s Terminal BlackoutsEvery guide blames a fancy zsh prompt when your AI coding agent cannot read the terminal. So I deleted mine, then deleted bash too, and the commands still were not running. Here is where the trail actually led. Read more →
June 28, 2026·11 min readHow Kiro Holds My Project in Its Head: A Sunday Session in About an HourA Sunday backlog on coco that should have eaten the whole day took about an hour. Not because the AI wrote my code, but because steering files and specs meant it already knew the project instead of me re-explaining it every session. Here is what is in mine, and what I left out. Read more →
April 30, 2026·5 min readTeaching Claude to design TUIsAfter years of building terminal apps and a growing inability to justify my GitKraken subscription, I built a Claude Skill for TUI design. Here’s what’s in it, why I made it, and what I’m planning to build with it next. Read more →