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
CLI

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.
All reasons and checks

thomwebb/gac

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/gac

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended 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.

CLI tools

A git MCP server with 28 tools: an agent clones, commits, branches, merges, rebases and manages worktrees in local repositories.

MCP serverBroad access245Repository stars

aicommit2 writes commit messages for Git, YADM and Jujutsu from the diff via several AIs at once and lets you pick the best

CLIBroad access532Repository stars

Before committing, compare several model-written messages and copy the chosen text into the Git interface you already use.

CLIExtended access9.1KRepository stars

A remote MCP server that gives the agent docs and code of any public GitHub repository with nothing to install

MCP serverExtended access8.5KRepository stars

A CLI that writes Conventional Commits messages from the diff and keeps the changelog, using Claude or an OpenAI-compatible API.

CLIExtended access62Repository stars

GitFlic MCP built on gitflic-cli

gitflic-cli MCP-сервер

Russian stack

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

MCP serverExtended access

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
gac (this card)noAPI key318
aicommitsno9,131lets you choose among several message options; gac can group changes and runs as an MCP server
Conventional Commit Message skill for agentsyes8,532a 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.

README badge

Report a problem