Have your agent record video demos of its work with shot-scraper video

Simon Willison ·

shot-scraper adds Playwright-driven video storyboards, giving coding agents a lightweight way to produce reproducible demos of web app work.

Categories: OSS & Tools

Excerpt

<p><a href="https://shot-scraper.datasette.io/en/stable/video.html">shot-scraper video</a> is a new command introduced in today's <a href="https://github.com/simonw/shot-scraper/releases/tag/1.10">shot-scraper 1.10</a> release which accepts a <code>storyboard.yml</code> file defining a routine to run against a web application and uses Playwright to record a video of that routine. I've written before about the importance of <a href="https://simonwillison.net/2026/Feb/10/showboat-and-rodney/#proving-code-actually-works">having coding agents produce demos</a> of their work; this is my latest attempt at enabling them to do that.</p> <p>Here's an example video created using <code>shot-scraper video</code>, exercising a <a href="https://github.com/simonw/datasette/pull/2813">still in development</a> feature adding the ability to create new tables in Datasette from pasted CSV, TSV or JSON data:</p> <div style="margin-bottom: 0.4em;"> <video controls="controls" loop="loop" poster="https://static.simonwillison.net/static/2026/datasette-bulk-insert-demo.jpg" preload="none" style="width: 100%; height: auto;"> <source src="https://static.simonwillison.net/static/2026/datasette-bulk-insert-demo.mp4" type="video/mp4" /> </video> </div> <p>That video was created <a href="https://simonwillison.net/atom/everything/">by running this command</a>:</p> <div class="highlight highlight-source-shell"><pre>shot-scraper video datasette-bulk-insert-storyboard.yml \ --auth datasette-demo-auth.json --mp4</pre></div> <p>(That <code>--auth</code> JSON file <a href="https://gist.github.com/simonw/287b26aff53fcb72942b19f5b69d7e5c">contains a cookie</a>, as <a href="https://shot-scraper.datasette.io/en/stable/authentication.html">described here</a> in the documentation.)</p> <p>Here's the <code>datasette-bulk-insert-storyboard.yml</code> file:</p> <div class="highlight highlight-source-yaml"><pre><span class="pl-ent">output</span>: <span class="pl-s">/tmp/datasette-bulk-insert-demo