Disposable task machines
`1vm task run` clones a golden, waits for it to be ready, runs your command and disposes of the machine — with a snapshot on each side of the work.

Why it matters
A test that has to run on a clean machine usually runs on a dirty one instead, because building a clean machine costs more than the test does. When the clone is free, the clean machine wins.
What changes
Without it
- You reuse one test VM and hope the last run did not leave anything behind.
- Or you build a fresh one and wait minutes for it, so you do it rarely.
- Debugging a failure means guessing at what state it started from.
With 1VMTool
- Clone → ready → exec → dispose, in one command, from a pinned golden.
- before-task and after-task snapshots bracket the run, so a failure is inspectable.
- Nothing survives the command unless you asked it to.
How it works
Start from a golden
Pin a configured machine as a golden with `1vm template pin`. Every task clones it as an APFS linked clone, so the copy costs about a millisecond and almost no disk.
Wait for ready, not for time
The runner polls SSH on Linux or the guest agent on Windows rather than sleeping a guessed number of seconds.
Bracket the work
A snapshot is taken before the command and after it. If the run fails, both states are still there to compare.
Dispose
The machine is deleted when the command exits. `1vm agent gc` catches anything an interrupted run left behind.
What it covers
- `1vm task run -- <cmd>` for the whole clone-and-dispose loop
- Linked clones from any pinned golden
- Automatic before-task and after-task snapshots
- Readiness polling over SSH or the guest agent
- Available over MCP as tasks_run and tasks_start
What you get out of it
- Run a test on a genuinely clean machine every time
- Keep CI-shaped work on your own Mac instead of a paid runner
- Stop reasoning about what the last run left behind
Try it on your own Mac
Every screen states its limits before you commit to anything.