Skip to main content

VibeGit

Turn a busy Git working tree into focused, reviewable commits.

PyPI - Version py_versions CI status


Working tree before using VibeGit Working tree after using VibeGit

An example working tree before and after VibeGit groups the changes.


Turn mixed changes into focused commits

During a long coding session, unrelated changes often accumulate in the same working tree. Turning them into small, coherent commits means repeatedly inspecting hunks, staging them, and writing matching commit messages.

Run VibeGit from the repository:

vibegit commit

VibeGit analyzes the diff, active branch, and recent commit history. It proposes semantically related groups of changes with generated commit messages, then lets you review or apply them.

[!NOTE] VibeGit requires a repository with at least one commit. In a new repository, you can create one with git commit --allow-empty -m "initial commit".

Features

  • Semantic grouping: Groups related hunks by their purpose, including changes that span multiple files.
  • Generated commit messages: Suggests a concise message and explanation for each group.
  • Review controls: Inspect proposals, edit messages, skip groups, or apply the remaining proposals automatically.
  • Configuration wizard: Configures the model and API keys on first use.
  • Change exclusions: Can leave out changes that appear unfinished, erroneous, or sensitive.

Installation and setup

Requirements

  • uv (recommended)
  • Git
  • Python 3.11 or newer when using another installation method

Installation

Install VibeGit as an isolated command-line tool with uv:

uv tool install vibegit

uv makes the vibegit executable available on your PATH without mixing VibeGit's dependencies into your projects. If uv reports that its executable directory is not on PATH, run uv tool update-shell and restart your shell.

Upgrade VibeGit later with:

uv tool upgrade vibegit

To try VibeGit without installing it persistently, use uv tool run (or its uvx alias):

uv tool run vibegit --help
# Equivalent:
uvx vibegit --help

Alternative installation methods are also supported:

pipx install vibegit
# Or in a dedicated virtual environment:
pip install vibegit

Quick start

Run these commands from your Git repository after installing VibeGit:

vibegit init    # Add a starter .vibegitrules file
vibegit config  # Choose a model and configure its API key
vibegit commit  # Analyze changes and create semantic commits

First-run configuration

When you run VibeGit for the first time, it will launch an interactive configuration wizard to help you set up the most important settings:

  • Choose an LLM model (Gemini, GPT, or custom)
  • Configure the necessary API keys
# The wizard runs automatically on first use and whenever you run:
vibegit config

# Legacy alias (equivalent to the command above):
vibegit config wizard

Google Gemini is the default provider and requires a Google AI Studio API key. You can create one in Google AI Studio.

Selecting Custom model (OpenAI API compatible) lets you point VibeGit at any endpoint that implements the OpenAI Chat Completions API. The wizard will collect the base URL, model name, and API key and store them so that future runs interact with your custom endpoint automatically.

Re-running the wizard with this option will pre-fill the previously saved base URL and model name, and you can choose whether to reuse or replace the stored API key.

Configuration reference

Use vibegit config show to print the current configuration.

To change one value, use vibegit config set <path> <value> with a dot-separated path such as model.name.

Use vibegit config open to edit the complete configuration file in your system's default editor.

Run vibegit config at any time to start the wizard again.

Below is a description of the most relevant configuration options.

Models

Gemini 3.7 Flash is used by default. It is Google's latest stable Flash model, is designed for complex coding and reliable multi-step work, and supports structured outputs. You can use any other model that supports structured outputs given a JSON schema.

The configuration wizard recommends these current general-purpose models:

  • Gemini 3.7 Flash (google:gemini-3.7-flash) — recommended default
  • Gemini 3.5 Flash-Lite (google:gemini-3.5-flash-lite) — fastest, cost-efficient Gemini option
  • Gemini 3.1 Pro (preview) (google:gemini-3.1-pro-preview) — advanced problem solving
  • GPT-5.6 Terra (openai:gpt-5.6-terra) — balanced intelligence and cost
  • GPT-5.6 Sol (openai:gpt-5.6-sol) — highest-quality complex reasoning and coding
  • GPT-5.6 Luna (openai:gpt-5.6-luna) — cost-sensitive, high-volume work
  • Grok Code Fast (grok:grok-code-fast-1)

VibeGit installs Pydantic AI Slim with the Google and OpenAI extras. The OpenAI extra also supports Grok and custom OpenAI-compatible endpoints. Other Pydantic AI providers require you to install their corresponding optional dependency separately. Model names should be provided in the provider:model format (for example, openai:gpt-5.6-terra or google:gemini-3.7-flash). Legacy google-gla: and google_genai: model names are migrated automatically.

To configure a model, use the following command:

vibegit config set model.name <model-name>

For OpenAI-compatible endpoints you can also set values manually:

vibegit config set model.model_provider openai
vibegit config set model.base_url https://api.example.com/v1
vibegit config set model.api_key <your-api-key>

Provider-specific API keys can also be stored under the api_keys configuration field. For example, configure Grok with:

vibegit config set api_keys.GROK_API_KEY <your-api-key>

[!NOTE] Model selection is currently global rather than repository-specific.

Excluding changes

By default, VibeGit may exclude changes that appear unfinished, erroneous, or sensitive instead of forcing them into a commit proposal.

Control this behavior with:

vibegit config set allow_excluding_changes <true/false>

Use a .vibegitrules file to provide project-specific guidance for exclusions and commit grouping.

Project rules (.vibegitrules)

Add a .vibegitrules file to the repository root to customize commit proposals. Typical uses include:

  • Commit message style
  • Commit scope and granularity
  • Excluding certain files or changes, either on semantic grounds or based on filetype

Create a starter file based on VibeGit's own rules by running this in your project directory:

vibegit init

The command preserves an existing .vibegitrules file. Use vibegit init --force to replace it with the bundled template. See VibeGit's .vibegitrules file for the current template.

One-off instructions

Use the --instruction flag with vibegit commit to provide one-off custom instructions without modifying .vibegitrules:

vibegit commit -i "group all test files together"
vibegit commit -i "do not include changes related to the cli"

This is useful for temporary requirements or trying a different commit style.

Roadmap

VibeGit currently changes Git history only through the commit workflow; init and config are setup utilities. Possible future workflows include:

  • vibegit merge for conflict resolution
  • vibegit rebase for interactive rebase suggestions
  • vibegit checkout for relevant branch suggestions

Contributing

Bug reports, feature suggestions, and pull requests are welcome.

Pull requests and pushes are checked by CI. Run the same quality checks locally with:

uv sync --locked
uv run ruff check .
uv run ruff format --check .
uv run ty check
uv run pytest -q

License

VibeGit is available under the MIT License. See LICENSE.

Metadata

Release files for vibegit 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vibegit 0.2.1
File Size Uploaded
vibegit-0.2.1.tar.gz 34.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vibegit 0.2.1
File Interpreter ABI Platform
vibegit-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 66.0 kB

Release files / vibegit-0.2.1.tar.gz

Download URL vibegit-0.2.1.tar.gz
Size 34.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6cec9271436ce1e46594fb8620556fd112f79f6780bc9188a6a985e930c467b8
BLAKE2b-256 checksum
How to use checksums
60d7925064284d70c91fdfcd0e4f9b7a049c667fe94d63f2acae1c27cfb4667b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release files / vibegit-0.2.1-py3-none-any.whl

Download URL vibegit-0.2.1-py3-none-any.whl
Size 31.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f885b428314c5ebb9ea144505037baa3fc9950c059de23bc497765c539760a87
BLAKE2b-256 checksum
How to use checksums
d7c8d92324b04fa0f5ef663a407c3c4eadbfb84a3d14cecc0bf703fd5a3def28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page