SkillAgentSearch skills...

Giff

A terminal-based Git diff viewer with interactive rebase capabilities

Install / Use

/learn @bahdotsh/Giff
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center">

giff

A terminal UI for git diffs with interactive rebase support.

CI Crates.io License

giff demo

</div>

Features

  • Side-by-side & unified diffs — toggle between layouts with a single key
  • Syntax highlighting — language-aware coloring for 130+ languages 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

Syntax highlighting

Rust syntax highlighting

Unified view

Unified diff view

Light theme

Light theme

Help overlay

Help overlay

Install

cargo install giff

Or build from source:

git clone https://github.com/bahdotsh/giff.git
cd giff && cargo build --release

Usage

giff                        # uncommitted changes vs HEAD
giff main feature-branch    # diff between two refs
giff main                   # diff ref against working tree
giff --theme light          # override theme
giff -d "--stat"            # pass custom git diff args
giff --auto-rebase          # auto-rebase if behind upstream

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

theme = "dark"

[themes.custom]
base = "dark"
accent = "#89b4fa"
fg_added = "#a6e3a1"
fg_removed = "#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.

License

MIT or Unlicense, at your option.

View on GitHub
GitHub Stars122
CategoryDevelopment
Updated23h ago
Forks1

Languages

Rust

Security Score

95/100

Audited on Mar 31, 2026

No findings