orgo.ai/v1 document, written in YAML or JSON. This page is the field-by-field reference. The canonical machine-readable contract is the JSON Schema at GET /api/template-schema - point your editor at it for autocomplete and inline validation.
Two forms
Templates accept a canonical form and a shorter sugar form. Both normalize to the same document and the samedigest.
Sugar → canonical
Top-level fields
template
Identity and provenance.name and version are required.
hardware
The VM’s resource shape. Every field is optional; sensible defaults apply.Hardware in a Create computer request overrides these defaults at launch.
vars and interpolation
vars are compile-time strings, interpolated across the document before build.
${var.X}resolves fromvars.${env.X}resolves from a literalenvvalue (not secret-backed ones).$${var.X}escapes to a literal${var.X}.- An unknown reference is a validation error with the exact field path.
env
Environment variables written to the VM. Keys must beUPPER_SNAKE_CASE. Each value is a literal string, or a {secret: <name>} reference resolved from the launching user’s vault at create time.
build
Package and command steps run once when baking the golden snapshot, before app installs. This is where dependencies get pre-installed so launches are instant.files
Files materialized into the VM. Each entry sets exactly one offrom or inline.
apps
An app bundles an install step with the long-running services, health checks, and ports it needs. Services are managed by supervisord, so they start at boot and respawn on crash.services
health
A polled liveness check. Afterretries consecutive failures, on_fail runs - this is the per-app watchdog.
on_fail is one of restart_service:<name>, restart_vm, alert, or none.
ports
terminal
Pre-staged tmux sessions, created detached at first boot. Orgo’s browser terminal attaches to them by name.Sessions are not auto-restarted. For a process that must respawn, use an app service instead.
hooks
Shell that runs at lifecycle points. Each runs withset -e; the default timeout is 10 minutes.
telemetry
egress_policy
Per-VM network filtering, enforced on the host.streaming
Outbound RTMP(S) streams of the desktop.streaming is parsed and validated today; the runtime streamer is rolling out. Track status in the JSON Schema.Next steps
Secrets
The full secret-injection model.
Triggers
Sources, actions, and dedup.
Examples
Annotated real templates.
Publish API
Ship a template over HTTP.