A fast, cross-platform CLI tool to check the git status of multiple projects organized by categories.
Run check-projects to see which of your projects have uncommitted changes, are ahead of remote, or have other git status indicators.
x mozilla
* M firefox
✱ ✚ thunderbird
✔ godot
x gamedev
⬆ flying-ones
* M avindi
- ✔ - Clean (synced with remote)
- ⬆ - Ahead of remote
- ⬆⬆ - Diverged from remote
- * M - Modified files
- * D - Deleted files
- ✱ ✚ - Untracked files
- ❌ - Error
- Multi-category organization: Group your projects by team, client, or any category
- Nested project discovery: Automatically scan nested folder structures
- Concurrent scanning: Fast parallel git status checks
- Flexible configuration: YAML-based config with local and global support
- Smart filtering: Hide clean projects by default, show only what needs attention
- Cross-platform: Single binary for macOS, Linux, and Windows
curl -fsSL https://raw.githubusercontent.com/uralys/check-projects/main/install.sh | sh
This will download the latest release and install it to ~/.local/bin/check-projects.
show manual Installation-
Download the latest release for your platform from GitHub Releases
-
Extract and install:
# macOS/Linux
tar -xzf check-projects-*.tar.gz
chmod +x check-projects
sudo mv check-projects /usr/local/bin/
# Or install to user directory (no sudo required)
mkdir -p ~/.local/bin
mv check-projects ~/.local/bin/
# Add ~/.local/bin to your PATH if not already done
# Windows (PowerShell as Administrator)
Move-Item check-projects.exe C:\Windows\System32\
git clone https://github.com/uralys/check-projects.git
cd check-projects
make install
- Create a configuration file:
cp check-projects.example.yml ~/check-projects.yml
-
Edit ~/check-projects.yml to match your project structure
-
Run the tool:
Configuration files are searched in this order:
- Path specified with --config flag
- ./check-projects.yml (current directory)
- ~/check-projects.yml (home directory)
categories:
# Mode 1: Explicit project list (using 'projects' field)
# Use full paths to specific git repositories
- name: core
projects:
- ~/fox
- ~/cherry
# Mode 2: Auto-scan directory (using 'root' field)
# Recursively scans for all git repositories in the directory
- name: godot
root: ~/Projects/godot
- name: uralys
root: ~/Projects/uralys
# Check all projects
check-projects
# Show all projects including clean ones
check-projects --verbose
check-projects -v
# Check only specific category
check-projects --category gamedev
# Use custom config file
check-projects --config /path/to/config.yml
# Install dependencies
make deps
# Run without building
make dev
# Build binary
make build
# Run tests
make test
# Build for all platforms
make release
.png)

