Live demo · Agents in sandboxes

Describe an app.
Watch an agent test it.

A coding agent builds your app in a sealed Chalk sandbox, then opens it in a real browser and clicks through every feature like a careful tester. You get the running app, its code, and a video of the agent putting it through its paces.

What should we build?

Describe a small single-page app, or pick an example. The examples replay recorded builds instantly; a fresh build takes one to two minutes. When it finishes, try the app in the Preview tab and watch the agent test it under QA recording.

claude agent sdk · chalk sandbox · chromiumOpen in new tab

How it works

Generating code is the easy half. The agent also has to prove the code works, without ever being trusted with your network or your keys.

1. Describe the app

A sentence or two is enough. The description goes to a fresh sandbox, and the agent plans a polished single-page app with sample data so the first screen looks alive.

2. A sealed sandbox

A gVisor container with an empty network allowlist: no npm, no CDNs, no DNS. A probe to registry.npmjs.org fails before the agent starts, so everything is written from scratch.

3. The agent writes the code

The Claude Agent SDK writes HTML, CSS and JavaScript with its file tools. There is no shell. You watch each file land as it is saved.

4. It tests the app in a browser

The app is served on loopback and the agent drives a real Chromium: it clicks, types, takes screenshots, reads values and checks the console, then fixes whatever it finds.

5. A recording of the QA

The browser session is recorded with a visible cursor and click ripples. The seconds the model spends thinking are cut out, so the video is all testing.

6. Ship with evidence

You get the running app, its source, and a pass or fail for every check. finish is rejected until the agent has done at least 12 actions and 4 labeled screenshots.

Getting started

Build your own app builder

Clone the example, store a router key as a Chalk secret, and build an app from your terminal. The same pipeline powers this page; deploy.py serves it from a scaling group in your environment.

The agent is a few hundred lines of Claude Agent SDK code plus eight browser tools. Point it at a framework template, add a test runner, or hand it your design system.

chalk-ai/app-builder-agent
git clone https://github.com/chalk-ai/app-builder-agent
cd app-builder-agent
chalk login

# One time: store a router key the sandbox can use without ever seeing it.
# Paste the key that `chalk router api-key create` prints.
chalk secrets set CHALK_ROUTER_API_KEY

# Build an app from your terminal: the app lands in ./out/app,
# the QA recording in ./out/qa.mp4...
./build_cli.py "A pomodoro timer with a small task list" --out out

# ...or deploy this page as your own web app.
./deploy.py

What Chalk handles

The agent brings the code. Chalk brings the place it's safe to run and test it.

Generated code runs sealed

The agent's code runs in a sandbox that can reach nothing but the model. On this page, the app runs in an opaque-origin iframe.

Keys never enter the sandbox

add_credentials binds a Chalk secret to the router host. The agent sees a placeholder, so there is nothing for generated code to steal.

Real browsers, real evidence

Chromium, Playwright and ffmpeg sit in the sandbox image. QA happens where the code was written, and the video comes back with the app.

One router for every model

The Agent SDK speaks the Anthropic Messages API, which the Chalk router serves. A build costs about ten to fifteen cents, tracked in your environment.

Sandboxes on demand

Each build gets a fresh container in seconds and gives it back when it is done. Run one for a visitor, or a thousand for an eval.

Open source

The agent, the browser tools, the recording pipeline, this page's backend and a CLI are Apache-2.0 on GitHub. Swap the prompt, the tools or the model.

Give your coding agent a place to work

App builders, code generation, or any agent that writes and runs code. Talk to an engineer about running it in sandboxes next to your data.