archal clone when you want hosted clones to stay alive while you debug.
Good uses:
- debug against stable service state
- retry prompts against the same data
- point local tools at fixed hosted endpoints
- autoloop an existing app before writing a scored scenario
Start clones
- start everything with
archal clone start --all - preload named seeds with
archal clone start github --seed github:small-project - describe desired state with
archal clone start github --setup "org with repos and CI" - request a longer lifetime with
archal clone start github --ttl-seconds 7200
Inspect and manage them
statusshows the active local session and its clone endpointslistshows all active hosted clone sessions for the current userrenewextends the active session lifetimestoptears the active session down
Use the returned URLs
archal clone start prints API base URLs for each clone. Use those URLs in your own local tools or SDK clients.
For example, for GitHub:
archal clone.
When you use a service SDK against the printed base URL, set its normal test
auth value so the clone can exercise auth checks. When you send raw HTTP from
curl, a Lambda, or an edge worker instead of using the CLI or runtime helpers,
follow the two-header auth shape in Direct API access.
If your app needs route-mode interception instead of explicit base URLs, combine archal clone with the route-mode environment and proxy flow described in the route-mode trust guide. archal clone keeps the clone alive; it does not execute your app or score the result.
Environment variables
archal clone start exports per-clone URLs as environment variables so local
tools, SDK clients, and harnesses can discover them without parsing CLI output.
| Variable | Shape | Description |
|---|---|---|
ARCHAL_<CLONE>_REST_URL | https://<session>.clones.archal.ai/<clone>/api | REST base URL for the clone |
ARCHAL_<CLONE>_MCP_URL | https://<session>.clones.archal.ai/<clone>/mcp | MCP endpoint, only for clones with MCP support |
ARCHAL_<CLONE>_URL | same as _MCP_URL | Legacy MCP alias, only when MCP is supported |
ARCHAL_TOKEN | bearer token | Auth token for the session |
<CLONE> is the clone id uppercased with non-alphanumeric characters replaced
by _ (e.g., github becomes GITHUB, google-workspace becomes
GOOGLE_WORKSPACE).
For a GitHub clone the exported variables would be:
Inspect with MCP
This is optional. Use the printed MCP URL when you want Claude Desktop, Cline, Cursor, or another HTTP MCP client to inspect or edit clone state by hand.ARCHAL_TOKEN in an
environment variable or keychain-backed launcher; do not paste a literal token
into checked-in JSON.
This flow skips the scenario runner and evaluator. Use it to inspect state,
then use archal run when you want a scored result.
Inner loop: reuse a clone session across many runs
To avoid a cold start on every run, start a session once and reuse it:--reuse-session skips provisioning and never tears the session down at the
end of the run. Two related flags control seeding on a reused session:
--keep-state(alias--no-reseed): explicitly keep the current clone state. Use this after sideloading state viaarchal clone seed --fileso your custom state is preserved between runs, even when it does not match the scenario’s declared seed.--fresh-seed: force the scenario’s declared seed to be re-applied, wiping any existing clone state first. Opposite of--keep-state.
--fresh-seed and --keep-state are mutually exclusive. By default, a reused
session is probed before seeding. If the clone already has state, Archal keeps
that state and warns instead of wiping it. If the clone is empty, Archal loads
the scenario’s declared seed. Use --fresh-seed when you intentionally want to
reset the reused session to the scenario seed.
Seed and reset them
--file with a
.json or .md file when you need custom state for a specific integration
test or debugging session.