A terminal UI for viewing git diffs with style.
- Diff Viewer - View git diffs with syntax highlighting
- Git Log - View commit history with ASCII graph visualization
- Staged/Unstaged Sections - Easily distinguish between staged and unstaged changes
- Stage/Unstage - Toggle file staging with
skey - Hunk Operations - Stage, unstage, or discard individual hunks
- Commit - Commit staged changes directly from the command palette
- Full File View - Toggle between diff and full file view with
okey - Monorepo Support - Group files by project directory (e.g.,
apps/web,packages/ui) - Submodule Support - Track and view changes in git submodules
- Multiple Themes - One Dark, GitHub Dark, Monokai, Catppuccin, Dracula
- Setup Wizard - First-run configuration with live preview
- Command Palette - Fuzzy search for files and commands with
/key - Keyboard Navigation - Vim-style navigation (j/k/g/G) and arrow keys
- Auto-Refresh - Automatically refreshes when terminal gains focus
brew install 3000-2/tap/fidTo update:
brew upgrade fidgit clone https://github.com/3000-2/fid.git
cd fid
bun installRequires Bun runtime.
# Homebrew
fid
fid /path/to/git/repo
# From source
bun run start
bun run start /path/to/git/repo| Key | Action |
|---|---|
Tab |
Toggle focus (Sidebar / Diff) |
/ |
Open command palette |
? |
Show help |
b |
Toggle sidebar |
r |
Refresh files |
Ctrl+C |
Exit |
| Key | Action |
|---|---|
j / k |
Navigate files |
g / G |
First / Last file |
Enter |
Select file |
s |
Stage / Unstage file |
[ / ] |
Resize sidebar |
| Key | Action |
|---|---|
j / k |
Scroll up / down |
d / u |
Half page down / up |
gg / G |
Top / Bottom |
n / N |
Next / Previous hunk |
+ |
Stage current hunk |
- |
Unstage current hunk |
x |
Discard current hunk |
o |
Toggle full file view |
L |
Load more lines (for large files) |
| Key | Action |
|---|---|
j / k |
Navigate commits |
g / G |
First / Last commit |
d / u |
Half page down / up |
Enter |
View commit files |
Esc |
Close log / Back to log |
Press / to open the command palette. You can:
- Fuzzy search - Type partial matches (e.g.,
mlayfindsMainLayout.ts) - Browse all files - Search any project file (enable in Settings)
- Scroll results - Use arrow keys to navigate through all matches
- Commit - Commit staged changes with a message
- Log - View commit history with graph
- Stage All - Stage all changed files
- Unstage All - Unstage all staged files
- Settings - Open theme and preferences
- Help - View keyboard shortcuts
- Refresh - Reload changed files
Settings are stored in ~/.config/fid/config.json:
{
"theme": "one-dark",
"sidebarPosition": "left",
"sidebarWidth": 32,
"browseAllFiles": false
}one-dark- Dark blue-gray (default)github-dark- Dark with blue accentsmonokai- Classic dark with warm colorscatppuccin- Soothing pastel themedracula- Dark with vibrant colors
left- Files on the left sideright- Files on the right side
When enabled, the command palette allows searching all project files, not just git changes.
MIT