Review layer between coding agents and your codebase. Agents modify dozens of files in seconds; Rift answers what behavior changed, what matters, and what deserves human attention — before you merge.
github.com/GregDixonMXN/Rift · Rust · License: Apache-2.0
Railpane consumes Rift's machine-readable output and converts evidence into REQUIRE_APPROVAL or DENY. Canonical case: task "increase session timeout" + agent also changes password validation, payment auth, schema → Rift detects scope exceedance → Railpane escalates. Deterministic analysis is never replaced by an LLM.
rift . # review working tree vs HEAD (opens app)
rift --overview # text overview, no GUI
rift --staged # staged changes
rift --commit <sha> # one commit vs parent
rift main..HEAD # branch comparison
rift --json # machine-readable ChangeSet
rift --overview --task "extend session timeout" # task-vs-change check
rift --escalate --json # evidence-only LLM package (no source/diffs)
No accounts, no cloud, no config. Local-first, deterministic. Cloud judgments only with explicit --jev; --no-ai rejects them.
rift --staged --overview --fail-on high
rift --overview --task @task.md --fail-on-task partial
rift --install-hook # pre-commit, gates on high
rift main..HEAD --format github --fail-on high
cargo install --path crates/rift-cli
# then: cd <repo> && rift
cargo build; cargo test; cargo clippy
Needs a git repo. Layout: rift-core (ChangeSet), rift-git (git2 diffs), rift-parser (syn + tree-sitter), rift-analysis (scoring), rift-cli, rift-ui (egui), rift-jev (opt-in).