Skip to main content
Archal runs in any CI environment. Set your secrets, pick an output format, and set a pass threshold.

Secrets

ARCHAL_TOKEN=archal_...         # Archal API key
ARCHAL_ENGINE_ENDPOINT=...       # Engine endpoint (API mode)
ARCHAL_ENGINE_TOKEN=...          # Engine auth token
ARCHAL_ENGINE_MODEL=...          # Engine model id
For bundled harness mode, set a provider key such as GEMINI_API_KEY and pass --harness react --agent-model gemini-2.5-flash. For custom local harness mode, use ARCHAL_HARNESS_DIR (and optionally ARCHAL_ENGINE_MODEL).

GitHub Actions example

- name: Run Archal scenarios
  env:
    ARCHAL_TOKEN: ${{ secrets.ARCHAL_TOKEN }}
    ARCHAL_ENGINE_ENDPOINT: ${{ secrets.ENGINE_ENDPOINT }}
    ARCHAL_ENGINE_TOKEN: ${{ secrets.ENGINE_TOKEN }}
    ARCHAL_ENGINE_MODEL: "openclaw:main"
  run: |
    npx @archal/cli run scenario.md \
      -n 5 -o json \
      --pass-threshold 80

Useful flags

FlagWhat it does
-o jsonMachine-readable output
-o junitJUnit XML for test reporters
--pass-threshold <score>Exit 1 if satisfaction is below this
-qSuppress non-error output
--preflight-onlyValidate config without running

Exit codes

archal run returns exit code 1 when satisfaction drops below --pass-threshold (default: 0) or when execution fails. In CI, set an explicit threshold that matches your release gate.