Simon Willison has shipped datasette-apps 0.2a0, an update that lets the Datasette Agent build, edit, and now quietly test the web apps it creates. According to Simon Willison, the release adds two new tools that close a real gap in agent-built software: the ability to check your own work before handing it off. This is a small version bump with an outsized idea behind it.
What stands out here is the self-testing loop. Most coding agents write something and hope it runs. This one opens the app, pokes at it, and confirms it works, all without a human watching.
What’s new in 0.2a0
- app_debug() gives the agent eyes. The agent can open an app invisibly and run its own JavaScript against it. It can confirm the app loads, check that elements render, and even measure the dimensions of things on the page. That’s a smoke test the agent runs on itself.
- app_list() lets the agent find its work. The tool lists the apps a user has permission to edit, so the agent knows what it’s allowed to touch and can go straight to editing the right one.
- A clever invisible-iframe trick. Willison explains that app_debug() renders the app in an iframe set to `opacity: 0` with `pointer-events: none`. You can’t see it, you can’t click it, but the agent can execute code inside that sandboxed frame. It’s a neat way to run a live test without a visible browser window popping up.
How the pieces fit together
The testing mechanism isn’t standalone. It leans on `context.browser_task()`, a new hook added in datasette-agent 0.4a0. So this release is really two projects moving in step: the agent gains a way to run browser tasks, and datasette-apps uses that hook to test what it builds. If you’re running the agent, the apps side now has a reason to talk back.
Why it matters
Agent-generated code has an obvious weak spot. The agent produces something that looks right, but nobody knows if it actually runs until a person opens it. A self-test tool chips away at that problem. When the agent can measure elements and confirm behavior on its own, it catches broken output before you ever see it.
Worth keeping in mind: this is an alpha. The `0.2a0` tag and the referenced `0.4a0` agent release both signal early, pre-release software. These tools are moving fast and aimed at people already building on Datasette, not a polished general-audience product. Expect rough edges and changing APIs.
Still, the direction is the interesting part. Willison is building agents that don’t just write code but verify it, and doing it with plain web primitives rather than heavy tooling. An invisible iframe and a bit of JavaScript is about as lightweight as a test harness gets.
You can find the full changelog and technical notes in Simon Willison’s original post.