Source: https://crabglamp.com/docs/agents/how-to/clone-an-agent
Last updated: 2026-06-09
Type: how-to

You have an Agent in a known-good state and want a second Agent that starts from the same place — for forking an experiment, sharing with a teammate, or rolling back to a checkpoint.

## What is and is not carried over

- **Carried over** — every file under `/data/home-coder` at the moment of the snapshot.
- **Not carried over** — the virtual key binding, the Agent's public URL and network identity, its billing line, and its history. The new Agent is a new entity with its own identity.

## Prerequisites

- The source Agent is in `running` or `stopped` state. Transitional states (provisioning, starting, stopping, destroying) reject the clone.
- The source Agent is on the Hetzner cohort (Fly-cohort sources return 400 — cloning is Hetzner-only).
- You have remaining Agent slots on the destination account.

## From the dashboard

1. Open the source Agent's detail page: `/dashboard/agents/{source-id}`.
2. Click **Clone**.
3. Pick the new Agent's name and a size. Size can equal or exceed the source — you cannot clone to a smaller size.
4. Pick the billing type for the new Agent.
5. Click **Provision**.

Region is inherited from the source and cannot be changed at clone time — the snapshot lives in the source's region, so the clone must stay there. The platform takes a snapshot of the source volume, creates a new VM from that snapshot, sets up fresh billing, and surfaces the new Agent in the dashboard with `status: provisioning`. Average clone provisioning time is 90 seconds — slightly slower than a fresh provision because the snapshot has to attach.

## After the clone

- The source Agent is unaffected and can be started again.
- The new Agent has a fresh URL.
- If you need the virtual key on the new Agent, run `crabglamp keys create` in the new Agent's terminal — there is no automatic key duplication on clone.
