ftdv

Terminal-based diff viewer for Git with interactive file tree navigation and configurable external diff tool support.

install· Cargo

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.

Installation

# via Cargo
cargo install ftdv

ftdv interface showing file tree and diff view

Alternatives & related tools

add a badge to your README

Maintain ftdv? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/ftdv.svg)](https://www.trmn.sh/tools/ftdv?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/ftdv?utm_source=badge"><img src="https://www.trmn.sh/badge/ftdv.svg" alt="Featured on trmn" height="20"></a>