giff-1.0.0 is not a library.
giff
A terminal UI for git diffs with interactive rebase support.
Features
- Side-by-side & unified diffs — toggle between layouts with a single key
- Syntax highlighting — language-aware coloring via syntect
- Dark & light themes — built-in themes with full customization through config
- Interactive rebase — accept or reject individual changes, then commit
- Rebase detection — notifies you when your branch is behind or has diverged
- Vim-style navigation — keyboard-first with mouse scroll support
- Help overlay — press
?anywhere to see all keybindings in context - Configurable — persistent settings via
~/.config/giff/config.toml
Install
Or build from source:
&&
Usage
Keybindings
Diff mode
| Key | Action |
|---|---|
j / k |
Navigate down / up |
PageDown / PageUp |
Page down / up |
Home / End |
Jump to first / last item |
Tab |
Toggle focus between file list and diff |
h / l |
Focus file list / diff content |
u |
Toggle unified / side-by-side view |
t |
Toggle dark / light theme |
r |
Enter rebase mode |
? |
Show help |
q / Esc |
Quit |
Rebase mode
| Key | Action |
|---|---|
j / k |
Next / previous change |
a / x |
Accept / reject change |
n / p |
Next / previous file with changes |
c |
Commit accepted changes |
? |
Show help |
Esc |
Cancel rebase |
Mouse
Scroll wheel works in both the file list and diff panes.
Configuration
~/.config/giff/config.toml
= "dark"
[]
= "dark"
= "#89b4fa"
= "#a6e3a1"
= "#f38ba8"
See the built-in dark and light themes in src/ui/theme.rs for all available color keys.
Contributing
Contributions welcome — feel free to open an issue or submit a PR.