Skip to content

Proposal: Add attribute-co-authored-by Option to Fix Unexpected Author/Committer Modification #3788

Open
@ei-grad

Description

@ei-grad

Problem

Currently, aider modifies author / committer name by appending (aider), e.g., John Doe (aider).
This behavior is non-standard, may break commit signature verification, and is generally unexpected for users.

Using Git's Co-authored-by trailer is a well-established alternative for attributing contributions without touching the user name.

A very similar issue already exists - #3270 (describing that GitHub will work better with such annotation), and Claude Code is also using Co-authored-by format (though, some want it to be disabled anthropics/claude-code#617).

Proposal

Add attribute-co-authored-by option to .aider.conf.yml:

attribute-co-authored-by: true

Behavior:

  • If true:
    • Append Co-authored-by: aider (<model>) <[email protected]> to commit message
    • Disable behavior of other attribute- options, if they are not specified explicitly
  • If false or unset:
    • Rely on other attribute- options to keep the current behavior for backward compatibility

For context, currently available related options are:

# Attribute aider code changes in the git author name (default: True)
attribute-author: true
# Attribute aider commits in the git committer name (default: True)
attribute-committer: true
# Prefix commit messages with 'aider: ' if aider authored the changes (default: False)
attribute-commit-message-author: false
# Prefix all commit messages with 'aider: ' (default: False)
attribute-commit-message-committer: false

Description of attribute-author option default value should be changed to mention relation with attribute-co-authored-by.

Benefits

  • Respects user Git configuration
  • Compatible with commit signature verification
  • Aligns with Git conventions
  • Makes aider usage less intrusive in existing workflows

Notes

Alternative: consider flipping the default (use Co-authored-by by default) in a future major release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions