Getting Started

August 6, 2026 · View on GitHub

Install

Download the archive for Linux x86-64 or Apple silicon from GitHub Releases, then extract it and run from the bundle directory:

tar -xzf sondera-<target>.tar.gz
cd sondera-<target>
./sondera --help

The archive includes the .sondera/ policy assets required by sondera serve, plus the README, this documentation, and the license. Commands below use cargo run from a source checkout; with an archive, replace cargo run -p sondera -- with ./sondera.

To build from source instead, install Rust and Cargo using rustup:

# Install Rust and Cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Verify installation
cargo --version

The YARA signature engine and Cedar policies work without any external dependencies. The optional LLM-based classifiers are off unless a config file turns them on, so the harness starts and adjudicates with no provider at all — see Configuration to enable them.

1. Start the server

sondera serve runs both gRPC surfaces on one address:

SurfaceWhere
sondera.harness.v1 — adjudication, backed by the Cedar policy engine/sondera.harness.v1.HarnessService/…
sondera.console.v1 — agent and trajectory reads over the same store/sondera.console.v1.ConsoleService/…
cargo run -p sondera -- serve -v

By default it loads everything from the nearest .sondera/ directory at or above the working directory, falling back per asset to ~/.sondera/, reads and writes ~/.sondera/trajectories/trajectories.db, and binds 127.0.0.1:50051. Configuration covers the flags and environment variables that override each of those; Deployment covers the production notes.

2. Install hooks for Claude Code

sondera hook claude registers hooks for all Claude Code lifecycle events (pre-tool-use, post-tool-use, session-start, etc.). Choose a scope:

# Local (default) — .claude/settings.local.json, not committed to git
cargo run -p sondera -- hook claude install

# Project — .claude/settings.json, committed to git, shared with team
cargo run -p sondera -- hook claude install --project

# User — ~/.claude/settings.json, applies to all projects
cargo run -p sondera -- hook claude install --user

To uninstall, use the same scope flag:

cargo run -p sondera -- hook claude uninstall --user

Hooks for Cursor (sondera hook cursor), GitHub Copilot (sondera hook copilot), and Gemini CLI (sondera hook gemini) follow the same pattern; sondera hook --help lists every supported provider. Which lifecycle events each provider can actually block is tabulated in crates/hooks/README.md.

3. Watch it work

With the server running and hooks installed, sondera tui gives you a read-only view of every adjudicated run — see Terminal UI.

Next steps

  • Configuration — point the harness at a different .sondera/, or enable the LLM guardrails.
  • Policies — read the shipped corpus and add your own rules.
  • Architecture — what happens between the hook and the verdict.