
Hacker News · Feb 26, 2026 · Collected from RSS
deff is an interactive Rust TUI for reviewing git diffs side-by-side with syntax highlighting and added/deleted line tinting. It supports keyboard/mouse navigation, vim-style motions, in-diff search (/, n, N), per-file reviewed toggles, and both upstream-based and explicit --base/--head comparisons. It can also include uncommitted + untracked files (--include-uncommitted) so you can review your working tree before committing. Would love to get some feedback Comments URL: https://news.ycombinator.com/item?id=47169518 Points: 27 # Comments: 13
My name is deff deff deff is a Rust TUI: interactive, side-by-side file review for git diffs with per-file navigation, vertical and horizontal scrolling, syntax highlighting, and added/deleted line tinting. Quickstart Run the installer script from this repository: curl -fsSL https://raw.githubusercontent.com/flamestro/deff/main/install.sh | bash Installer source: https://github.com/flamestro/deff/blob/main/install.sh The script checks for cargo, clones this project into a temporary directory, installs it, and removes the temporary checkout. If you have local edits (including untracked files) and want to review them before committing, run: deff --include-uncommitted This opens the side-by-side review so you can check exactly what changed in your working tree. Features upstream-ahead strategy (default) to compare local branch changes against its upstream range strategy for explicit --base / --head comparison Optional --include-uncommitted mode to include working tree and untracked files Side-by-side panes with independent horizontal scroll offsets Keyboard and mouse navigation (including wheel + shift-wheel) Vim-like motion navigation (h/j/k/l, g/G, Ctrl+u/Ctrl+d) In-diff search (/ + Enter, then n / N to navigate matches) Per-file reviewed toggles (r) with local persistence under .git Language-aware syntax highlighting and line-level add/delete tinting Examples Single-line change view: Multi-line change view: Usage deff deff --strategy upstream-ahead deff --strategy range --base origin/main --head HEAD deff --strategy range --base origin/main --include-uncommitted deff --theme dark Show help: deff --help Local Build and Usage Flow Prerequisites: Rust toolchain (cargo) git Interactive terminal (TTY) Build locally: cargo build --release --locked ./target/release/deff --help Optionally install it to your local Cargo bin path: cargo install --path . deff --help Run it inside any git repository you want to review: cd /path/to/your/repo # default: compare local branch commits vs upstream deff # explicit range deff --base origin/main --head HEAD # include uncommitted + untracked files deff --base origin/main --include-uncommitted If your branch has no upstream configured, use the explicit --base flow. Theme selection: By default, deff prefers a dark syntax theme (better for black/dark terminals). Use --theme auto|dark|light to control rendering for your terminal. --theme takes precedence over DEFF_THEME=dark|light. Search and reviewed workflow: Press / to enter a search query for the current file (searches both panes). Press Enter to apply the query, then use n / N to jump matches. Press r to mark the current file reviewed/unreviewed. Reviewed state is persisted locally in .git/deff/reviewed/ and keyed by comparison scope + file content hash. GitHub Release Workflow This repo ships with .github/workflows/release.yml. Trigger: push a tag like v0.1.0 Builds release artifacts for Linux and macOS targets Creates a GitHub release and uploads tarballs + SHA256 files Architecture and Extension Guide For a module-level map and extension plan, see docs/architecture.md.