Introducing Conductor Cloud →Skip to docs content
Conductor

Cloud snapshots

What a cloud snapshot includes and how to customize it

A cloud snapshot is the prebuilt environment that every new cloud workspace starts from. Conductor creates it by cloning your repository onto a cloud machine and running an initialization script, then saves the result. New workspaces fork the snapshot instead of installing everything from scratch, so they are ready in seconds.

Manage snapshots in Settings → Cloud → Snapshots.

What a snapshot includes

When Conductor builds a snapshot, it saves:

  • Your repository: a clone of the GitHub repository. When you create a workspace, Conductor refreshes the checkout so you start from the latest commit, not the commit from build time.
  • Everything the initialization script produced: installed dependencies, downloaded browsers, system packages, generated files.
  • Environment variables from your settings: the same custom variables that cloud workspaces receive, including values from .conductor/settings.local.toml and the app's settings.
  • Conductor's tools: the agents (claude, codex) plus gh, rg, and tmux, kept up to date by Conductor automatically.

Your setup script is not part of the snapshot. It runs each time Conductor creates a workspace, after the snapshot is forked.

What the base machine provides

Snapshots build on Vercel Sandbox, which runs Amazon Linux 2023 with common developer tools preinstalled:

  • Node.js with npm and pnpm
  • Python 3 with pip and uv
  • git, tar, unzip, openssl, and other base utilities

The machine has sudo access, so the initialization script can install anything else with dnf, the Amazon Linux package manager.

Customize the snapshot

The initialization script is where you shape the environment. It runs once per snapshot build, in the root of your repository, with the same Conductor variables as your setup script. The default script installs dependencies when it finds a pnpm lockfile:

cloud-snapshot-initialization.sh
if [ -f pnpm-lock.yaml ]; then
  pnpm i --frozen-lockfile --prefer-offline
fi

To customize it:

  1. Go to Settings → Cloud → Snapshots and select your snapshot.
  2. Edit the initialization script.
  3. Click Save and build snapshot and wait for the build to finish.

Move work into the script when every workspace would otherwise repeat it:

cloud-snapshot-initialization.sh
# Project dependencies
pnpm i --frozen-lockfile --prefer-offline

# Python dependencies
uv sync

# Browsers for end-to-end tests
npx playwright install chromium

# System packages, via Amazon Linux's package manager
sudo dnf install -y postgresql16

A slow initialization script is usually a good trade: it runs once per build, while its results are ready instantly in every new workspace.

Decide between the snapshot and the setup script

Both scripts can install dependencies. The difference is when they run:

ScriptRunsUse it for
Initialization scriptOnce, when the snapshot buildsSlow, repeatable work: dependency installs, system packages, browser downloads.
Setup scriptEvery time a workspace is createdPer-workspace work: generated config, database seeds, anything that depends on the branch or commit.

Because dependencies in the snapshot age between builds, keep a fast install step in your setup script too (for example, pnpm i --prefer-offline). It finishes quickly when the snapshot is current and catches up when it is not.

When snapshots rebuild

  • You edit the initialization script: saving triggers a build. Existing workspaces keep their environment; new workspaces use the new snapshot once the build succeeds.
  • You click Build snapshot now: rebuild without changing the script, for example after merging a large dependency update.
  • Conductor updates its tools: Conductor refreshes its own tools automatically. You do not need to rebuild for agent or CLI updates.

If a build fails, the snapshot page shows the failure and new workspaces keep using the last good snapshot. Fix the script and build again.

On this page