ClaudeAI Coding Agents

commit-commands for Claude Code: review, how it works and whether it is worth it (2026)

Before you start

  • 9 min read

Boxes marked Run in terminal are what you type; plain text explains why.

What you get in one minute#

commit-commands is a free Anthropic plugin with three one-word git shortcuts for Claude Code; /commit and /commit-push-pr are a handy, tiny convenience, but /clean_gone has open reports of deleting unmerged work.

Claude Code official logo

Logo: the official Claude Code logo from Anthropic's press kit (anthropic.com/press-kit)

The marketplace page shows 171,244 installs (October 2026).

VerdictDetail
Useful?Mostly. Two commands are fine; the third is risky as shipped.
Best forPeople who commit often and want one command instead of typing the request each time.
Skip it ifYou already have your own commit prompt or skill, or you only want branch clean-up.
Made byAnthropic, Apache 2.0 licence, in its official marketplace.
Version + dateNo version in plugin.json or the marketplace entry; the README says 1.0.0. Command files last changed 20 November 2025.
Install command/plugin install commit-commands@claude-plugins-official
Token costNo published figure and not measured by us; run claude plugin details commit-commands after installing.

What it does#

You type one command, and Claude reads your git state and does the whole job in a single step. Nothing runs in the background.

CommandWhat happens
/commitReads status, diff and the last 10 commit titles, then stages and makes one commit.
/commit-push-prMakes a branch if you are on main, commits, pushes to origin, opens a pull request with gh pr create.
/clean_goneFinds local branches whose remote branch is gone, removes their worktrees, deletes the branches.

Added: 3 commands, 0 skills, 0 agents, 0 hooks, 0 MCP servers. The docs show the full name /commit-commands:commit; type / to see the exact names.

How it works in the background#

Claude Code pastes the output of a few git commands into a short Markdown prompt, then Claude makes the git calls. That is all the plugin is.

How commit-commands runs: you type a command, Claude Code loads the Markdown file, runs the git lines in it and pastes their output into the prompt, Claude then calls git and the GitHub CLI itself, and the result is a commit or a pull request URL

  • Step 3: the docs say the ! syntax "runs shell commands before the skill content is sent to Claude". A failing line stops the whole command (issue 267).
  • Step 5: allowed-tools only pre-approves calls; it does not forbid others (docs).

Under the hood: dissection#

The plugin is three Markdown prompts and a manifest, 3,521 bytes in total; there is no script, hook or server.

Codetext
commit-commands/
├── .claude-plugin/
│   └── plugin.json        name, description, author (no version)
├── commands/
│   ├── commit.md            17 lines
│   ├── commit-push-pr.md    20 lines
│   └── clean_gone.md        53 lines
├── README.md
└── LICENSE                Apache 2.0
FileLanguageWhat it doesWhen it runs
plugin.jsonJSONNames the pluginAt load
commit.mdMarkdown + shell linesPrompt for one commitWhen you type /commit
commit-push-pr.mdMarkdown + shell linesPrompt for branch, commit, push, PRWhen you type /commit-push-pr
clean_gone.mdMarkdown + BashA Bash loop Claude is told to executeWhen you type /clean_gone

commands/commit.md, key lines:

File contenttext
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
- Current git diff (staged and unstaged changes): !`git diff HEAD`
Do not send any other text or messages besides these tool calls.

commands/clean_gone.md, the delete loop (shortened):

Run in terminalbash
git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
  git worktree remove --force "$worktree"
  git branch -D "$branch"
done
  • Reads: git status, diff, branch list, recent log. Writes: commits, branches, a pushed branch and a pull request. Network: only what git push and gh do.
  • Needs: git; gh (GitHub CLI, logged in) for the pull request.
  • Promises that are not in the files: the README says it avoids secrets and adds Claude Code attribution, but the three command files contain neither instruction.

A bar chart of the size of the three command files and the manifest in commit-commands: clean_gone.md 1,865 bytes, commit-push-pr.md 796, commit.md 624, plugin.json 236

Chart: file sizes from the GitHub contents API at commit 41f619d, read 2026-10-27. The riskiest command is more than half of the code.

What users say#

29 reports read: 1 praise, 2 mixed, 26 complaints, and 22 of the 26 are about /clean_gone. GitHub issues attract complaints, so this is not a satisfaction rate. Reddit was not read; Hacker News had nothing on this plugin.

A bar chart of how the 29 commit-commands user reports lean: 1 praise, 2 mixed and 26 complaints, from GitHub issues and one blog in October 2026

Chart: our count of the 29 reports, October 2026.

A horizontal bar chart of the 26 commit-commands complaints by theme: 9 clean_gone deleting unmerged or uncommitted work, 8 clean_gone finding no branches, 3 broken text, 2 non-English git output, 2 pull request templates and 2 commit or push edge cases

Chart: themes of the 26 complaints, labelled by DIY Lab Hub, October 2026.

VoiceWhat they say
PraiseA guide (February 2026) likes that a team gets one flow from one command.
MixedIssue 329 (February 2026): "incredibly useful", but ignores the PR template.
Data lossIssue 5665 (August 2026): --force removal loses uncommitted work.
Wrong matchIssue 5914 (September 2026): a commit title containing [gone] gets the branch deleted.
Finds nothingIssue 115 (January 2026): no git fetch --prune, so it reports "no cleanup needed".
LanguageIssue 5116 (August 2026): silent no-op on non-English git.
First commitIssue 267 (January 2026): /commit fails in a new repository.

Some reports say git branch -v never shows [gone]; others, such as issue 4261 (July 2026), say it does. On our own run with git 2.51 it does, and a branch with [gone] in its commit title was also selected.

Pros: why it is useful#

It saves a few sentences per commit, and it is small enough to read in two minutes.

  • Consistent commits: the last 10 commit titles go into the prompt, so Claude can copy your style.
  • One step: /commit stages and commits in a single message, with no chat around it.
  • Pre-approved git calls: add, status and commit run without a prompt.
  • Open and tiny: Apache 2.0, no scripts to audit; 171,244 installs.

Cons: why it is not useful#

The value is small, and the one command with real logic is the buggy one.

  • /clean_gone: 22 reports, 20 still open. The commands have not changed since 20 November 2025, and a contributor says outside fixes are auto-closed (issue 1653).
  • Edge cases: no first commit, a diverged remote, PR templates and issue keywords ignored.
  • Sloppy details: no version in plugin.json (cache folder "unknown", issue 1545); an allowed-tools entry git checkout --branch that is not a real git option (we ran it: "unknown option").
  • Overlap: plain words ("commit this") or your own skill do the same.

Should you consider it? When it is useful#

Consider it for /commit and /commit-push-pr only, and do not run /clean_gone until it is fixed. If you want branch clean-up, write your own with git branch -d, which refuses unmerged branches.

A decision flowchart for installing commit-commands: skip it if you do not want a one-word commit command; if you do, install it and use /commit, and use /commit-push-pr only if the GitHub CLI is installed; in every case avoid /clean_gone as shipped because it can force-delete branches

SituationVerdict
Frequent small commitsInstall, use /commit
Feature branch to PR on GitHubInstall, use /commit-push-pr
Repository with a PR templateEdit the PR text yourself, or write your own command
Stale branches to tidyDo it by hand; skip /clean_gone
GitLab or another host/commit only; the PR step needs gh

Install and check it#

You install it from Anthropic's official marketplace with one command, and the PR step also needs the GitHub CLI.

Linux#

Inside Claude Code:

Codetext
/plugin install commit-commands@claude-plugins-official

Or from your shell:

Run in terminalbash
claude plugin install commit-commands@claude-plugins-official

For /commit-push-pr, install gh with your package manager (see cli.github.com), then gh auth login.

Windows (PowerShell)#

Run in terminalpowershell
claude plugin install commit-commands@claude-plugins-official
winget install --id GitHub.cli
gh auth login

Install Git for Windows first. /clean_gone is a Bash loop, and one report says worktree paths with spaces break it (issue 1653).

Mac (Terminal)#

Run in terminalbash
claude plugin install commit-commands@claude-plugins-official
brew install gh
gh auth login

Check it worked#

Run in terminalbash
claude plugin list
claude plugin details commit-commands

Then type / in Claude Code: /commit-commands:commit should appear. Try it in a throwaway repository first.

Things to keep in mind#

  • Security. There are no hooks or servers, but /commit-push-pr pushes and opens a PR, and /clean_gone deletes. Read the three files first; they are short.
  • Auto-start. The files do not set disable-model-invocation, and the docs say its default is false, so Claude may also start them on its own. We did not test this.
  • Attribution. Commits may carry a Claude Code trailer; this is a Claude Code setting, not this plugin (issue 101634).
  • Updates: the official marketplace auto-updates by default (docs). Conflicts: another /commit command or skill can clash; check with /.

Troubleshooting#

ProblemSolution
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.New repository with no commit yet: make the first commit by hand.
/commit-push-pr fails at gh pr createInstall gh and run gh auth login; the repository needs a GitHub remote named origin.
/clean_gone says no cleanup was needed, but old branches existRun git fetch --prune, then check git branch -v yourself.
git push rejected after the branch changed on GitHubPull or rebase first, then run again (issue 195).
/plugin isn't available in this environment.You are in claude -p; install from your shell.

FAQ#

Is commit-commands made by Anthropic? Yes. The author field says Anthropic, and the code is in its official marketplace repository.

Is /clean_gone safe? Not as shipped. It uses git branch -D and git worktree remove --force with no merge check and no confirmation.

Can I stop it adding a Claude trailer? Use Claude Code's attribution setting; see the Claude Code docs.

Sources#

  • anthropics/claude-plugins-official: plugins/commit-commands/ (commands, README, manifest, licence) and .claude-plugin/marketplace.json at commit 41f619d, 27 October 2026; last commit touching the folder 20 February 2026 (licence), commands 20 November 2025.
  • commit-commands on the Claude marketplace: 171,244 installs, three listed commands (October 2026).
  • Claude Code docs: Install and manage plugins, Skills (the ! syntax, allowed-tools, disable-model-invocation) (October 2026).
  • User reports, issues 115, 195, 267, 329, 373, 491, 1545, 1653, 1707, 1714, 1801, 1898, 2752, 4156, 4252, 4261, 4504, 4533, 4680, 4740, 5116, 5193, 5222, 5381, 5665, 5914 and 6025 in anthropics/claude-plugins-official (January to September 2026), claude-code issue 72638 (July 2026), and the guide (February 2026).

We read the files and docs and ran only a throwaway git test; we did not install the plugin.

Checked against the official docs on 2026-10-27