Skip to main content

A CLI tool to scan directories for Git repositories and display their status information.

Project description

gitskan

A CLI tool for scanning directories and displaying Git repository status information. gitskan is a fork of gits-statuses which provides a comprehensive overview of all your Git repositories in a clean, tabular format.

Notes:

  • This fork was catalyzed by this GitHub issue
  • This is meant to implement the exact functionality but in a single CLI executable
  • Renamed to gitskan as to not conflict with gits-statuses and to further simplify CLI command
    • Executable name in CLI: gsk

Features

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

Installation

Prerequisites

Install with uv (Recommended)

Note: This is only being temporarily published as an OS CLI tool to PyPi to showcase how it can be distributed and used. The hope is to merge this fork!

# Install uv if you haven't already
pip install uv     # or brew install uv on mac

# Install gitskan
uv tool install gitskan

# Verify installation
gsk --version

Usage

Basic Commands

# Basic usage - scan current directory
gsk

# Detailed view with remote URLs and total commits
gsk --detailed

# Scan a specific directory
gsk --path /path/to/projects

# Show help
gsk --help

Examples

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

Status Symbols

  • ↑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 files
  • Clean = No changes, fully synchronized

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitskan-0.0.4.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitskan-0.0.4-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file gitskan-0.0.4.tar.gz.

File metadata

  • Download URL: gitskan-0.0.4.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.15

File hashes

Hashes for gitskan-0.0.4.tar.gz
Algorithm Hash digest
SHA256 b9cc8eeea133ae4531d997b5f81d64c76f53603bdc15e61715af3a6dea8800d2
MD5 7d372877c543abb31f3fed85f3cb1026
BLAKE2b-256 dd2f7e634a7ba519323fb7266f9a4c29651d2f0050a3ab7eb9372f4fc5fece14

See more details on using hashes here.

File details

Details for the file gitskan-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: gitskan-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.15

File hashes

Hashes for gitskan-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 982bd559c8621a1d6d47eafb4894970d51cdb471fbedec557aaef605b6c26b29
MD5 1a8bca1cf21da35efb5f7ddb1fd52ef8
BLAKE2b-256 f72afd797e721fd1b3c9074ac4eba0bdce11647feea493efec9f18b07da91aef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page