git-status-dash
See the status of all the repos in a folder in one place
- Commits
- 29
- Files
- 23
- Size
- 181.3 KB
- Langs
- 3
- Stars
- 2
- Forks
- 1
- Created
- Jun 14, 2024
- Last push
- about 1 year ago
Git Status Dashboard
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
🚀 Get the Fastest Version
Go version is 35% faster, uses 90% less memory, has zero dependencies, and includes advanced theming & config.
Quick Start (Recommended)
# 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
Or Use Node.js Version
# 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 --help
Performance comparison on 127 repos:
- Go: 1.159s, 6.7MB RAM ⚡
- Node.js: 1.241s, 69MB RAM
⚡ New in Go Version
🎨 Advanced Theming
- 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
⚙️ Deep Configuration
- 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
🔧 Quick Config Examples
# 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.yml
How it works
Recursively scans directories and shows git status for all repos. Defaults to current directory, but you can point it anywhere.
Development setup
# Go version
go run *.go
# Node.js version
npm install && node index.mjs
What's it telling me? 🤔
The 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.
🔧 Configuration Reference (Go Version)
Themes
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.conf
Display Options
git-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 status
Filter Options
git-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 repos
Behavior Options
git-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 notifications
Performance Tuning
git-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
Config File Location
- Linux/macOS:
~/.config/git-status-dash/config.json - Windows:
%APPDATA%/git-status-dash/config.json - Themes:
~/.config/git-status-dash/themes/
Built-in Themes
- matrix: Hacker green with effects
- minimal: Clean monochrome
- hacker: Retro terminal style
- neon: Bright colors and particles
Supported Theme Sources
- VS Code:
.jsontheme files - Alacritty:
.ymlconfig files - Kitty:
.conftheme files
If you have any questions, suggestions, PRs are welcome.