Ataraxy-Labs/lazydiff

A fast terminal UI for reviewing Git diffs with support for annotations for agents

Rust

165

59 commits

updated Jul 3, 2026

See the code

README

LazyDiff

Version License: MIT

image

A fast terminal UI for reviewing Git diffs and GitHub pull requests.

LazyDiff is for the code-review loop: jump through changed files, inspect hunks, search the diff, browse semantic changes, and keep your focus in the terminal.

Alpha: LazyDiff is currently intended for early adopters and dogfooding. Expect UI and workflow changes between alpha releases.

Features

  • Review worktree changes, staged changes, commits, refs, patch files, and stdin diffs.
  • Browse pull requests from a terminal-first review queue.
  • Open PR descriptions and changed files side by side.
  • See semantic code changes powered by sem-core.
  • Search within diffs and jump directly to matching files or hunks.
  • Switch between unified and split diff views.
  • Persist lightweight review state locally.
  • Login, logout, and update from the CLI.

Installation

Install the latest release:

curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/lazydiff/main/install | sh

Install a specific version:

curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/lazydiff/main/install | sh -s -- --version v0.1.0-alpha.5

Verify the install:

lazydiff --version

From source

cargo install --git https://github.com/Ataraxy-Labs/lazydiff

Usage

Open LazyDiff in a Git repository:

lazydiff

Review local changes directly:

lazydiff diff                    # worktree changes vs HEAD
lazydiff diff --staged           # staged changes
lazydiff diff origin/main        # current branch vs a base ref
lazydiff show HEAD~1             # a commit
lazydiff patch path/to/file.diff # a patch file
git diff --no-color | lazydiff pager

GitHub PR review uses device login:

lazydiff login
lazydiff logout

The GitHub device login needs an OAuth app client ID. Configure it locally:

# ~/.config/lazydiff/config.toml
github_client_id = "your-github-oauth-client-id"

Update LazyDiff from GitHub Releases:

lazydiff update

Keybindings

KeyAction
j / kMove line
ctrl-d / ctrl-uHalf-page scroll
/Search
fOpen file picker
mToggle split/unified diff mode
enterOpen focused item
q / escBack / quit

Development

git clone https://github.com/Ataraxy-Labs/lazydiff.git
cd lazydiff
cargo run

Fast local TUI loop:

cargo build --profile dev-fast
scripts/dev-watch-tui.sh

Quality checks:

cargo fmt --check
cargo clippy --all-targets
cargo test

Release builds

Release artifacts are published as GitHub Release archives for Linux, macOS, and Windows, with .sha256 checksums.

Release builds currently include a focused semantic grammar set — TypeScript/TSX, JavaScript/JSX, Python, Go, Rust, and Java — to keep binaries small. Other languages still fall back to normal textual diff review.

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for local development notes.

License

MIT

git
github
lazygit
pull-requests
ratatui
rust

Ataraxy-Labs/lazydiff

A fast terminal UI for reviewing Git diffs with support for annotations for agents

Rust

165

59 commits

updated Jul 3, 2026

See the code

README

LazyDiff

Version License: MIT

image

A fast terminal UI for reviewing Git diffs and GitHub pull requests.

LazyDiff is for the code-review loop: jump through changed files, inspect hunks, search the diff, browse semantic changes, and keep your focus in the terminal.

Alpha: LazyDiff is currently intended for early adopters and dogfooding. Expect UI and workflow changes between alpha releases.

Features

  • Review worktree changes, staged changes, commits, refs, patch files, and stdin diffs.
  • Browse pull requests from a terminal-first review queue.
  • Open PR descriptions and changed files side by side.
  • See semantic code changes powered by sem-core.
  • Search within diffs and jump directly to matching files or hunks.
  • Switch between unified and split diff views.
  • Persist lightweight review state locally.
  • Login, logout, and update from the CLI.

Installation

Install the latest release:

curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/lazydiff/main/install | sh

Install a specific version:

curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/lazydiff/main/install | sh -s -- --version v0.1.0-alpha.5

Verify the install:

lazydiff --version

From source

cargo install --git https://github.com/Ataraxy-Labs/lazydiff

Usage

Open LazyDiff in a Git repository:

lazydiff

Review local changes directly:

lazydiff diff                    # worktree changes vs HEAD
lazydiff diff --staged           # staged changes
lazydiff diff origin/main        # current branch vs a base ref
lazydiff show HEAD~1             # a commit
lazydiff patch path/to/file.diff # a patch file
git diff --no-color | lazydiff pager

GitHub PR review uses device login:

lazydiff login
lazydiff logout

The GitHub device login needs an OAuth app client ID. Configure it locally:

# ~/.config/lazydiff/config.toml
github_client_id = "your-github-oauth-client-id"

Update LazyDiff from GitHub Releases:

lazydiff update

Keybindings

KeyAction
j / kMove line
ctrl-d / ctrl-uHalf-page scroll
/Search
fOpen file picker
mToggle split/unified diff mode
enterOpen focused item
q / escBack / quit

Development

git clone https://github.com/Ataraxy-Labs/lazydiff.git
cd lazydiff
cargo run

Fast local TUI loop:

cargo build --profile dev-fast
scripts/dev-watch-tui.sh

Quality checks:

cargo fmt --check
cargo clippy --all-targets
cargo test

Release builds

Release artifacts are published as GitHub Release archives for Linux, macOS, and Windows, with .sha256 checksums.

Release builds currently include a focused semantic grammar set — TypeScript/TSX, JavaScript/JSX, Python, Go, Rust, and Java — to keep binaries small. Other languages still fall back to normal textual diff review.

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for local development notes.

License

MIT

git
github
lazygit
pull-requests
ratatui
rust

Significant stargazers

Ofek Lev

932 followers · starred Jul 2026

Ismaël Mejía

208 followers · starred May 2026

Andrey Petrov

1,260 followers · starred May 2026

Eric Clemmons

1,198 followers · starred May 2026