The ultimate Git companion. Type less, do more.
Project description
cheGi
The ultimate Git companion. Type less, do more.
cheGi is a fast, developer-friendly CLI for managing Git across your entire workspace. Scan multiple repositories at once, catch secrets before they ship, sync branches safely, and automate the repetitive parts of your daily Git workflow — all from a single tool with a beautiful terminal UI.
cheGi donates 20% of all funding to charity — local aid, disaster relief, and community causes. See CHARITY.md for details.
Features
- Workspace scan — Discover Git repos concurrently and get a unified status overview
- Security guard — Detect sensitive files (
.env, keys, tokens) in staged changes - Safe sync — Pull with rebase, push, and auto-stash when your tree is dirty
- Commit reword — Update commit messages interactively, including older commits
- Environment setup — Bootstrap dev toolchains (Python, Go, Rust, and more)
- Gitignore generator — Build
.gitignorefiles from technology presets - Flexible config — Per-workspace settings via
.chegi.json
Requirements
- Python 3.8+
- Git installed and available on your
PATH
Installation
All methods
| Method | Command |
|---|---|
| pip (PyPI) | pip install chegi |
| Homebrew (macOS) | brew tap Ad-alwer/chegi && brew install chegi |
| Docker | docker pull adalwer/chegi |
| PPA (Ubuntu/Debian) | sudo add-apt-repository ppa:ad-alwer/chegi && sudo apt update && sudo apt install chegi |
| COPR (Fedora) | sudo dnf copr enable alwer/cheGi && sudo dnf install python3-chegi |
| AUR (Arch Linux) | yay -S chegi (pending submission) |
| Source | pip install git+https://github.com/Ad-alwer/cheGi.git |
From source (development)
git clone https://github.com/Ad-alwer/cheGi.git
cd cheGi
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
Quick Start
# Scan all repositories under your projects folder
chegi scan ~/projects
# Check staged files for secrets before committing
chegi guard
# Sync the current repository (pull --rebase, then push)
chegi sync
Commands
| Command | Description |
|---|---|
scan |
Scan a directory tree for Git repositories and report their status |
guard |
Check staged files for sensitive data before committing |
sync |
Safely sync the current branch with its remote |
reword |
Reword a commit message interactively |
setup |
Install and configure a development environment |
gitignore |
Generate a .gitignore file from technology presets |
config |
Manage workspace settings and package-manager mirrors |
Full documentation: ad-alwer.github.io/cheGi
Run chegi --help or chegi <command> --help for built-in usage details.
Configuration
Settings are stored in .chegi.json at the root of your scan path:
chegi config list
chegi config set max_depth 5
chegi config exclude-add node_modules
- Configuration Guide — full reference and troubleshooting
- Security Guide — guard, hooks, and CI integration
See CONTRIBUTING.md for development setup and SECURITY.md for the security policy.
Development
pip install -e ".[dev]"
pytest -v
ruff check src tests
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chegi-0.3.1.tar.gz.
File metadata
- Download URL: chegi-0.3.1.tar.gz
- Upload date:
- Size: 45.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63733a8640316a3c0809c2eb059607fa96b8738a2b6a24bb445cb4edec883591
|
|
| MD5 |
07c725b6f3e4ffdd0e318e935ad155ed
|
|
| BLAKE2b-256 |
a48f60872975658fa1fbd38f64284f0c906bc7f8f2ae663d0946b3471c074d75
|
Provenance
The following attestation bundles were made for chegi-0.3.1.tar.gz:
Publisher:
pypi.yaml on Ad-alwer/cheGi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chegi-0.3.1.tar.gz -
Subject digest:
63733a8640316a3c0809c2eb059607fa96b8738a2b6a24bb445cb4edec883591 - Sigstore transparency entry: 2147446098
- Sigstore integration time:
-
Permalink:
Ad-alwer/cheGi@17e65d32bdd3bca0a24ec1557dc1cc6ad37b5769 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Ad-alwer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@17e65d32bdd3bca0a24ec1557dc1cc6ad37b5769 -
Trigger Event:
push
-
Statement type:
File details
Details for the file chegi-0.3.1-py3-none-any.whl.
File metadata
- Download URL: chegi-0.3.1-py3-none-any.whl
- Upload date:
- Size: 61.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5ec0d8b2ed5c47459f879c967f6878c078ac2eddc117f4d104246bc981397f3
|
|
| MD5 |
94aa54c1afec9c70286950352d549174
|
|
| BLAKE2b-256 |
e1c4e7e05a712ab1a2ffdc14eb823e39a636f0ec50bbc196207b0707fd73e813
|
Provenance
The following attestation bundles were made for chegi-0.3.1-py3-none-any.whl:
Publisher:
pypi.yaml on Ad-alwer/cheGi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chegi-0.3.1-py3-none-any.whl -
Subject digest:
d5ec0d8b2ed5c47459f879c967f6878c078ac2eddc117f4d104246bc981397f3 - Sigstore transparency entry: 2147446501
- Sigstore integration time:
-
Permalink:
Ad-alwer/cheGi@17e65d32bdd3bca0a24ec1557dc1cc6ad37b5769 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Ad-alwer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@17e65d32bdd3bca0a24ec1557dc1cc6ad37b5769 -
Trigger Event:
push
-
Statement type: