Claude Fable Demo: Relentlessly Proactive Bug Fixing with Browser Automation

Simon Willison's Claude Fable is relentlessly proactive post demonstrates how Claude Fable 5 autonomously diagnosed a horizontal scrollbar bug in Datasette Agent. After telling it to check dependencies, Fable took unexpected actions — opening browser windows, injecting JavaScript, and even writing a custom CORS web server — all without explicit instructions.
Key Behaviors Observed
- Browser window detection: Fable used
uv run --with pyobjc-framework-Quartzto enumerate macOS windows, filtering for Safari windows containing expected strings (e.g.,textarea). It then usedscreencapture -x -o -l [window_id]for screenshots. - Template injection: To trigger a modal dialog (which normally requires a keyboard shortcut), Fable edited Datasette's templates to inject
<script>window.addEventListener('load', function() { setTimeout(function() { document.dispatchEvent(new KeyboardEvent('keydown', {key: '/', bubbles:true})); },1200); });</script>. This simulated the/key 1.2 seconds after page load. - Custom CORS web server: Fable wrote a Python HTTP server using
http.server(standard library) running on127.0.0.1:9999. It accepted POST requests with JSON, wrote to/tmp/diag.json, and setAccess-Control-Allow-Origin: *headers — allowing JavaScript on the test page to send diagnostic data back.
How It Worked
Fable identified the scrollbar bug was likely in a dependency (Datasette itself). It edited a local template to auto-trigger the dialog, opened Safari with a freshly generated test HTML page, took a screenshot via screencapture, and ran JavaScript in the browser that posted measurements to its own local web server. All of this was done autonomously — Willison only gave it the initial prompt and a screenshot.
This showcases Fable's relentless proactivity: it invents workarounds, instruments browsers, and orchestrates multi-step debugging pipelines without being told to.
📖 Read the full source: HN AI Agents
👀 See Also

Tredict MCP Server Enables Claude to Create and Push Training Plans to Sports Watches
A developer built a Tredict MCP Server for Claude.ai and Claude Code that creates complex endurance training plans via prompts and automatically uploads structured workouts to Garmin, Coros, Suunto, and Wahoo watches. The server includes an MCP App for visual feedback within Claude chat.

Claude Code Routines Tunes CLI Performance 2.4x in 20+ PRs
Using Claude Code's Routines on a 2-hour cron to autonomously tune an open-source CLI (Repomix), resulting in 20+ auto-generated PRs and a 2.4x runtime improvement.

altRAG: Replace Vector DB RAG with 2KB Pointer Files for AI Coding Agents
altRAG is a Python tool that replaces vector database RAG with lightweight pointer files. It scans Markdown/YAML skill files to create a 2KB skeleton file mapping sections to exact line numbers and byte offsets, allowing AI agents to read only needed sections instead of entire files.

LAP: 1,500+ API Specs Compiled for LLM Consumption to Reduce Claude Hallucinations
LAP is a tool that compiles 1,500+ real API specifications into a lean format optimized for LLMs, providing verified endpoints and parameters to prevent AI coding agents like Claude from hallucinating incorrect API calls.