Co-Authored-By default is inappropriate — stop branding user work

Status Fixed / completed
Maintainer reply None cached
Activity 7 comments · opened Mar 2, 2026 · closed Aug 17, 2026

Claude Code automatically appends Co-Authored-By: Claude <noreply@anthropic.com> to every git commit message by default. This is not acceptable.

Users pay for this tool. It is an assistant. It should not be claiming co-authorship of work it was hired to do. This is like a contractor stamping their logo on your house without asking.

In my case, 489 commits were tagged before I noticed. Now I need a full git history rewrite and force push to clean it up.

Request: Remove the default Co-Authored-By behavior entirely, or at minimum make it opt-in rather than opt-out. The tool should not brand user work without explicit consent.

View original on GitHub ↗

6 Comments

github-actions[bot] · 6 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/27083
  2. https://github.com/anthropics/claude-code/issues/19925
  3. https://github.com/anthropics/claude-code/issues/617

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

jameskelley412-art · 6 months ago

Additional complaint: the .claude/ directory name is hardcoded with no option to rename it. Users should be able to configure the local config directory path. Not everyone wants vendor branding in their project structure.

nukeop · 5 months ago

It's a marketing campaign on the backs of the users. Really underhanded.

David-Parker · 5 months ago

For a company claiming ethics as its highest priority this really bothers me.

yurukusa · 5 months ago

A PreToolUse hook can strip or customize the Co-Authored-By line from git commits:

CMD=$(cat | jq -r '.tool_input.command // empty' 2>/dev/null)
[ -z "$CMD" ] && exit 0
if echo "$CMD" | grep -qE 'git commit'; then
    if echo "$CMD" | grep -qiE 'Co-Authored-By'; then
        echo "⚠️ Commit includes Co-Authored-By attribution. You can strip it with:" >&2
        echo "  git commit --amend --message=\"$(git log -1 --pretty=%B | grep -v Co-Authored)\"" >&2
    fi
fi
exit 0

A more aggressive approach — automatically strip Co-Authored-By via a git hook:

sed -i '/^Co-Authored-By:/d' "$1"

Or via a PostToolUse hook that amends after the commit:

CMD=$(cat | jq -r '.tool_input.command // empty' 2>/dev/null)
if echo "$CMD" | grep -qE 'git commit' && ! echo "$CMD" | grep -q 'amend'; then
    if git log -1 --pretty=%B | grep -q 'Co-Authored-By'; then
        MSG=$(git log -1 --pretty=%B | grep -v 'Co-Authored-By')
        git commit --amend -m "$MSG" --no-verify 2>/dev/null
        echo "[Stripped Co-Authored-By from commit]" >&2
    fi
fi
exit 0

The simplest solution: add "Never add Co-Authored-By to commit messages" to your CLAUDE.md. But a git commit-msg hook is the most reliable enforcement.

greogory · 4 months ago

Seconding this strongly. The framing as "branding" is exactly right — this is vendor advertising inserted into user-owned git history without consent.

I maintain a private audiobook management system with 73+ commits pending push. Every single commit interaction requires vigilance against the system prompt's hardcoded instruction to append the trailer. Despite having CLAUDE.md rules, memory entries, and explicit per-conversation instructions all saying "never add Co-Authored-By", the system prompt still tells the model to do it.

The workaround tax is real: I now maintain a commit-msg hook, a scrub-promo pre-push validator, and a mandatory release gate — all to counteract a feature I'm paying to not have.

Showing cached comments. Read the full discussion on GitHub ↗