Sirius Forester GitHub ↗
α Getting started

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 (amt CLI, schema ≥ v3) — the issue tracker Sirius claims from.
  • Hayvenhurst (hayven CLI, 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.