archal run. For a greenfield integration, start with Running Scenarios instead.
1. Add a headless harness
Archal needs a runnable entrypoint it can spawn without booting the full app shell. For new integrations, prefer./.archal/harness.ts.
That file should:
- read
ARCHAL_ENGINE_TASK - call the repo’s real agent runtime
- exit cleanly when
ARCHAL_PREFLIGHT=1 - print the final result to stdout
2. Check the harness before a run
- no runnable entrypoint
- UI-only boot assumptions
- missing model credentials
- service bridge wiring issues
3. Decide whether .archal.json helps
.archal.json is optional when you pass --harness, but it is useful as a
project-default path if you run Archal often from the same repo.
- a default agent command
- default twins
- default model and seed settings
4. Choose direct env vars or --proxy
Default path:
- use
ARCHAL_MCP_CONFIG - use
ARCHAL_<TWIN>_URL - use
ARCHAL_<TWIN>_BASE_URL
--proxy only when the runtime still talks to real service domains through
raw HTTPS clients and you want Archal to redirect that traffic without changing
the agent code.
5. Ignore Docker unless you actually need it
Repo-local harnesses run locally by default. Use--docker only when the
runtime depends on container-only system libraries or local bring-up is too
messy to reproduce consistently.
6. Run the first task
--task only replaces the scenario file. It still needs a runnable harness
path from --harness, repo-local harness discovery, or .archal.json.
7. Turn that into a scenario
8. Find the artifacts afterward
Every run saves local artifacts under.archal/:
.archal/last-run.json.archal/runs/*.json
--output json only when you need machine-readable stdout. It is not
required for local trace saving.
