Dockerfile for a full desktop VM: write it once, version it, and hand out reproducible computers from it.
Quickstart
Author, build, and launch your first template.
Schema reference
Every field in the
orgo.ai/v1 format.Secrets
Inject API keys without baking them in.
API reference
Publish, build, and launch over HTTP.
Why templates
Without a template, every new computer starts from a base image and you script the setup yourself — install packages, write config, start services, wait for it all to converge. That work runs on every boot and drifts over time. A template moves all of that to build time. The result is a snapshot that boots ready.| Base image + setup script | Template | |
|---|---|---|
| Time to ready | Minutes of install on every boot | Seconds — restores a prebuilt snapshot |
| Reproducibility | Drifts as packages and scripts change | Content-addressed, identical every launch |
| Definition | Imperative script you maintain | One declarative file, versioned |
| Services & health | You wire up supervisord and watchdogs | Declared once, managed for you |
| Sharing | Copy the script around | Publish a ref, launch anywhere |
Golden snapshots
When you build a template, Orgo boots a real VM, runs your install steps, then pauses the machine and captures its full state — disk, memory, and CPU — as a golden snapshot. Launching a computer from the template copies that snapshot and resumes it.- Build once — about two minutes, and only when the template changes.
- Launch in seconds — a restore skips the entire install phase.
- Content-addressed — the snapshot is keyed by a SHA-256
digestof the canonical template. Two identical templates share a build; change one byte and you get a new digest.
Lifecycle
Write
Author a template in YAML or JSON using the
orgo.ai/v1 format. A short sugar form keeps simple templates tiny.Publish
POST the document to your registry. Refs are immutable and content-addressed: namespace/name@version.Refs
Every template version is addressed by a ref:- namespace — groups your templates. Your own default to
default; curated templates published by Orgo live in thesystemnamespace (e.g.system/claude-code@1.0.0). - name — lowercase kebab-case.
- version — semver, immutable once published. Bump it to ship a change.
template_ref to Create computer, or anywhere the API takes a template.
Curated vs. your own
Curated templates
Published and maintained by Orgo in the
system namespace — Claude Code, OpenClaw, Hermes Agent, and more. Any plan can launch them. Browse with List curated templates.Your templates
Author and publish your own on a Scale plan. They live in your namespaces and launch into your workspaces.
Plan requirements. Launching a computer from a template counts against your plan’s computer quota, like any computer. Publishing and building your own templates requires a Scale plan. Curated templates are launchable on every paid plan.
What goes in a template
A quick tour — see the schema reference for every field.| Field | What it does |
|---|---|
hardware | CPU, RAM, disk, GPU, resolution, region, auto-stop |
build | apt / pip / npm / run steps baked into the snapshot |
apps | Installed apps with long-running services and health checks |
files | Inline or fetched files written into the VM |
env + secrets | Environment variables and vault-injected secrets |
triggers | Reactive automation: a source fires, actions run |
terminal | Pre-staged tmux sessions the browser terminal attaches to |
hooks | Shell that runs at first boot, every boot, resume, and shutdown |
egress_policy | Per-VM domain/IP allow or block rules |
Next steps
Build your first template
A complete walkthrough, end to end.
See real examples
Annotated curated templates you can copy.