Blog ยท

AI commit trailers: Co-Authored-By, Assisted-by and AI-Agent

The cheapest record of AI involvement is one line at the end of a commit message. Here is what agents write there, what some projects require instead, and how to read it back.

What a trailer is

A trailer is a Key: value line in the last paragraph of a commit message. git understands them: git interpret-trailers adds and parses them, and git log can print them. The best known is Signed-off-by:. GitHub shows a commit with Co-authored-by: trailers as having several authors.

A commit message with a trailer
add orders

Store amounts as integer cents to avoid rounding errors.

Co-Authored-By: Claude <noreply@anthropic.com>

Co-Authored-By

Many agents credit themselves as a co-author, with an address that identifies the tool rather than a person. Claude Code adds one by default when it writes the commit. Some trailers Whyline recognises:

AgentTrailer
claude-codeCo-Authored-By: Claude <noreply@anthropic.com>
cursorCo-authored-by: Cursor Agent <cursoragent@cursor.com>
copilotCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
aiderCo-authored-by: aider (gpt-5) <noreply@aider.chat>

A co-author counts as an agent only when the trailer identifies the tool itself. A colleague called Devin with a company address is a person, not the Devin agent.

Assisted-by

Some projects do not want an AI listed as an author. The Linux kernel's guidance for AI coding assistants asks for an Assisted-by: trailer in the form Assisted-by: LLM [TOOL1] [TOOL2], where the optional tools are analysis tools such as coccinelle or sparse, and basic tools like git, gcc or an editor are not listed. It also says AI agents must not add Signed-off-by:; certifying the Developer Certificate of Origin is the human submitter's job.

Kernel-style trailer
Assisted-by: Claude coccinelle sparse

Contribution policies differ between projects. If the project you contribute to has one, follow its format exactly.

AI-Agent

When your agent writes no trailer, add one yourself. Whyline also reads a plain AI-Agent: cursor. It is not a git or GitHub convention, just an unambiguous line: the value is the agent's name and nothing else.

# each commit with its co-author and Assisted-by values
git log --format='%h %(trailers:key=Co-authored-by,key=Assisted-by,valueonly,separator=%x2C )'

# how many commits name Claude as a co-author
git log -i --grep='^co-authored-by: claude' --oneline | wc -l

Trailer keys match without regard to case, so Co-Authored-By and Co-authored-by are both found.

What trailers cannot tell you

  • They are optional and editable. Nothing proves that a commit without one had no AI help.
  • They name the agent, not the prompt or the files it edited.
  • When commits are squashed, the trailers survive only if the new message keeps them.

That is why Whyline treats trailers as the fallback, and records prompts and edits through agent hooks where it can. See how to track AI-generated code in git for the full setup.