Skip to content

Commit a957c8b

Browse files
committed
docs: add snapshot, suspend & resume example
1 parent 97bcd70 commit a957c8b

4 files changed

Lines changed: 42 additions & 0 deletions

File tree

EXAMPLES.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Runnable examples live in [`examples/`](./examples).
1010
- [Blueprint with Build Context](#blueprint-with-build-context)
1111
- [Devbox From Blueprint (Run Command, Shutdown)](#devbox-from-blueprint-lifecycle)
1212
- [Devbox Snapshot and Resume](#devbox-snapshot-resume)
13+
- [Devbox Snapshots (Suspend, Resume, Restore, Delete)](#devbox-snapshots)
1314
- [Devbox Tunnel (HTTP Server Access)](#devbox-tunnel)
1415
- [MCP Hub + Claude Code + GitHub](#mcp-github-tools)
1516
- [Secrets with Devbox (Create, Inject, Verify, Delete)](#secrets-with-devbox)
@@ -106,6 +107,37 @@ uv run pytest -m smoketest tests/smoketests/examples/
106107

107108
**Source:** [`examples/devbox_snapshot_resume.py`](./examples/devbox_snapshot_resume.py)
108109

110+
<a id="devbox-snapshots"></a>
111+
## Devbox Snapshots (Suspend, Resume, Restore, Delete)
112+
113+
**Use case:** Upload a file to a devbox, preserve it across suspend and resume, create a disk snapshot, restore multiple devboxes from that snapshot, mutate each copy independently, and delete the snapshot when finished.
114+
115+
**Tags:** `devbox`, `snapshot`, `suspend`, `resume`, `files`, `cleanup`
116+
117+
### Workflow
118+
- Create a source devbox
119+
- Upload a file and mutate it into a shared baseline
120+
- Suspend and resume the source devbox
121+
- Create a disk snapshot from the resumed devbox
122+
- Restore two additional devboxes from the same snapshot baseline
123+
- Mutate the same file differently in each devbox to prove isolation
124+
- Shutdown the devboxes and delete the snapshot
125+
126+
### Prerequisites
127+
- `RUNLOOP_API_KEY`
128+
129+
### Run
130+
```sh
131+
uv run python -m examples.devbox_snapshots
132+
```
133+
134+
### Test
135+
```sh
136+
uv run pytest -m smoketest tests/smoketests/examples/
137+
```
138+
139+
**Source:** [`examples/devbox_snapshots.py`](./examples/devbox_snapshots.py)
140+
109141
<a id="devbox-tunnel"></a>
110142
## Devbox Tunnel (HTTP Server Access)
111143

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ Functionality between the synchronous and asynchronous clients is otherwise iden
9191
## Examples
9292

9393
Workflow-oriented runnable examples are documented in [`EXAMPLES.md`](./EXAMPLES.md).
94+
For a suspend/resume plus shared snapshot restore workflow, see [`examples/devbox_snapshots.py`](./examples/devbox_snapshots.py).
9495

9596
`EXAMPLES.md` is generated from metadata in `examples/*.py` and should not be edited manually.
9697
Regenerate it with:

examples/registry.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from .devbox_tunnel import run_devbox_tunnel_example
1111
from .example_types import ExampleResult
12+
from .devbox_snapshots import run_devbox_snapshots_example
1213
from .mcp_github_tools import run_mcp_github_tools_example
1314
from .secrets_with_devbox import run_secrets_with_devbox_example
1415
from .devbox_snapshot_resume import run_devbox_snapshot_resume_example
@@ -39,6 +40,13 @@
3940
"required_env": ["RUNLOOP_API_KEY"],
4041
"run": run_devbox_snapshot_resume_example,
4142
},
43+
{
44+
"slug": "devbox-snapshots",
45+
"title": "Devbox Snapshots (Suspend, Resume, Restore, Delete)",
46+
"file_name": "devbox_snapshots.py",
47+
"required_env": ["RUNLOOP_API_KEY"],
48+
"run": run_devbox_snapshots_example,
49+
},
4250
{
4351
"slug": "devbox-tunnel",
4452
"title": "Devbox Tunnel (HTTP Server Access)",

llms.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
## Core Patterns
1212

1313
- [Devbox lifecycle example](examples/devbox_from_blueprint_lifecycle.py): Create blueprint, launch devbox, run commands, cleanup
14+
- [Devbox snapshots example](examples/devbox_snapshots.py): Suspend and resume a devbox, create a shared snapshot baseline, restore multiple devboxes, verify isolation, cleanup
1415
- [Devbox snapshot and resume example](examples/devbox_snapshot_resume.py): Snapshot disk, resume from snapshot, verify state isolation
1516
- [MCP GitHub example](examples/mcp_github_tools.py): MCP Hub integration with Claude Code
1617
- [Secrets with Devbox example](examples/secrets_with_devbox.py): Create secret, inject into devbox, verify, cleanup

0 commit comments

Comments
 (0)