AI & Tooling
Writing on AI agents, MCP, vibe coding, and developer tools
Posts about building and reasoning about AI-powered developer tools — MCP server architecture, agent-driven workflows, vibe coding patterns, file formats for AI collaboration, and adjacent topics.
Read Source Code at Runtime, Not Cache It
When AI agents need authoritative answers about package behavior, reading installed source code live beats every other approach
Repos, Not Catalogs: Where Plugin Identity Actually Lives
The default advice for distributing Claude Code plugins is one central marketplace per author. GitHub's social infrastructure — stars, forks, issues, releases, watchers, search — aggregates at the repository level, not the catalog level. A plugin that lives as one row in a multi-plugin catalog inherits the catalog's identity, not its own. Standalone products belong in self-marketplaces; toolkit clusters belong in central catalogs. The deciding factor is brand identity, not distribution overhead.
Three Circles, Not Three Steps: Where Prompt, Context, and Harness Overlap
Prompt, context, and harness engineering are not a progression. They are three overlapping perspectives on the same work, and many of the most consequential decisions live where all three apply at once.
Furthest from the PTY: Choosing Between HTTPS, expect, and tmux
Driving an interactive CLI tool from a script has three solutions, and they are not independent alternatives. They are three points on one spectrum — how close the method sits to the pseudo-terminal — and the design rule is to pick the one furthest from the PTY that still works.
Format Transparency: Why AI Can Read Some of Your Files and Not Others
For 30 years, file formats were judged on fidelity and size. With LLMs as new consumers of files, a new dimension becomes load-bearing: transparency, the directness of correspondence between bytes and semantic content. The format you pick now determines what AI can read, edit, and collaborate on.
Not All VLMs Can Do OCR: A Case Study on Academic Paper Transcription
I tested GLM-OCR, Qwen2.5-VL, Gemma 3, Gemma 4, and MiniCPM-V on the same page of an academic paper. Some models transcribed faithfully; others rewrote or hallucinated the text entirely.
Your AI Coding Agent Can Delete Your Files: The Archive-First Defense
Real disasters from Replit, Google, and Claude Code show vibe coding's destructive side. Three common backup strategies fall short. Here's a simpler approach.
What 'MCP Is Dead' Gets Wrong
CLI and Skills don't eliminate the need for structured declarations and encapsulated state. They scatter these concerns across documentation, prose, and hope. MCP bundles them into software.
Bypassing Cloudflare Turnstile with Safari AppleScript
macOS AppleScript controls Safari at the OS level, a layer invisible to browser-side anti-bot detection
Building 100+ macOS Automation Tools in 2 Days: My Vibe Coding Experience
How I used AI-assisted development to create a complete suite of MCP servers without knowing Swift