Terminal-based diff viewer for Git with interactive file tree navigation and configurable external diff tool support.
ftdv is a terminal-based Git diff viewer that combines interactive file tree navigation with flexible external diff tool integration. Built with Rust and ratatui, it provides a file-by-file diff interface where users can navigate through changed files in a tree structure and view diffs using configurable external tools like delta, bat, ydiff, or difftastic.
The tool supports multiple Git operations including working directory changes, staged changes, branch comparisons, and direct file/directory comparisons. It features vim-style keyboard navigation, directory folding, search functionality with real-time filtering, and checkbox tracking for marking reviewed files. The diff content is generated fresh for each selected file, with automatic ANSI color detection and rendering.
ftdv uses a YAML configuration system that allows users to configure different diff tools with template variables for width control and color settings. It distinguishes between pager-based tools (that accept stdin) and external diff commands (invoked by Git with file paths). The tool maintains persistent state for checked files and provides customizable themes for both dark and light terminal environments.
# via Cargo
cargo install ftdv
