Skip to main content

Workspace git tree scanner

Project description

gstree

CI

gstree scans a workspace directory for Git repositories and shows their status as a compact tree.

projects
├── aurora [main] ~2 ?1
├── bonsai [main] +3 ~1
├── cedar [main] clean
│   └── roots [main] ↓2
└── drift [feat/glow] ~1 ↑1

Features

  • Tree view of all Git repos in a directory, including submodules
  • Compact status tokens for staged, modified, untracked, ahead, and behind state
  • --dirty flag to show only repositories with uncommitted changes
  • JSON output for downstream scripting
  • Zero runtime dependencies beyond Python stdlib and git
  • Built-in --upgrade flow for published pip and uv installs plus source checkouts

Status Tokens

Token Meaning
+N N staged changes
~N N modified tracked files
?N N untracked files
↑N N commits ahead of upstream
↓N N commits behind upstream
clean Nothing to do

Install

Published release (PyPI):

pip install gstree

Published release with uv tool install:

uv tool install gstree

Published release with uvx (no install):

uvx gstree ~/source

From source (current checkout / unreleased main):

git clone https://github.com/tmsjngx0/gstree.git ~/.local/share/gstree
uv tool install ~/.local/share/gstree

Usage

# Show all repos
gstree ~/source

# Show only repos with changes
gstree --dirty ~/source

# Fetch remotes before showing status
gstree --fetch ~/source

# JSON output for scripting
gstree --json ~/source
gstree -j ~/source

# Limit scan depth (default: 2)
gstree --depth 3 ~/source

# Check version
gstree --version

Upgrade

If gstree was installed with pip install gstree, upgrade in place:

gstree --upgrade

If gstree was installed with uv tool install gstree, the same command delegates to uv tool upgrade gstree:

gstree --upgrade

If you run gstree via uvx, request the latest published version explicitly:

uvx gstree@latest ~/source

For source installs from a cloned checkout, gstree --upgrade pulls the repo and reinstalls the tool:

gstree --upgrade

Override the repo path with GSTREE_REPO_PATH if you cloned elsewhere:

GSTREE_REPO_PATH=/custom/path/gstree gstree --upgrade

Release

Tagged releases publish to PyPI through GitHub Actions Trusted Publishing. Use the publish workflow's manual dispatch to test against TestPyPI before pushing a release tag.

Contributing

See CONTRIBUTING.md.

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

gstree-0.1.4.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

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

gstree-0.1.4-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file gstree-0.1.4.tar.gz.

File metadata

  • Download URL: gstree-0.1.4.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gstree-0.1.4.tar.gz
Algorithm Hash digest
SHA256 aa1a60e9b3a5354988f13d4581a8ac6127ca8886348102cb75967e660742070f
MD5 3272a94ceab3ee3490c19102447252e3
BLAKE2b-256 903f8d579d495d19ab13b9118f05b664995260f5289fe1abf163f02886cb784d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gstree-0.1.4.tar.gz:

Publisher: publish-to-pypi.yml on tmsjngx0/gstree

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gstree-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: gstree-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gstree-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bdaa5898a90101076b008352b3a320d725845d5e20f1b658972d905c083a9079
MD5 5f15e309b5aa158dd863cc2e8a04b094
BLAKE2b-256 c6d38051091586348b79bb056fcc08c8f35d9fd1fffa767be17ba8f7e4b50dd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for gstree-0.1.4-py3-none-any.whl:

Publisher: publish-to-pypi.yml on tmsjngx0/gstree

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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