Skip to main content

Installation

There is no published crate or package manager release yet, but prebuilt binaries are published on every GitHub Release as of v0.0.4 — you don't need Cargo or a full workspace build just to try Fornax.

Option A: download a release binary (fastest)​

Download the archive for the latest release (macOS and Linux; there is no Windows build), verify it against the release's SHA256SUMS.txt, and extract it. This gives you the same binaries described below without a Rust toolchain or a full cargo build.

Option B: build the workspace from source​

git clone https://github.com/horonomy/fornax-core.git
cd fornax-core
cargo build --workspace --release

Either option produces the same binaries, under target/release/ if built from source, or in the extracted archive if downloaded:

BinaryCratePurpose
fornax-daemonfornax-daemonThe one local process: event intake, evidence store, verifiers, localhost API.
fornaxfornax-clifornax status / fornax detail — reads from the daemon's localhost API.
fornax-hook-claudefornax-adapter-claudeClaude Code hook adapter.
fornax-hook-codexfornax-adapter-codexCodex rollout-tail adapter.
fornax-hook-opencodefornax-adapter-opencodeOpenCode hook adapter.
fornax-benchfornax-benchCalibration/ablation benchmark harness (v0.0.4+).
fornax-replayfornax-replayLocal replay engine for regression comparison (v0.0.5+).

Put the binaries on your PATH​

export PATH="$(pwd)/target/release:$PATH"

Add that line to your shell profile to make it persistent. Claude Code invokes fornax-hook-claude by name as a hook command, so it must be resolvable on PATH (or referenced by absolute path in your hook config — see Claude Code integration). Codex does not invoke fornax-hook-codex at all — it's a standalone process you run yourself (fornax-hook-codex &) that tails Codex's rollout transcript; see Codex integration for why, and how to start it.

Run the daemon​

The daemon is a single long-lived process, started once per machine (not per project, not per session):

fornax-daemon &

For a persistent setup, run it under your OS's service manager (launchd on macOS, systemd --user on Linux) instead of a background shell job — Fornax does not ship a service unit yet, so this is a manual step. If the daemon isn't running, the CLI and adapters degrade gracefully (see Local runtime & daemon) rather than erroring.

Verify the install​

fornax status
🛡 fornax: no findings yet

That message — not an error — means the binary, PATH, and daemon connection are all working; you just haven't produced a finding yet. Continue with the Quick Start.

Project-scoped vs. global setup​

Fornax adapters can be wired into Claude Code's global settings (~/.claude/settings.json, applies to every project) or project-local settings (.claude/settings.local.json, applies to one repo only, never committed). Project-scoped is recommended while you're evaluating Fornax: a bug in the integration can't affect unrelated sessions, and it isn't imposed on other contributors who clone the repo. See Self-host / local development for the full project-scoped example fornax-core uses on itself.