🚀 Explore this trending post from Hacker News 📖
📂 **Category**:
💡 **What You’ll Learn**:
My name is 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.
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.
upstream-aheadstrategy (default) to compare local branch changes against its upstreamrangestrategy for explicit--base/--headcomparison- Optional
--include-uncommittedmode 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, thenn/Nto navigate matches) - Per-file reviewed toggles (
r) with local persistence under.git - Language-aware syntax highlighting and line-level add/delete tinting
Single-line change view:

Multi-line change view:

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:
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,
deffprefers a dark syntax theme (better for black/dark terminals). - Use
--theme auto|dark|lightto control rendering for your terminal. --themetakes precedence overDEFF_THEME=dark|light.
Search and reviewed workflow:
- Press
/to enter a search query for the current file (searches both panes). - Press
Enterto apply the query, then usen/Nto jump matches. - Press
rto mark the current file reviewed/unreviewed. - Reviewed state is persisted locally in
.git/deff/reviewed/and keyed by comparison scope + file content hash.
GitHub Version Bump Workflow
This repo ships with .github/workflows/bump-version.yml.
- Trigger: publish a GitHub release with a tag like
v0.1.0 - Updates
Cargo.toml/Cargo.lockon the default branch using commit prefixes (feat:-> next minor,chore:/docs:-> next patch)
See CONTRIBUTING.md for local setup, commit message conventions, and release/versioning rules.
Architecture and Extension Guide
For a module-level map and extension plan, see docs/architecture.md.
💬 **What’s your take?**
Share your thoughts in the comments below!
#️⃣ **#flamestrodeff #interactive #sidebyside #file #review #git #diffs #perfile #navigation #vertical #horizontal #scrolling #syntax #highlighting #addeddeleted #line #tinting**
🕒 **Posted on**: 1772142970
🌟 **Want more?** Click here for more info! 🌟
