A fast, cross-platform terminal user interface (TUI) directory comparison tool written in Rust — align, diff, filter, and sync directories in real-time.
$ curl -fsSL https://raw.githubusercontent.com/akunzai/duodiff/main/install.sh | bash
Detects your platform, verifies its SHA-256 checksum, and installs to ~/.local/bin — Linux, macOS & Windows (Git Bash).
More paths (Homebrew, Scoop, PowerShell, crates.io, source, duodiff --upgrade): docs/INSTALL.md

Clean, robust, and lightning-fast directory comparisons.
Balanced view showing matching, differing, and missing folders/files side-by-side. Focus highlights and synchronized mouse scrolling keep context clear.
All directory alignment calculations and file content MD5 streaming checksum computations run in non-blocking background tasks, keeping the UI fully interactive.
Compare file differences instantly in-app, or launch your preferred external diff tool. Sync files with confirmation gates protecting against overwrite.
A complete set of tools to explore, diff, and resolve directory differences.
Toggle between Fast mode (compares file size and modification time) and Precise mode (compares content via streaming MD5 hashes) at the press of a key (c).
View visual line-level diffs inside the app, or launch external diff tools (vim, nvim, code, meld, difft, etc.) and editors using your $EDITOR environment variable.
Search files in the tree view instantly using the slash key (/). Commit search queries or toggle showing only differing items (f).
Navigable via standard arrow keys or hjkl keys. Wheel scrolls, clicks select, and double-clicks enter diff views or toggle directory trees.
Built-in configuration screen (C) that automatically detects system-installed diff tools and edits ~/.config/duodiff/config.toml.
Supports self-checking and direct in-app upgrading from release binaries using duodiff --upgrade. Background updates check once a day politely.
Zero external runtime dependencies. Runs standalone on macOS, Linux, and Windows.
Requires a terminal supporting truecolor or 256 colors. Unicode and emoji font support makes icons cleaner.
Required only if building from source. Pin versions using mise or build with cargo build.
For launching external diff editors from the UI, standard tools like code, nvim, or meld are supported.