Skip to main content
Ward’s CLI is built on Commander (src/cli/index.ts) and exposes four commands. Every command shares a common setup path (src/cli/setup.ts’s buildScenario()), which loads .env, constructs the Algorand chain adapter and facilitator client, derives the test fixture, and registers all eight invariants.

Commands at a glance

Two ways to invoke it

Runs via tsx src/cli/index.ts, defined as the ward script in package.json.

Global behavior

Every command is wrapped in a shared error handler (runOrExit in src/cli/index.ts): an uncaught error prints as ward: <message> in red and sets a non-zero exit code, rather than dumping a raw stack trace. Set WARD_DEBUG=1 in your environment to also print the full stack trace on failure.

Start with ward init

Always run ward init before ward test — it’s the step that proves the facilitator you’re about to run adversarial tests against actually works at all.