Four small concepts explain everything else in Vers. Start here if the CLI reference feels like a list of unrelated commands — after these four pages it won’t.Documentation Index
Fetch the complete documentation index at: https://docs.vers.sh/llms.txt
Use this file to discover all available pages before exploring further.
VMs
The unit of compute. Branchable, forkable, states and resources.
Commits
Immutable snapshots. Content-addressable, restorable anywhere.
HEAD and aliases
How commands know which VM you mean when you don’t say.
Dockerfile support
How
vers build turns a Dockerfile into a commit.Repositories and Tags
Named scopes for commits — versioning, publishing, and forking.
The shape of Vers in one page
Vers gives you three primitives and one rule.| Primitive | What it is |
|---|---|
| VM | A running Firecracker microVM. Has an ID, a state (Running, Paused…), and a parent. |
| Commit | An immutable snapshot of a VM’s filesystem + memory. Content-addressable by id. |
| Branch | A new VM made from a parent VM (or a commit). It inherits the exact state, including running processes. |
vers run) or branched from another VM or a commit. That’s the tree. The CLI’s job is to let you move around it — create nodes (run, branch), freeze nodes (commit), navigate between them (checkout), throw nodes away (kill).
Everything else — tags, repos, aliases, env vars, Dockerfile builds — is ergonomics layered on top.
What’s the difference between a commit and a branch?
Easy to conflate, worth pinning down.- A commit is a frozen state with an id. It doesn’t run. It exists forever (until you delete it). You can create N VMs from the same commit and they’ll all start identical.
- A branch is a new running VM. It was created from either a live VM (pausing it briefly to capture state) or a commit. Once it’s running, it’s independent of its parent — no shared memory, no linked disk, changes on either side don’t touch the other.
Next steps
- If you’re new: jump to What is Vers? for the narrative intro.
- If you know Vers and want to look something up: the CLI reference is exhaustive.
- If you’re building a specific thing: the Examples show end-to-end flows.