MCPcopy Index your code
hub / github.com/bircni/git-statuses

github.com/bircni/git-statuses @0.8.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.8.1 ↗ · + Follow
140 symbols 341 edges 15 files 34 documented · 24%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

git-statuses

Crates.io Github All Releases MIT licensed CI

A command-line tool to display the status of multiple Git repositories in a clear, tabular format.

Features

  • Scans directories recursively for Git repositories
  • Displays status (clean/dirty, branch, etc.) in a table
  • Fast and user-friendly CLI
  • Useful for developers managing many repositories

Example

Installation

You need Rust installed.

cargo install git-statuses

Installation with cargo-binstall:

cargo binstall git-statuses

Or clone and build manually:

git clone https://github.com/bircni/git-statuses.git
cd git-statuses
cargo build --release

Usage

Run in any directory to scan for Git repositories:

A tool to display git repository statuses in a table format

Usage: git-statuses.exe [OPTIONS] [DIR]

Arguments:
  [DIR]  Directory to scan [default: .]

Options:
  -d, --depth <DEPTH>        Recursively scan all subdirectories to the given depth. If set to 1, only the current directory is scanned. If set to -1, all subdirectories are scanned. (this may take a while) [default: 1]
  -r, --remote               Show remote URL
  -c, --condensed            Use a condensed layout
  -s, --summary              Show a summary of the scan
  -f, --fetch                Run a fetch before scanning to update the repository state Note: This may take a while for large repositories
  -l, --legend               Print a legend explaining the color codes and statuses used in the output
      --subdir <SUBDIR>      Look in a specific subdir if it exists for each folder This can be useful, if you don't checkout in a folder directly but in a subfolder like `repo-name/checkout`
      --completions <SHELL>  Generate shell completions [possible values: bash, elvish, fish, powershell, zsh]
  -p, --path                 Show the path to the repository
  -n, --non-clean            Only show non clean repositories
  -h, --help                 Print help
  -V, --version              Print version

Output

The tool prints a table with the following columns:

  • Path
  • Branch
  • Status (clean/dirty)
  • Ahead/Behind

Development

  • Requires Rust 1.88+ (edition 2024)
  • Linting: cargo clippy
  • Tests: cargo test

Contributing

Contributions are welcome! Please open issues or pull requests.

Extension points exported contracts — how you extend this code

GitPathExt (Interface)
Extension trait for working with Git repository paths. [1 implementers]
src/util.rs

Core symbols most depended-on inside this repo

find_repositories
called by 22
src/cli.rs
repositories_table
called by 12
src/printer.rs
get_remote_url
called by 7
src/gitinfo/mod.rs
summary
called by 6
src/printer.rs
get_remote_name
called by 4
src/gitinfo/mod.rs
get_branch_name
called by 4
src/gitinfo/mod.rs
get_ahead_behind_and_local_status
called by 4
src/gitinfo/mod.rs
get_total_commits
called by 4
src/gitinfo/mod.rs

Shape

Function 123
Method 12
Class 3
Enum 1
Interface 1

Languages

Rust100%

Modules by API surface

src/tests/gitinfo_test.rs36 symbols
src/tests/printer_test.rs16 symbols
src/tests/util_test.rs13 symbols
src/tests/cli_test.rs13 symbols
src/tests/integration_test.rs12 symbols
src/gitinfo/mod.rs12 symbols
src/tests/smoke_test.rs8 symbols
src/tests/main_test.rs7 symbols
src/gitinfo/status.rs6 symbols
src/util.rs5 symbols
src/printer.rs5 symbols
src/gitinfo/repoinfo.rs4 symbols

For agents

$ claude mcp add git-statuses \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact