Labs
Every lab below is a module of this repository's reference application, run unmodified. The Python is fetched from the repository at publication time, not copied here, and it executes in your own browser: no account, no install, and no API key. The transport is the repository's mock transport, so a lab that asks for a live one fails with a message saying why.
12 of 13 labs run in the browser. The rest show their source and say what the browser runtime cannot supply.
The runtime is about 6 MiB and is downloaded the first time you press Run on a lab page — never before, and never on any other page.
| Lab | Concept | Domain | In the browser |
|---|---|---|---|
| context | context editing and compaction | Domain 1: Agents and Workflows | Runs |
| loop | the bounded tool-use agent loop | Domain 1: Agents and Workflows | Runs |
| batch | the batch path | Domain 2: Applications and Integration | Runs |
| caching | prompt caching | Domain 2: Applications and Integration | Runs |
| config | pinned model versions | Domain 2: Applications and Integration | Runs |
| ingest | untrusted-input isolation | Domain 2: Applications and Integration | Runs |
| transport | adaptive thinking | Domain 2: Applications and Integration | Runs |
| evals | the eval harness | Domain 4: Eval, Testing, and Debugging | Runs |
| router | tool use and dispatch | Domain 5: Model Selection and Optimization | Runs |
| output | structured output | Domain 6: Prompt and Context Engineering | Runs |
| secrets | environment-only credential handling | Domain 7: Security and Safety | Runs |
| security | guardrails | Domain 7: Security and Safety | Runs |
| mcp-server | the MCP server | Domain 8: Tools and MCPs | Source only |
Add a lab or a practice item
A lab is a module in lab/; whether it runs here is decided by probing its imports against the vendored runtime, so nothing has to be added to a roster. Practice items live indrills/bank/ and must be original and validated.