# Sandbox

A sandbox is one or more virtual machines delivered to a candidate or learner through their browser. You configure it with `sandbox.yaml` and implement its behavior with lifecycle scripts.

## Topics

- [sandbox.yaml](https://skills.staging.lf-cert.cloud/docs/sandbox/sandbox-yaml/index.md) — virtual machines, tools, UI, base images, and all configuration fields
- [Tools](https://skills.staging.lf-cert.cloud/docs/sandbox/tools/index.md) — terminal, IDE, browser, and instructions
- [Lifecycle Scripts](https://skills.staging.lf-cert.cloud/docs/sandbox/lifecycle-scripts/index.md) — what each script does, when it runs, and how to write scoring checks
- [CLI Reference](https://skills.staging.lf-cert.cloud/docs/sandbox/cli/index.md) — commands, independent VM terminals, live reload, and Bashp MCP tools

## Authoring with CLI v1.25–v1.27

Use `sandbox attach` (v1.25+) for additional terminals without taking ownership of a VM. Use the [read-only Bashp MCP tools](https://skills.staging.lf-cert.cloud/docs/sandbox/cli/#sandbox-mcp) (v1.26+) to discover helpers and resolve scripts in their item context.

For multi-VM development, [build once, start background watchers, and attach independently](https://skills.staging.lf-cert.cloud/docs/sandbox/cli/#sandbox-start-and-stop) with v1.27+. Script, asset, and local-library edits update the running VMs' `/sandbox` files; lifecycle scripts still run only when explicitly requested. See the [library-only reload example](https://skills.staging.lf-cert.cloud/docs/sandbox/lifecycle-scripts/#verify-library-only-reload).
