Skip to main content

CLI that suggests git add/commit from diffs using Gemini

Project description

git-explain

Commit message block? Run this in your repo after you change files. It suggests git add and git commit lines you can copy—or apply in one step if you want. Nothing leaves your machine unless you turn on AI.

PyPI GitHub tag


Install (Python 3.10+)

pip install git-explain

From source (this repo):

pip install -e .

Clone: install deps (requirements.txt is fine), cd into the repo, then:

python -m git_explain

Run that from the repo root so Python picks up the git_explain folder—no pip install -e . needed.

Optional: install a specific tag from GitHub instead of PyPI:

pip install "git+https://github.com/nazarli-shabnam/git-explain.git@v2.2.1"

Try it

  1. In any git repo, change or add a file (not ignored).
  2. Run:
    git-explain
    
  3. Choose what to include (all is fine), read the suggestion, answer n if you only want to copy commands yourself—nothing bad happens.

Heuristics guess a sensible type and message from paths and statuses. No account, no key, no network for that path.

Suggested commits follow Conventional Commitsfeat: …, fix: …, optional (scope), and so on—so changelogs and release tools can read them.


Optional: Gemini

If you want sharper messages, set GEMINI_API_KEY (or GOOGLE_API_KEY) in the environment or a .env file in the folder where you run the tool.

Command In plain terms
git-explain --ai AI sees paths and change type only (no file contents).
git-explain --ai --with-diff AI also sees the diff—better detail; only use if you’re OK sending that to the API.
git-explain --suggest Staged only; prints one plain git commit -m "…" line (easy to copy). Needs AI; don’t combine with other flags.

Everything else (--auto, --staged-only, --cwd, model override, shell completion): git-explain --help.


If Gemini complains

  • 429 / quota — wait a bit, or try the default model; see Google’s rate limits.
  • 404 / model not found — set something current, e.g. GEMINI_MODEL=gemini-2.5-flash, and check their model list.

Developers

pip install -e ".[dev]"
pytest -q

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

git_explain-2.2.1.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

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

git_explain-2.2.1-py3-none-any.whl (29.5 kB view details)

Uploaded Python 3

File details

Details for the file git_explain-2.2.1.tar.gz.

File metadata

  • Download URL: git_explain-2.2.1.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for git_explain-2.2.1.tar.gz
Algorithm Hash digest
SHA256 2822469fe57579a18e10152fc8daae0e185550b437e50fbc210bc1511a2abc24
MD5 2ff4012ceeca3fc7f1c3573366b62b50
BLAKE2b-256 eba673cc86842cd70e0515d6b23d6a7d090e7ec021a7e0e5c3207d6f2c5d9c25

See more details on using hashes here.

Provenance

The following attestation bundles were made for git_explain-2.2.1.tar.gz:

Publisher: pypi-publish.yml on nazarli-shabnam/git-explain

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

File details

Details for the file git_explain-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: git_explain-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 29.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for git_explain-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 414861b637c0f20b31e5f6a6e324fa3e28588848c09e6f8f8a07ed90c63a20b4
MD5 6aaf7afa7bd3c1ef05767ddfd5841635
BLAKE2b-256 f9e24a48ea5bf858ddd3623f404a274f2454cbe6dd7825344f1603f948cf53f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for git_explain-2.2.1-py3-none-any.whl:

Publisher: pypi-publish.yml on nazarli-shabnam/git-explain

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