A beautiful, blazingly fast git repository monitor that watches all your repos in real-time. Stop tab-switching to check git status – see everything at once in a gorgeous TUI that adapts to your workflow.
Why you'll love it:
- 🚀 Lightning fast - Go rewrite is 35% faster with 90% less memory
- 🎨 Gorgeously themed - Auto-detects your system theme or import from VS Code/Alacritty
- ⚙️ Deeply configurable - Every detail customizable via intuitive CLI
- 🔍 Smart monitoring - Only shows what matters, when it matters
Go version is 35% faster, uses 90% less memory, has zero dependencies, and includes advanced theming & config.
# Download the fast Go binary
curl -L https://github.com/ejfox/git-status-dash/releases/latest/download/git-status-dash-go-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m) -o git-status-dash
chmod +x git-status-dash && sudo mv git-status-dash /usr/local/bin/
# Initialize with beautiful defaults
git-status-dash config init
git-status-dash# Basic usage
npx git-status-dash
# Opens in TUI mode (thanks @zkbkb)
npx git-status-dash -t
# Open another directory
npx git-status-dash -d ~/code/
# Get help
npx git-status-dash --helpPerformance comparison on 127 repos:
- Go: 1.159s, 6.7MB RAM ⚡
- Node.js: 1.241s, 69MB RAM
- Auto-detect system light/dark mode
- Import themes from VS Code, Alacritty, Kitty
- 4 built-in themes: matrix, minimal, hacker, neon
- Popular themes: ayu, catppuccin, nord, dracula
- Display: tree view, timestamps, flash on change
- Filters: show/hide by status, recent repos only
- Behavior: refresh rates, TTL mode, notifications
- Performance: worker pools, timeouts, scan depth
# Set up your perfect environment
git-status-dash config auto # Auto-detect theme
git-status-dash config set display.tree_view true # Tree structure
git-status-dash config set filter.only_recent true # Recent repos only
git-status-dash config set behavior.ttl_mode true # Exit after 30s
# Import themes from other apps
git-status-dash config download ayu-vscode
git-status-dash config import alacritty ~/.config/alacritty/ayu.ymlRecursively scans directories and shows git status for all repos. Defaults to current directory, but you can point it anywhere.
# Go version
go run *.go
# Node.js version
npm install && node index.mjsThe table displays the following information for each repository:
- Repository name (relative to the scanned directory)
- Status icon and details:
- ✓ (green): The repository is in sync with the remote.
- ↑ (yellow): The local branch is ahead of the remote by the specified number of commits.
- ↓ (yellow): The local branch is behind the remote by the specified number of commits.
- ✕ (red): There are uncommitted changes or the repository is not a valid git repo.
The repositories are sorted by the most recently modified ones at the top, so you can quickly see which repos need your attention.
git-status-dash config themes # List available themes
git-status-dash config theme matrix # Set theme
git-status-dash config auto # Auto-detect from system
git-status-dash config sources # List theme sources
git-status-dash config download ayu-vscode # Download from source
git-status-dash config import kitty ~/.config/kitty/theme.confgit-status-dash config set display.tree_view true # Show as tree
git-status-dash config set display.flash_on_change true # Flash updates
git-status-dash config set display.show_timestamp true # Show timestamps
git-status-dash config set display.compact_mode true # Compact display
git-status-dash config set display.group_by_status true # Group by statusgit-status-dash config set filter.show_synced true # Show clean repos
git-status-dash config set filter.only_recent true # Recent repos only
git-status-dash config set filter.recent_days 3 # Define "recent"
git-status-dash config set filter.show_dirty false # Hide dirty reposgit-status-dash config set behavior.refresh_interval 500 # Refresh rate (ms)
git-status-dash config set behavior.ttl_mode true # Exit after timeout
git-status-dash config set behavior.ttl_seconds 30 # Timeout duration
git-status-dash config set behavior.watch_files false # Disable file watching
git-status-dash config set behavior.notify_on_change true # System notificationsgit-status-dash config set performance.workers 8 # Concurrent operations
git-status-dash config set performance.timeout 5 # Git timeout (seconds)
git-status-dash config set performance.max_depth 3 # Scan depth limit- Linux/macOS:
~/.config/git-status-dash/config.json - Windows:
%APPDATA%/git-status-dash/config.json - Themes:
~/.config/git-status-dash/themes/
- matrix: Hacker green with effects
- minimal: Clean monochrome
- hacker: Retro terminal style
- neon: Bright colors and particles
- VS Code:
.jsontheme files - Alacritty:
.ymlconfig files - Kitty:
.conftheme files
If you have any questions, suggestions, PRs are welcome.