coderot

Should you keep “Co-authored-by: Claude”? How to turn off AI commit trailers, and why you might not

Most coding agents now add a line like Co-authored-by: Claude Opus 5.5 <[email protected]> to the commits they help write. Every one of them can be told to stop, and the settings are below. Before you change them, read what happened when the Linux kernel asked its contributors to add such a line by hand.

The settings change often, so each one here was checked against the tool’s own docs or source on 7 November 2026.

How to turn it off, tool by tool

Tool What it adds by default The setting
Claude Code Co-Authored-By: <model> <[email protected]> on commits; 🤖 Generated with Claude Code in PR descriptions "attribution": false in settings.json hides both (v2.1.281 and later). Or set attribution.commit and attribution.pr to "" to hide one. includeCoAuthoredBy is deprecated.
GitHub Copilot CLI Co-authored-by: Copilot <…[email protected]> on commits includeCoAuthoredBy set to false in ~/.copilot/settings.json, or in the repo’s .github/copilot/settings.json, which wins.
Copilot coding agent (the cloud one) Copilot is the commit’s author, the person who assigned the task its co-author, and an Agent-Logs-Url trailer None: the author is the agent’s account.
VS Code (git.addAICoAuthor) Nothing: the default is off off, chatAndAgent or all. In April 2026 (1.117) the default became all and added Co-authored-by: Copilot even to commits with no AI in them; it was back to off by May.
Cursor (IDE and CLI agents) Made-with: Cursor on commits and PRs Cursor Settings → Agent → Attribution (from 3.11: Git & PRs → Attribution). Enterprise admins can turn it off for the whole team. Cloud agents commit as their own account, with no toggle.
OpenAI Codex Co-authored-by: Codex <[email protected]> on commits and Generated with Codex in PRs, when the workspace’s attribution policy is on The policy is your workspace’s, fetched from OpenAI, not a setting in config.toml.
aider Co-authored-by: aider (<model>) <[email protected]> --no-attribute-co-authored-by, or attribute-co-authored-by: false in .aider.conf.yml.
Gemini CLI No trailer: we found none in its source Nothing to turn off.
Devin Commits from its own account, devin-ai-integration[bot] None: the author is the agent’s account.

A trailer is just text at the end of the commit message, so you can also delete it before you push, with git commit --amend or an interactive rebase. A commit-msg hook that strips it works for every tool at once, which is why there are several such hooks on GitHub.

If what bothers you is the product name or the noreply address, you don’t have to choose between that line and nothing. Claude Code’s attribution.commit takes any text, so "Assisted-by: Claude:claude-opus-5-5" gives you the form Fedora and LLVM ask for (more on those below), and tools that read trailers still see an AI signal.

Before you turn it off: the kernel’s experiment

The Linux kernel tried disclosure by hand. Its coding-assistants.rst asked anyone who used an AI tool to add Assisted-by: AGENT:MODEL [TOOLS], such as Assisted-by: Claude:claude-3-opus coccinelle sparse. In August 2026 that became just Assisted-by: LLM.

It didn’t hold. By 7.3-rc7, 1,884 of 18,533 non-merge commits, about 10%, carried the tag, while one maintainer at the 2026 Maintainers Summit put LLM use at probably 90% of contributors (LWN). Some didn’t know the rule, some left it off on purpose, and few maintainers asked. So the tag’s absence said nothing, and on 14 October the kernel removed it (the commit). Maintainers still want to know how a patch was made; they now ask for it in the cover letter, which git doesn’t keep.

The lesson isn’t that disclosure is pointless. It’s that a line people have to remember gets left off, and a line the tool adds by default doesn’t. The kernel’s 10% came from people who chose to type it. The trailers in the table above are on unless someone turns them off, which is why they’re in most of the AI-assisted commits you can find on GitHub today: GitHub’s commit search finds over 2.3 million with Made-with: Cursor alone.

Who asks for it

Open-source projects increasingly ask contributors to say when AI wrote part of a change:

If you contribute to one of these, the default trailer already does most of the job.

Why your own team might want the line

Inside a company nobody asks for disclosure, and that’s the case for turning trailers off: they’re noise, the code is yours once you’ve reviewed it, and the product name in every commit reads like an ad.

The case for keeping them is that git history is the only record of who wrote what that you’ll still have in a year. Without it you can’t answer the questions that come up once agents write a large share of the code:

A trailer is a commit-level signal: it says AI helped, not which lines it wrote. For line-level attribution there’s Git AI: hooks in Claude Code, Cursor, Copilot and other agents record which lines each one wrote, in git notes, with no trailer at all. Squash merges need its CI integration to keep the notes.

How coderot reads it

coderot builds its AI share, the month agents took over and each agent’s PRs from what your tools already record, and from nothing else:

A commit with none of these counts as unknown, not human, and every AI number shows how many of the PRs it could attribute. The metrics page lists the signals in full.

So if you want to know what agents are doing to your codebase, the cheapest step is to leave the trailer on.

Get the next report by email. We publish them as the data comes in, and now and then news about coderot.

Double opt-in. Unsubscribe anytime. How we handle your email.

See any public repo’s last month, measured the same way: paste it here, no sign-in.