AI-powered utility for generating conventional Git commit messages.
gmsg is a high-performance CLI tool built in Rust for generating commit messages. It uses AI to analyze your staged diffs and generate messages based on the Conventional Commits specification.
Set the API key for your chosen provider:
# Gemini
export GEMINI_API_KEY="your_api_key_here"
# Mistral
export MISTRAL_API_KEY="your_api_key_here"
# Groq
export GROQ_API_KEY="your_api_key_here"
cargo install gmsg
Or download a prebuilt binary for your platform.
Stage your changes and let gmsg handle the whole commit process.
git add .
gmsg
Review and modify the generated message before committing:
gmsg -i
If you just want to generate the message without committing:
# Copy to clipboard and exit
gmsg -c
# Output to a file
gmsg > message.txt
# Pipe to another utility
gmsg | grep
Amend the message of your last commit. If you have staged changes, the diff is sent alongside the previous message to the AI. Otherwise, it opens an editor.
gmsg -a
gmsg is zero-config by default. Configure it with the config subcommand:
gmsg config provider # interactively select your LLM provider and model
gmsg config models # change model for your current provider
gmsg config prompt <prompt> # customize the system prompt
gmsg config show # display current configuration
| Flag | Long | Description |
|---|---|---|
-p |
--path |
Path to the repository (defaults to current dir). |
-i |
--interactive |
Opens the TUI editor before committing. |
-c |
--copy |
Copies the message to clipboard and exits. |
-a |
--amend |
Amends the HEAD commit with the new message. |
Configuration is stored in .gmsg.toml in your project root or your global config directory. Project-level config takes precedence.
reqwest-based clients for Gemini, Mistral, and Groq — no framework dependency.git2-rs for robust interaction with Git.ratatui for a smooth editing experience.tokio for non-blocking AI generation.MIT – Build something great.