# What is a cold start? A cold start is the wait between asking for a new sandbox, VM or function and the moment it can run your first command. **Runtime keeps a few machines of the most common shapes started ahead of time. When a create asks for one of those shapes, Runtime hands over a started machine.** From your own machine, add a network round trip to Virginia for each call. The [speed guide](/docs/speed) lists an operation's time once it is within 2× of its floor, the create's included, measured each minute from outside. ## Why it matters for AI agents An agent that runs each task in a fresh machine pays the cold start every time. A chat assistant that starts a sandbox when a user asks a question adds the cold start to the reply. When starting is slow, teams keep machines warm and pay for them while they wait. Or they reuse one machine across users and give up isolation. A fast cold start removes that trade. ## Cold, warm and resumed | Kind of start | What happens | | -------------------- | ---------------------------------------------------- | | New sandbox | A new machine for this request, ready to run | | Create until running | The machine is up, before any command | | Warm | A command in a machine already running | | Resumed | A paused machine wakes with its memory and processes | | From a snapshot | A new machine starts from a saved machine | Before you compare one provider's figure with another's, check that both were timed the same way ([what cold start benchmarks leave out](/blog/compare-sandbox-cold-start-benchmarks)). Firecracker, the virtual machine monitor under every Runtime sandbox, states that a microVM can "boot in <125ms" on its own site. That is the project's claim for the VM alone, not an end-to-end time over the internet. ## Measure it yourself ```ts import { Sandbox } from "withruntime"; const started = performance.now(); await using sbx = await Sandbox.create(); await sbx.exec(["python3", "-c", "pass"]); console.log(`${Math.round(performance.now() - started)} ms to first result`); ``` The first call from a client opens a connection to the API. A fresh process pays that cost once. The full script in [speed](/docs/speed#run-the-measurement-yourself) warms the connection first, runs 20 starts, and reports the median and p95. ## How to avoid paying it at all - **Pause instead of stopping.** A paused sandbox keeps its files, memory and running processes while you have credit. It costs no compute while it waits ([pause and resume](/how-to/pause-and-resume-a-sandbox)). - **Install dependencies in an image.** A [custom image](/docs/images) starts with everything installed, so no task spends its first minute in `pip`. It starts from a started copy that Runtime keeps. - **Fork a prepared machine.** A [fork](/glossary/sandbox-fork) copies a running sandbox with its memory, so every copy starts where the original was. ## Related - [What is a sandbox snapshot?](/glossary/sandbox-snapshot) - [What is a microVM?](/glossary/microvm) - [What is Firecracker?](/glossary/firecracker) - [Runtime speed measurements](/docs/speed) ## Sources - [Firecracker](https://firecracker-microvm.github.io/), checked 25 October 2026 Facts on this page were checked on 25 October 2026.