I like Claude Code, but I don’t need it signing its name on every commit I make.

By default, Claude Code appends a Co-Authored-By: Claude <noreply@anthropic.com> git trailer to every commit message. If you’ve never noticed it, run git log --format="%b" | grep "Co-Authored" on any repo where you’ve used it. Go ahead. I’ll wait.

Here’s what happens once that trailer is in your history:

  • GitHub parses it. The Co-Authored-By trailer is a recognized convention. GitHub creates a ghost contributor entry for noreply@anthropic.com, and Claude’s avatar shows up in the contributors graph. On a team repo, that looks odd. On an open-source project, it raises questions.
  • git shortlog -sne now includes Claude. Anyone auditing contribution counts, running bus-factor analysis, or generating changelogs from commit metadata will find an AI listed alongside human authors.
  • CI/CD pipelines that parse trailers can break. Some teams use commit trailers for DCO sign-offs, CODEOWNERS validation, or Jira ticket linking. An unexpected trailer from an unrecognized email can trigger failures in hooks or compliance checks.
  • It’s baked into the DAG. Git commits are SHA-1 (or SHA-256) hashed. Once pushed, that trailer is part of the immutable object. You can’t strip it without rewriting history, which means force-pushing, which means annoying everyone on the branch.

It reminds me of phone cameras that slap “Shot on iPhone” on your photos. Except this is worse because git history is permanent, public, and parsed by automated tools.

Now imagine if your commit messages also tagged your keyboard brand, your ISP, your monitor model, and your timezone. That’s roughly how useful this attribution is. AI coding tools should make you look better, not insert themselves into your repository’s permanent record.

The fix

Add this to ~/.claude/settings.json (global) or .claude/settings.local.json (per-project):

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}

Setting commit to an empty string removes the Co-Authored-By trailer. Setting pr to an empty string removes the “Generated with Claude Code” footer that gets appended to pull request descriptions.

If you only want to disable one, you can leave the other key out. The schema is straightforward: any non-empty string in commit becomes the trailer text, and any non-empty string in pr becomes the PR footer.

For teams, drop the .claude/settings.local.json file into your repo root and commit it. Everyone who uses Claude Code on that project picks up the config automatically. No more rogue co-author entries cluttering your git shortlog.

One last thing: this isn’t about hiding that you use AI. It’s about keeping your git metadata clean. If your org wants to track AI-assisted commits, do it with a custom trailer like AI-Assisted: true that you control, not one injected by the tool itself.

“Good code doesn’t need a co-signer. It needs an owner.”-Rushi

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>