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.
- 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.
Install the latest release:
curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/lazydiff/main/install | shInstall a specific version:
curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/lazydiff/main/install | sh -s -- --version v0.1.0-alpha.5Verify the install:
lazydiff --versioncargo install --git https://github.com/Ataraxy-Labs/lazydiffOpen LazyDiff in a Git repository:
lazydiffReview 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 pagerGitHub PR review uses device login:
lazydiff login
lazydiff logoutThe 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| Key | Action |
|---|---|
j / k |
Move line |
ctrl-d / ctrl-u |
Half-page scroll |
/ |
Search |
f |
Open file picker |
m |
Toggle split/unified diff mode |
enter |
Open focused item |
q / esc |
Back / quit |
git clone https://github.com/Ataraxy-Labs/lazydiff.git
cd lazydiff
cargo runFast local TUI loop:
cargo build --profile dev-fast
scripts/dev-watch-tui.shQuality checks:
cargo fmt --check
cargo clippy --all-targets
cargo testRelease 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.
Issues and pull requests are welcome. See CONTRIBUTING.md for local development notes.
MIT