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.
Logo: the official Claude Code logo from Anthropic's press kit (anthropic.com/press-kit)
The marketplace page shows 171,244 installs (October 2026).
| Verdict | Detail |
|---|---|
| Useful? | Mostly. Two commands are fine; the third is risky as shipped. |
| Best for | People who commit often and want one command instead of typing the request each time. |
| Skip it if | You already have your own commit prompt or skill, or you only want branch clean-up. |
| Made by | Anthropic, Apache 2.0 licence, in its official marketplace. |
| Version + date | No 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 cost | No 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.
| Command | What happens |
|---|---|
/commit | Reads status, diff and the last 10 commit titles, then stages and makes one commit. |
/commit-push-pr | Makes a branch if you are on main, commits, pushes to origin, opens a pull request with gh pr create. |
/clean_gone | Finds 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.
- 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-toolsonly 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.
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
| File | Language | What it does | When it runs |
|---|---|---|---|
plugin.json | JSON | Names the plugin | At load |
commit.md | Markdown + shell lines | Prompt for one commit | When you type /commit |
commit-push-pr.md | Markdown + shell lines | Prompt for branch, commit, push, PR | When you type /commit-push-pr |
clean_gone.md | Markdown + Bash | A Bash loop Claude is told to execute | When you type /clean_gone |
commands/commit.md, key lines:
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):
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 pushandghdo. - 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.
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.
Chart: our count of the 29 reports, October 2026.
Chart: themes of the 26 complaints, labelled by DIY Lab Hub, October 2026.
| Voice | What they say |
|---|---|
| Praise | A guide (February 2026) likes that a team gets one flow from one command. |
| Mixed | Issue 329 (February 2026): "incredibly useful", but ignores the PR template. |
| Data loss | Issue 5665 (August 2026): --force removal loses uncommitted work. |
| Wrong match | Issue 5914 (September 2026): a commit title containing [gone] gets the branch deleted. |
| Finds nothing | Issue 115 (January 2026): no git fetch --prune, so it reports "no cleanup needed". |
| Language | Issue 5116 (August 2026): silent no-op on non-English git. |
| First commit | Issue 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:
/commitstages and commits in a single message, with no chat around it. - Pre-approved git calls:
add,statusandcommitrun 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); anallowed-toolsentrygit checkout --branchthat 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.
| Situation | Verdict |
|---|---|
| Frequent small commits | Install, use /commit |
| Feature branch to PR on GitHub | Install, use /commit-push-pr |
| Repository with a PR template | Edit the PR text yourself, or write your own command |
| Stale branches to tidy | Do 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:
/plugin install commit-commands@claude-plugins-official
Or from your shell:
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)#
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)#
claude plugin install commit-commands@claude-plugins-official brew install gh gh auth login
Check it worked#
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-prpushes and opens a PR, and/clean_gonedeletes. 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
/commitcommand or skill can clash; check with/.
Troubleshooting#
| Problem | Solution |
|---|---|
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 create | Install gh and run gh auth login; the repository needs a GitHub remote named origin. |
/clean_gone says no cleanup was needed, but old branches exist | Run git fetch --prune, then check git branch -v yourself. |
git push rejected after the branch changed on GitHub | Pull 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.jsonat 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