Fast project and branch switching for git workspaces.
- Fuzzy project search - Quickly find and jump to any git repository
- Branch switching - Switch branches with fuzzy search across local and remote
- Workspace scanning - Automatically discover repos in your project directories
- Background watcher - Tracks branch changes from any tool (IDE, CLI, etc.)
- Shell integration - Native functions for bash, zsh, and fish
go install github.com/yigitozgumus/grip/cmd/grip@latestgit clone https://github.com/yigitozgumus/grip.git
cd grip
make build
make install # Copies to ~/.local/bin/brew install yigitozgumus/homebrew-formulae/gripgrip add ~/projects --name work --depth 2grip init# For zsh
grip shell >> ~/.zshrc
source ~/.zshrc
# For bash
grip shell --bash >> ~/.bashrc
# For fish
grip shell --fish >> ~/.config/fish/config.fish| Command | Description |
|---|---|
gpcd |
Fuzzy select a project and cd into it |
gpcd myproject |
Jump directly to "myproject" |
gpsw |
Select project + branch, switch and cd |
gpb |
Switch branch in current repository |
gps |
Show all tracked repositories |
gpi |
Re-scan all workspaces |
grip add <path> # Add a workspace to track
grip init # Scan and index all repositories
grip status # List all tracked repos
grip cd [project] # Select project, print path
grip switch [project] # Select project + branch
grip branches [--refresh] # Switch branch in current repo
grip watch # Start background watcher daemon
grip shell # Output shell integrationConfig is stored at ~/.config/grip/config.json
{
"workspaces": [
{
"name": "work",
"path": "/Users/you/projects",
"max_depth": 2
}
],
"repos": {
"/Users/you/projects/myapp": {
"current_branch": "main",
"local_branches": ["main", "feature/x"],
"remote_branches": ["origin/main"]
}
}
}- Workspaces: Directories containing git repositories (scanned up to
max_depth) - Indexing:
grip initdiscovers repos and caches branch information - Fuzzy Search: Interactive selection powered by go-fuzzyfinder
- Shell Integration: Functions wrap
gripto enable actual directory changes - Watcher: Optional daemon monitors
.git/HEADfiles for real-time branch updates
MIT License - see LICENSE
