Skip to main content

Architecture

Archal runs your agent against clones - isolated, service-shaped test environments with evidence-scoped fidelity. Clones run in isolated containers. For supported clone traffic, controlled Docker/sandbox runs and explicit clone URLs avoid production service APIs. Unsupported and non-clone network traffic is not simulated unless you block it in your harness environment.

Credential handling

Archal stores local CLI credentials under ~/.archal/. credentials.json stores email, plan, selected clone ids, expiry, and encrypted token fields. On macOS, the encryption key is stored in Keychain when available; otherwise Archal uses credentials.key or ARCHAL_CREDENTIALS_MASTER_KEY. archal logout removes the local credentials file. Your agent’s own API keys (OpenAI, Anthropic, etc.) are resolved from environment variables or your config file. They are never sent to Archal servers.

Clone isolation

Default scored runs provision fresh clone state and tear it down when the run ends. If you use archal clone start or archal run --reuse-session, the hosted session stays alive until you stop it or its TTL expires. Clones do not connect to real services.

Telemetry

Off by default. Enable with telemetry: true in ~/.archal/config.json or ARCHAL_TELEMETRY=1. When on, run traces can include tool calls, request parameters, clone responses, timestamps, scores, and errors. They power the dashboard and historical satisfaction tracking. CLI analytics events go to PostHog. Before login, events use a generated anonymous machine id. After login, events can include account identity, plan, command name, scenario count, clone ids, duration, scores, and error codes. They do not include scenario markdown or full tool-call payloads.

Controls

Telemetry is off by default. To explicitly disable it (or turn it off after enabling):
Or set the environment variable:
To verify your current telemetry setting:

Summary

Go deeper