Commitbot
A Rust-powered CLI that writes meaningful, structured Git commit messages using LLMs.
Commitbot analyzes your staged Git changes and helps you craft clear, consistent commit messages that describe why changes were made — not just what changed.
It can summarize diffs, ask you how each file relates to the purpose of the commit, and produce structured, readable messages your teammates (and future self) will thank you for.
Features
- 🧩 Interactive “ask” mode – Classify each file as main, supporting, or consequential.
- ⚡ Quick mode – Instantly summarize staged diffs into a commit message.
- 🧠 LLM-powered – Uses OpenAI’s GPT models to generate concise and structured messages.
- 🔧 Configurable – Choose models, tweak behavior, and set defaults in a config file.
- 🧾 Pull request summaries – Generate clean, readable PR descriptions from your commit history.
Installation
You’ll need an OpenAI API key set as an environment variable:
Homebrew
Download a Prebuilt Binary
- Visit the latest release.
- Download the binary for your platform.
- Make it executable and move it into your PATH:
Rust/Cargo
Build from Source
Install Directly from Git
Usage
Simple Mode
Analyze all staged changes and generate a commit message in one step:
Interactive Mode
Walk through each staged file and describe how it relates to the main purpose of the commit:
For each file, select:
1) Main purpose
2) Supporting change
3) Consequence / ripple
4) Ignore
After all files are classified, Commitbot summarizes and generates the full commit message.
Pull Request Summaries
Generate high-level PR descriptions by summarizing commit messages instead of diffs:
Commitbot will:
- Collect all commits between the base (
developormain) and the feature branch. - Group commits referencing PR numbers (e.g.
#123). - Summarize them into a clear, cohesive description.
Configuration
Commitbot looks for a configuration file at:
Example:
= "gpt-4o-mini"
You can override these settings with CLI flags or environment variables.
Roadmap
- Support for local/offline LLMs (Ollama, LM Studio).
- Model auto-detection and fallback.
- Configurable commit message templates.
- Integration with GitHub Actions or CI pipelines.
⚠️ Privacy Notice
At this time,
commitbotsends staged diffs to OpenAI’s API for analysis.Future versions will support self-hosted and local model endpoints (e.g. Ollama, LM Studio, or API-compatible providers) so your code can stay fully private.
License
GPL-3.0-or-later
See LICENSE for details.
Commitbot is under active development — features and output quality will evolve with each release.