Add a headless harness
Archal needs a command it can spawn.archal init creates
./.archal/harness.mjs for new integrations. It should:
- read
AGENT_TASK - call your real agent runtime
- print the final answer to stdout
Configure .archal.json
Create .archal.json if you want archal run to find your harness without
passing --harness every time:
scenarios, seeds, runs, timeout,
agentModel, or evaluatorModel later when you need project defaults. See
the CLI config reference for every field.
Run a task
The quickest scored path is an inline task. Service-clone runs require Docker or sandbox mode..archal.json has an agent field, you can omit --harness. Results
print in the terminal and appear in the dashboard.
Run a scenario
For repeatable tests, write a scenario file and pointarchal run at it:
How routing works
Your harness keeps using normal SDKs and service domains. In Docker or sandbox mode, Archal routes supported service traffic to clones and lets non-clone traffic, such as model API calls, pass through. Example: an Octokit call toapi.github.com reaches the GitHub clone during
the run. Your harness code does not need a clone URL.
Go deeper
- Harness configuration for prompt files, model defaults, and env contracts.
- Docker harness contract for container details.
- Sandbox mode for OpenClaw-compatible sandbox runs.
- Route-mode trust and safety for TLS and local debug details.
