Real Agent Cases

Write and ship a complete Datasette plugin with Claude Code

Posted
by Simon Willison
Last checked
Method:
How we verify

Evidence: Screenshots or logsThe source shows screenshots, a transcript or the agent's output.

Outcome

Claude Code (Sonnet 4.5) wrote every line of code and every test for the datasette-os-info plugin with minimal prompting, and the author shipped it.

Agent

Claude Code

Prompt Original prompt

Exact prompt as published in the source.

This is a Datasette plugin which should add a new page /-/os which returns pretty-printed JSON about the current operating system - implement it. I want to pick up as many details as possible across as many OS as possible, including if possible figuring out the base image if it is in a docker container - otherwise the Debian OS release name and suchlike would be good

Try this in:

Sends the Original prompt shown above. ChatGPT and Grok open with it filled in, and ChatGPT may send it straight away. Gemini opens empty, so we copy the prompt for you to paste. Every button also copies it.

The source used Claude Code, which can take actions on your computer or in a browser. These are general chat tools, so results may differ, and a normal chat may only give you a plan.

Opens in a new tab. We don't see what you send.

These links are only a shortcut. We're not affiliated with OpenAI, Google or xAI, and your results may not match the source.

Optional stronger version

Our rewrite with extra checks. The poster didn't test it.

Goal: Implement a Datasette plugin that adds /-/os returning pretty-printed JSON about the operating system, with tests and docs.

Inputs (fill in or confirm):
- The plugin repo path
- Target Python and Datasette versions
- Which fields I most care about (distro, kernel, container base image)

Rules:
- Collect as much OS detail as possible using the standard library and safe file reads (/etc/os-release, platform, uname).
- Detect Docker and, where possible, the base image; return null with a reason when unknown.
- Never shell out to commands that need root or network.
- Add tests that pass on Linux and macOS, and document the endpoint in the README.
- Add a README section with an example of the output.

Checkpoint: Ask before publishing a release to PyPI or pushing tags.

If you get stuck: If a detail isn't available on one OS, skip it gracefully instead of failing the request. If a login, CAPTCHA or two-step code appears, stop and ask me to handle it; never guess or store passwords.

Verify before you finish: Run the tests and hit /-/os locally; paste the JSON output.

Output: Code changes, test results, sample output and README section.

Done when: /-/os returns valid JSON on each OS you can test and the tests pass.

Source

https://simonwillison.net/2025/Oct/8/claude-datasette-plugins/

  • From a single informal prompt, Claude Code built a working 3D game for placing buildings and driving around in about four minutes; follow-up prompts added a fire truck, traffic, and fires.

    Reported by One Useful Thing:Working game in about four minutes

    Claude Code · Coding · Source date:

  • Migrate two websites from WordPress to Wagtail with Claude CodeRecreated promptEvidence: Described by poster

    Over a weekend Claude Code migrated two sites from WordPress to Wagtail (PHP to Python), including server setup, data transfer, testing and fixes, and redesigned a homepage; the poster reports nothing broke and traffic and tools stayed in place.

    Claude Code · Coding · Source date:

  • Migrate a 50-screen app from Firebase to Supabase with Claude CodeRecreated promptEvidence: Described by poster

    Going feature by feature, the poster used Claude Code to generate database schemas, write queries and fix daily errors; they report migrating about 85% of a 45–50 screen Flutter app from Firebase to Supabase in 10–20 days.

    Poster says:~85% migrated in 10–20 days

    Claude Code · Coding · Source date: