A CLI tool for scanning directories and displaying Git repository status information. gitskan
is a fork of gits-statuses which provides scripts to get a comprehensive overview of all your Git repositories in a clean, tabular format.
Notes:
gitskan
was catalyzed by this GitHub Issue- Implements a single CLI utility that is:
- Distributed and downloaded via PyPi
- Used globally as a bona fide CLI utility
- Easy to install and use for the end user
- Compatible with any terminal
This scans your directories and displays:
Standard View:
- Repository name
- Current branch
- Commits ahead of remote
- Commits behind remote
- Changed files count
- Untracked files count
- Only shows repositories with changes (clean repos are hidden)
Detailed View:
- All columns from standard view
- Total commits count
- Status summary (e.g., "↑1 ~2 ?3" for 1 ahead, 2 changed, 3 untracked)
- Remote URL
- Shows ALL repositories (including clean ones)
Enhanced Summary:
- Total repositories found
- Repositories with changes
- Repositories ahead of remote
- Repositories behind remote
- Repositories with untracked files
# Install gitskan
uv tool install gitskan
# Verify installation
gitskan --version
# Basic usage - scan current directory
gitskan
# Detailed view with remote URLs and total commits
gitskan --detailed
# Scan a specific directory
gitskan --path /path/to/projects
# Show help
gitskan --help
Standard view (shows only repositories with changes):
Repository | Branch | Ahead | Behind | Changed | Untracked
-------------------------------------------------------------
gits-statuses | main | 1 | | 1 | 1
my-project | dev | 2 | | 3 | 2
web-app | main | | 2 | 1 |
Summary:
Total repositories: 5
Repositories with changes: 3
Repositories ahead of remote: 2
Repositories behind remote: 1
Repositories with untracked files: 2
Detailed view (shows all repositories):
Repository | Branch | Ahead | Behind | Changed | Untracked | Total Commits | Status | Remote URL
---------------------------------------------------------------------------------------------------------------
api-service | main | | | | | 45 | Clean | https://github.com/user/api-service
gits-statuses | main | 1 | | 1 | 1 | 9 | ↑1 ~1 ?1 | https://github.com/nicolgit/gits-statuses
my-project | dev | 2 | | 3 | 2 | 67 | ↑2 ~3 ?2 | https://github.com/user/my-project
utils-lib | main | | | | | 23 | Clean | https://github.com/user/utils-lib
web-app | main | | 2 | 1 | | 102 | ↓2 ~1 | https://github.com/user/web-app
Summary:
Total repositories: 5
Repositories with changes: 3
Repositories ahead of remote: 2
Repositories behind remote: 1
Repositories with untracked files: 2
- ↑n: n commits ahead of remote
- ↓n: n commits behind remote
- ~n: n changed files (modified/added/deleted)
- ?n: n untracked files
- Clean: Repository has no pending changes
Examples:
↑2 ~1 ?3
= 2 commits ahead, 1 changed file, 3 untracked files↓1 ~2
= 1 commit behind, 2 changed filesClean
= No changes, fully synchronized