As the number of projects on my computer grew, I started noticing two recurring problems:
- Time loss: Remembering and typing deep file system paths became tedious.
- Lack of visibility: I would forget which projects had pending changes or uncommitted work.
FindGit was created to solve this by combining the speed of fd with the interactive interface of fzf, allowing me to visualize the state of my repositories and jump between them in milliseconds.
- Blazing Fast Search: Scans multiple directories in parallel.
- Smart Sorting: Prioritizes repositories with pending changes, then by last commit date.
- Interactive Interface: Powered by fzf with a rich, colored preview.
- Highly Configurable: Simple JSON configuration for search and ignore paths.
ezaModernlsreplacement for directory icons and colors.
# Arch Linux
sudo pacman -S fd fzf eza rustupgit clone https://github.com/Facu-Glo/findgit.git
cd findgitThe project includes a Makefile to handle everything.
make help # See all available commands
make install # Compiles in release mode and installs to ~/.local/bin/findgitTo allow Findgit to change your shell directory, add this alias to your .zshrc or .bashrc:
# Primary Function
fgit() {
local selected_dir
selected_dir=$(findgit)
if [[ -n "$selected_dir" ]]; then
cd "$selected_dir"
fi
}
# Optional: Zsh Widget (Ctrl+G)
fgit_widget() {
local selected_dir
selected_dir=$(findgit)
if [[ -n "$selected_dir" ]]; then
cd "$selected_dir"
fi
zle reset-prompt
}
zle -N fgit_widget
bindkey '^G' fgit_widgetThe config file is automatically created at:
~/.config/findgit/config.json
{
"search_paths": [
"~/Repos",
"~/Documents/Projects"
],
"ignore_paths": [
"node_modules",
".venv",
"target",
"build"
]
}search_paths: Array of directories to search for Git repositoriesignore_paths: Array of directories to ignore during search
Simply type fgit (if using the alias) or findgit.
↑/↓orCtrl+j/k: Navigate the list.Enter: Change directory to the selected repo.EscorCtrl+c: Exit.
2026-03-24.22-02-48.mp4
The interface highlights:
- Red: Repositories with uncommitted changes.
- Gray: Clean repositories.
- Preview Top: git status summary.
- Preview Bottom: File listing with icons.
