I wanted to share *smart-commit-rs*, a fast, lightweight cross-platform TUI I built to facilitate managing git commits, including generating messages via LLMs.
Here are some of the main features:
* *Convention following:* The tool by default will generate commit messaged according to the Conventional Commit standard, and optionally according to Gitmoji as well. * *Extensive LLM Provider Support:* Built-in integration for Groq (default), OpenAI, Anthropic, Gemini, Grok, DeepSeek, OpenRouter, Mistral, Together, Fireworks, and Perplexity. * *Customer LLM Support:* You can easily point it to a custom provider like a local Ollama instance using OpenAI-compatible endpoints. * *LLM Presets:* You can save various provider presets, being able to freely switch between them. If your primary API throws an HTTP error, you can also configure a fallback rank so the tool automatically retries using the alternate LLM presets you've configured. * *Diff Exclusion Globs:* You can exclude minified assets, `.lock` files, PDFs, etc., from the LLM analysis to save tokens, while still officially committing them. *Advanced Git Tooling:* Message generation doesn't work just with commits. You can use `cgen alter <hash>` to rewrite a specific commit's message, `cgen undo` for a safe soft reset with Conventional Commit-compliant revert messages, or `cgen --tag` to automatically compute and create the next semantic version tag. * *Commit Tracking:* It maintains a per-repository cache of managed commits, browsable via `cgen history` with native `git show` integration.
*A quick note on development:* While the project is rigorously human-reviewed and heavily backed by strict unit testing (matching CI coverage gates), a large portion of the boilerplate and core logic was written using agentic AI.
You can grab it via Cargo (`cargo install auto-commit-rs`) or via the curl/PowerShell install scripts in the repo: https://github.com/gtkacz/smart-commit-rs
Any feedback or contribution is more than welcome, and GitHub stars are greatly appreciated.
Thank you for your time!