Why CreateOS
- A real machine boundary, not a shared kernel. Every machine runs its own Linux kernel, so code inside it can’t see the host or other tenants, and AI-generated code runs isolated from your own infrastructure.
- Boots in about 30 ms. CreateOS starts a full Linux VM in about 30 ms at p90.
- Pause when idle, resume in place. With sleep on, an idle machine pauses as a snapshot of its memory, processes, and disk. When an agent needs it again, it picks up exactly where it left off, with no cold boot and no setup to re-run.
- Your tools, preinstalled. The
devbox:1root filesystem is Ubuntu 24.04 with Python 3.12, pandas, NumPy, scikit-learn, and the OpenAI and Anthropic SDKs, plus Node.js 24, Bun, Go, Rust, and Docker. For your own stack, build a template from a Dockerfile once, and every machine launches with it, with no reprovisioning per run.
Set up a CreateOS pool
1
Create an API key
In the CreateOS dashboard, open Profile Settings, go to API Keys, and create a key. Store the key as an org-owned secret in Omnara.
2
Choose a shape and root filesystem
The shape sets each machine’s CPU and memory, such as
s-2vcpu-4gb for 2 vCPU and 4 GiB. The shapes you can use depend on your CreateOS plan; see CreateOS’s limits.The root filesystem is the image each machine boots from. devbox:1 works as is. For your own tools, build a template from a Dockerfile that meets the custom image requirements, and use the template’s name as the root filesystem.3
Create the pool
On the Machines page, click New pool and choose CreateOS. Enter the credential, shape, root filesystem, CPU and memory maximums, and capacity limits. The maximums must be at least the shape’s size.Only environment variables whose names use letters, digits, and underscores, and don’t start with a digit, reach the startup script. CreateOS allows at most 64 variables per machine, including the ones Omnara adds, with up to 4 KiB each and 64 KiB in total, so the startup script can be at most 3,072 bytes.To use the API instead, call Create a pool with the fields under API fields. The dashboard can’t turn on sleep yet, so set
sleep_after_ms through the API.API fields
When you create a pool through the API, send these fields in the Create a pool request.provider_config applies to the whole pool, and default_machine_provider_options sets the options for each new machine, which project grants and agent configs can override. For example:
shapeis a CreateOS shape name. The shape sets each machine’s size, so CPU and memory defaults are optional, and the maximums must be at least the shape’s size.rootfsis required. Use a built-in root filesystem such asdevbox:1, or the name of one of your templates.sleep_after_msturns on sleep. Omit it to keep machines awake.- Optional:
startup_scriptindefault_machine_provider_optionsruns on each new machine before the daemon starts, andallowed_shapesandallowed_rootfsesinprovider_configare allowlists.