Getting started
Install the signed binary, point Sirius at a repo, and let sirius doctor tell you exactly what the integration needs.
Sirius is a single binary that supervises multiple coding agents running in
parallel against one repo. It does not replace your issue tracker, your code
graph, or your CI — it makes them safe to run agents against. To run the full loop it
needs two companion tools — Ametrite (the
issue tracker) and Hayvenhurst (the
code graph) — both public and both local, and both described in
architecture. sirius doctor names anything that is missing.
Requirements
- No toolchain for the prebuilt binaries — they are checksummed and Sigstore-signed. Rust ≥ 1.74 is needed only to build from source.
- Ametrite (
amtCLI, schema ≥ v3) — the issue tracker Sirius claims from. - Hayvenhurst (
hayvenCLI, daemon on:7777) — the code graph used for locking, test selection, and provenance stamps. - Bun (optional) — only for the web console and the benchmarks.
Install
The fastest path is the Claude Code plugin, which picks the right tarball for
your OS and CPU, verifies the checksum and the Sigstore signature, and puts
sirius on your PATH:
/sirius:install-binary
Without the plugin, the install script does the same verification. A bad signature aborts the install, and so does a missing signature bundle — an attacker who can serve a tampered tarball can also serve a 404 for its signature, so “skip when absent” would be a free downgrade.
curl -fsSL https://raw.githubusercontent.com/Davidb3l/Sirius-Forester/main/plugin/scripts/install-sirius.sh | sh
# require verification even when no verifier is installed:
# ./install-sirius.sh --require-signature
From source, if you would rather compile it yourself:
git clone https://github.com/Davidb3l/Sirius-Forester && cd Sirius-Forester
cargo install --path . # puts `sirius` on your PATH
Initialize a workspace
Run Sirius from inside a repo that already has .ametrite/ and .hayven/.
sirius init creates the ledger — its only write target — and a config file:
cd /path/to/your/repo # one that has .ametrite/ and .hayven/
sirius init # creates .sirius/{sirius.db,config.json}
Check the contracts
sirius doctor verifies the five facts Sirius depends on, live, and tells you
exactly what is missing rather than failing deep in a run:
sirius doctor
[OK] amt_present_and_schema: amt 0.1.0, ametrite schema v4 (>= v3)
[FAIL] hayven_daemon_7777: no 200 from http://localhost:7777
CONTRACT DRIFT DETECTED
The daemon check probes GET http://localhost:7777/ for a 200. Start
Hayvenhurst’s daemon in the repo (hayven daemon start) and re-run doctor until
every line reads [OK].
Configure the gate
The gate fails closed until you give it your test command. Set the one value
it needs in .sirius/config.json:
{ "gate": { "test_cmd": "cargo test" } }
That is the whole setup. With both companions healthy and a test command
configured, sirius run will claim work, lock the code it touches, run your
agent, gate the result, and file a receipt. The commands page
covers each verb; the loop on the home page shows the eight phases of a
single iteration.