gac CLI
gac writes a commit message from the diff with one of 35 providers and gives agents MCP tools for status and commit.
- 318 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The diff goes to an outside model provider, and `gac_commit` over MCP creates commits and, with flags, pushes them.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/gacDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The diff goes to an outside model provider, and `gac_commit` over MCP creates commits and, with flags, pushes them.
This is third-party code. Review the repository files before installing.
What it does
gac replaces `git commit -m` with a single `uvx gac` command: a model reads the diff and proposes a message that explains why the change was made. Format is picked with flags: a one-liner `-o`, a verbose `-v`, the 50/72 rule through `--50-72` and a DCO sign-off through `--signoff`. After the message is shown you can reroll it with `r`, edit with `e` or type feedback in words, for example "shorter". The `--group` flag splits related changes into several logical commits, and `-ayp` stages everything, confirms and pushes in one go. The `uvx gac serve` command starts an MCP server over stdio with two tools, `gac_status` and `gac_commit`. An agent checks repository state and commits without parsing shell output. More than 35 providers are supported, from Anthropic and OpenAI to Ollama and LM Studio.
Who it is for. Developers who commit often and want messages that explain the reason for a change, with an agent that commits through a typed call.
Good fit when
- A large diff must be split into several logical commits.
- The project requires a DCO sign-off or the 50/72 format in every commit.
- An agent in Cursor or Claude Code should check status and commit without parsing git output.
- Messages are needed in another language, for example Chinese or Spanish.
Not a fit when
- The diff cannot be sent to an outside model provider and there is no local Ollama.
- You need full control over the message text with no edits after generation.
- You want to use a Claude Code subscription instead of a key: Anthropic does not support that.
Example request
Generate a commit message for the current changes with gac, show it and commit only if it fits.Limitations
You need a key or access to one of the providers, set up through `uvx gac init`. The diff goes to the chosen provider; Ollama or LM Studio suit local work. The author calls OAuth sign-in with Claude Code and ChatGPT subscriptions unofficial: Anthropic switches such tools off, so an API key is more reliable. Through MCP `gac_commit` creates commits and, with flags, pushes them, so limit the agent's rights. The last commit dates from October 2026.
How to disable. Remove the `gac` block from the MCP configuration and uninstall the package, for example `uv tool uninstall gac`. Delete the `~/.gac.env` file with settings and tokens by hand.
FAQ
How do I connect gac to Claude Code over MCP?
Add a `gac` server to `.mcp.json` with the command `uvx` and arguments `gac` and `serve`. If gac is installed globally, use the command `gac` with the argument `serve`.
Which tools does the server expose?
Two: `gac_status` shows repository state, and `gac_commit` creates commits, including grouped ones.
How do I get a short message?
Add the `-o` flag: the command returns a one-line message in conventional commit style. The `-v` flag gives a verbose one.
Can I redo the message?
Yes. After it is shown, press `r` for a new version, `e` to edit or type feedback such as "focus on the bug fix".
Do pre-commit hooks work?
Yes, gac respects pre-commit and lefthook and runs them before expensive model requests.
Discussion
No questions or reviews yet.
Related
CLI toolsA git MCP server with 28 tools: an agent clones, commits, branches, merges, rebases and manages worktrees in local repositories.
aicommit2 writes commit messages for Git, YADM and Jujutsu from the diff via several AIs at once and lets you pick the best
Before committing, compare several model-written messages and copy the chosen text into the Git interface you already use.
A remote MCP server that gives the agent docs and code of any public GitHub repository with nothing to install
A CLI that writes Conventional Commits messages from the diff and keeps the changelog, using Claude or an OpenAI-compatible API.
GitFlic MCP built on gitflic-cli
gitflic-cli MCP-сервер
An MCP server with 76 typed tools over a GitFlic CLI: merge requests, issues, releases, package registry, with group filters and a read-only mode
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| gac (this card) | no | API key | 318 | |
| aicommits | no | 9,131 | lets you choose among several message options; gac can group changes and runs as an MCP server | |
| Conventional Commit Message skill for agents | yes | 8,532 | a skill that writes Conventional Commits messages; gac is a standalone command with 35 providers |
README in short
gac is a Python tool that generates commit messages, tracks usage statistics with `gac stats` and works as an MCP server. The interface and docs are translated into 15 languages.