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:
| Binary | Crate | Purpose |
|---|---|---|
fornax-daemon | fornax-daemon | The one local process: event intake, evidence store, verifiers, localhost API. |
fornax | fornax-cli | fornax status / fornax detail — reads from the daemon's localhost API. |
fornax-hook-claude | fornax-adapter-claude | Claude Code hook adapter. |
fornax-hook-codex | fornax-adapter-codex | Codex rollout-tail adapter. |
fornax-hook-opencode | fornax-adapter-opencode | OpenCode hook adapter. |
fornax-bench | fornax-bench | Calibration/ablation benchmark harness (v0.0.4+). |
fornax-replay | fornax-replay | Local 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.