Skip to main content
Set these variables before starting preloop serve or invoking a CLI command. A command-line flag wins over its environment variable. Where a variable mirrors a config.toml key, the variable wins over the file; an empty value is usually treated as unset. Invalid values either use the documented fallback or stop startup, as noted below. Runner-only variables such as PRELOOP_BRIDGE_* and PRELOOP_DISABLE_ACTIONS_PROBES belong to the Runner configuration.

Home, connection, and credentials

PRELOOP_SYSTEM_TOKEN is generated on first engine startup when no explicit token or stored token exists. Keep it out of shell history and source control.

Pre-push hook

The generated pre-push hook reads these variables:

GitHub

Retention, limits, and caches

Numeric values in this group are decimal integers. Retention, cache, and job-limit variables fail startup when they are non-numeric; the remaining variables use the fallback shown above.

Webhook workers and repair

VM pool and golden images

The official packed golden defaults are digest-pinned per architecture. The current references are:
  • aarch64: ghcr.io/preloopdev/preloop-arm64-smolvm-golden@sha256:cf50db4cbbb38f47f0a533e1e35b523c6427df30261a3cd5bb49d9ef7e072414
  • x86_64: ghcr.io/preloopdev/preloop-x86_64-smolvm-golden@sha256:5757a8319aba0604672e62425559f207cc9f21e9380be01e8e80227eaec21914

VM backend

The engine boots each job in a microVM through one provider. SmolVM is the default everywhere; AgentENV is opt-in.
These apply when PRELOOP_VM_BACKEND=agentenv, which drives the aenv CLI.AgentENV sandboxes cannot reach a private engine until the node deny-list and host firewall admit exactly the engine’s address and port. The engine reconciles both itself and needs passwordless sudo for iptables and systemctl; set PRELOOP_AENV_MANAGE_EGRESS=0 to keep the defaults and open them by hand.
These are mainly for operators building images or running self-updates.
Preloop sets these for a guest or child process. Operators normally leave them alone; they are listed so a process environment is not mistaken for a configuration interface.
For standalone runner variables, use Runner configuration.