GMSG
May 10, 2026 ยท View on GitHub
GMSG
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.
๐ Features
- Spec-Grounded: Uses the Conventional Commits specification as a system prompt to ensure total compliance. You can also modify the system prompt to align with your preferred specifications.
- Interactive TUI: Review and edit generated messages in a Ratatui-powered editor before finalizing.
- UNIX Compliant: Automatically discovers the closest git repository in your current folder with TTY/pipe-aware behavior.
- Clipboard & Amend Support: Easily copy messages to your clipboard or amend the most recent commit.
- Multi-Provider and Model Support: Built with Rig, providing excellent support for a wide range of LLM providers and models of your choice.
๐ Installation
Ensure you have your appropriate API key set in your environment variables.
export GEMINI_API_KEY="your_api_key_here"
cargo install gmsg
Or download a prebuilt binary for your platform.
๐ Usage
Standard Workflow
Stage your changes and let gmsg handle the whole commit process.
git add .
gmsg
Interactive Review
Review and modify the generated message before committing:
gmsg -i
- Ctrl+S: Save and continue.
- Ctrl+Q: Discard and exit.
Helper Mode
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
Amending
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
โ๏ธ Configuration
gmsg is zero-config by default.
But you can configure it.
gmsg config.provider # set your LLM provider
gmsg config.model # set your model
gmsg config.prompt <Prompt> # customize the system prompt
| 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 can be set in your project's .gmsgconfig.toml or your global config directory. Project-level config takes precedence.
๐ Architecture
- Agent Logic: Powered by the
rigcrate for LLM orchestration. - Git Operations: Uses
git2-rsfor robust interaction with Git. - Terminal UI: Built with
ratatuiandratatui-textareafor a smooth editing experience. - Async Runtime: Driven by
tokiofor non-blocking AI generation.
๐ก License
MIT โ Build something great.