Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.archal.ai/llms.txt

Use this file to discover all available pages before exploring further.

How it works

When Archal runs your agent against hosted twins, all HTTP calls flow through an Archal TLS proxy. The proxy intercepts the outgoing Authorization header, saves the original value in x-archal-upstream-authorization, and routes the request to the correct twin. If your agent sends a request without any Authorization header, the proxy auto-injects a default bootstrap token before the request reaches the twin. This means most agents work against twins without any token configuration — the proxy handles it transparently. For direct-to-twin connections (local archal twin sessions, no proxy), the twin accepts any non-empty bearer token. Missing tokens return the same error the real service returns (401, not_authed, etc.).

Bootstrap tokens by twin

Each twin ships a built-in token that passes auth without a state-side lookup. Use these in harnesses, CI, and local tests. They are dummy values — they are accepted only by the twin, not by the real service.
TwinBootstrap tokenOverride env var
GitHubghp_test_bootstrap_tokenGITHUB_BOOTSTRAP_TOKEN
Slackxoxb-bootstrap-slack-tokenSLACK_BOOTSTRAP_TOKEN
JiraATATT3xFfGF0_bootstrap_jira_tokenJIRA_BOOTSTRAP_TOKEN
Stripesk_test_bootstrapSTRIPE_BOOTSTRAP_TOKEN
DiscordMTAxX2Jvb3RzdHJhcF90b2tlbg.bootstrap.signatureDISCORD_BOOTSTRAP_TOKEN
Linear, Google Workspace, Ramp, and Supabase accept any non-empty bearer token — they have no fixed bootstrap constant, but a placeholder like test-token works.

Overriding tokens

The proxy injects a default bootstrap token automatically, so overrides are uncommon. You would only need one if your scenario logic branches on the token value or you are hitting a twin directly from a harness that sets its own Authorization header. Set the env var in your harness or .archal.json:
GITHUB_TOKEN=ghp_your_real_looking_test_value archal run scenario.md
Or in harness.json:
{
  "version": 1,
  "local": {
    "command": "node",
    "args": ["agent.mjs"],
    "env": {
      "GITHUB_TOKEN": "ghp_your_real_looking_test_value"
    }
  }
}
Bootstrap tokens are dummy credentials. They authenticate only against digital twins — submitting them to real GitHub, Slack, Stripe, etc. will be rejected immediately.