Computer

Declare a named Linux guest and run one bash command on a fresh copy of it.

A computer is a named hand: a Linux guest with a promised set of commands, optional pinned packages, a scratch directory, and optional disk mounts. Workflow nodes use a computer. They are not one. A computer has no model.

In v1 the only node that binds a computer is type: shell. It runs one bash command on a fresh guest, then throws the guest away.

disk kb {}

computer pr_bot {
  label: "PR bot"
  software: { gh: "2.63.2", git: "2.47.0" }
  disks: [kb]
  resources: { cpus: 2, memoryMiB: 1024 }
}

node lint_pr {
  type: shell
  computer: pr_bot
  command: "gh repo clone \"$REPO\" /srv/workspace/repo"
}

What every computer promises

With or without software: pins, these commands are on PATH: bash, ls, cat, mkdir, cp, mv, rm, grep, sed, awk, find, tar, gzip, and the rest of the usual file and text tools. command: always runs under bash.

curl, git, gh, jq, node, bun, and python are not included. Declare them as quoted pins. There is no apt.

Fields

FieldRequiredNotes
label, descriptionnoDisplay strings. label defaults to the block name
softwareno{ package: "pin" }. Pins are quoted. A bad pin fails the deploy
disksnoNames of disk blocks. Mounted at /mnt/disks/<name> when a guest starts
resourcesnocpus, memoryMiB, diskGiB. Defaults are 2 CPUs and 1024 MiB. Disk size may be omitted

Scratch files live at /srv/workspace and disappear with the guest. Persist through disks.

Secrets stay out of the snapshot. Allowlist them on the shell node (secrets: { block: [VAR] }) and refer to them as "$VAR" in the command.

Deploy

The first deploy of a recipe waits until the guest image is ready. A later deploy with the same recipe does not rebuild. A failed bake fails that deploy and leaves the previous deployment live.

Cloud lists computers read-only under Build: name, pins, disks, resources, snapshot state, and the shell nodes that bind each one.

On this page