Claude Fable 5 One-Shot a Game — What It Shows About Agentic Coding Risk
Simon Willison let Claude Fable 5 build a full 3D game unsupervised, from prompt to deployed GitHub Pages site. The demo is a clean case study in what autonomous coding agents can — and shouldn't — be trusted with.
Key Takeaways
- Developer Simon Willison gave Claude Fable 5, running in Claude Code for web, a single prompt and let it build, test, and deploy a browser game with no further design input.
- The agent had push access to a git branch and a live OpenAI API key, and used both unsupervised — including self-testing with Playwright, catching and fixing two of its own bugs.
- Willison flagged a real operational gotcha: GitHub Pages serves the built site publicly even from a private repo if someone guesses the URL — a governance detail worth knowing before agents deploy anything for you.
- The experiment is a useful proxy for the access-control questions enterprises now face with agentic coding: what should an autonomous agent be allowed to commit, push, and deploy without a human in the loop.
On the fourth anniversary of a 2022 tweet where he'd mocked up a game concept using GPT-3 and DALL-E, developer and Django co-creator Simon Willison ran the same brief past Claude Fable 5 — this time inside Claude Code for web — to see how far agentic coding has come. The result, built entirely on his phone from one prompt, was Raccoon Heist: a working 3D stealth-collection browser game, complete with procedurally generated audio, low-poly characters, mobile touch controls, and three difficulty tiers.
What actually happened
Willison's instructions were short and deliberately hands-off: work independently, don't come back for further design decisions, and commit and push as often as possible. Claude Fable 5 took that literally. It made seven commits to a dedicated branch (claude/3d-raccoon-heist-game-50n293), vendored Three.js instead of pulling it from a CDN, called OpenAI's gpt-image-2 API using a live key to generate textures and title art, and wrote a procedural WebAudio soundtrack with zero audio files. It then tested its own work with Playwright across desktop and mobile viewports — catching a canvas-scaling bug on phones and a UI element blocking the win screen — and fixed both before deploying to GitHub Pages.
Why this belongs on a security blog
The game itself is a novelty; the operational pattern underneath it is not. This is a live instance of exactly the access model enterprise security teams are being asked to sign off on right now: an agent with git push rights and a third-party API key, running for an extended, unsupervised session, making its own implementation and testing decisions.
- Credential scope — the agent used a real OpenAI API key at build time. In this case it was scoped to image generation for a toy project; in a production pipeline, the same pattern demands the same discipline applied to any CI credential — least privilege, short-lived tokens, no key an agent doesn't strictly need.
- Unsupervised commit/push — Claude pushed its own commits to a branch without a human sign-off gate at each step. That's a reasonable trade for a solo side project; it's the exact control (branch protection, required review, CI gates) that shouldn't be waived by default once agentic coding touches anything shared or production-facing.
- Self-testing isn't independent verification — the agent both wrote the code and wrote the Playwright tests that validated it. Catching real bugs this way is genuinely useful, but it's not a substitute for adversarial or independent QA, since an agent's blind spots in implementation tend to be the same blind spots in the tests it writes for that implementation.
The GitHub Pages footgun
Willison called out a detail that's easy to miss: GitHub Pages will happily serve a built site publicly even when the source repository is private, as long as someone can guess or find the URL. For a raccoon game, that's harmless. For an agent that's been told to "deploy independently" against a repo that happens to contain anything sensitive — draft copy, internal tooling, embedded config — it's a quiet way for private content to end up world-readable. It's the kind of default that autonomy makes easier to trip over, because the human who'd normally double-check deployment settings isn't in the loop.
The takeaway
The deployed game itself is low-risk: static assets, no runtime API calls, no user data. That's a genuinely good outcome for an autonomous build, and worth noting as a sign agentic coding is maturing. But the experiment is a clean, low-stakes way to see the shape of the problem: as more real engineering work moves to agents that can commit, push, hold credentials, and deploy without asking, the controls that matter aren't about whether the agent is capable — Willison's game shows it clearly is — but about what it's been given permission to do on its own.
Frequently Asked Questions
What is Claude Fable 5 and Claude Code for web?
Claude Fable 5 is the model used in this case, running inside Claude Code for web — Anthropic's browser-based agentic coding environment, which lets the model write, test, commit, and push code with tool access rather than just returning text.
Is it safe to let a coding agent push commits and deploy without review?
For a personal side project, as in this case, the risk is low and the trade-off is reasonable. For shared or production repositories, the same controls that apply to human contributors — branch protection, required review, scoped and short-lived credentials — should apply to agents, since an unsupervised agent with push and deploy access has the same blast radius as an unsupervised human with the same access.
Why does the GitHub Pages private-repo detail matter?
GitHub Pages serves the built output of a repository as a public website by default, regardless of whether the source repository is private, as long as the URL is known. It's a longstanding platform behavior, not a bug, but it's an easy detail to overlook when an agent is handling deployment steps a human would normally review.
Sources
- 1One-shotting a Raccoon Heist game using Claude Fable 5 — Simon Willison
- 2raccoon-heist (GitHub repository) — GitHub
- 3One-shotting a Raccoon Heist game using Claude Fable 5 — Simon Willison