Keep bots out of your commits.
Noa is a small Git hook that removes AI-generated attribution before Git writes a commit. It recognizes Cursor, Claude Code, Codex, Gemini, Aider, and GitHub Copilot. Human co-authors are left alone.
Install Noa once for every Git repository on your machine:
npx no-author install --globalOr install it in the current repository only:
npx no-author installNo package is added to your project. Noa writes a Git hook and then gets out of the way. It will not overwrite a hook it did not create. When telemetry is enabled, the global installer also allows Noa's counter domain in detected Cursor and Claude Code sandbox settings while preserving existing settings.
Commit as usual. Noa removes matching Co-authored-by trailers automatically.
Check existing history without changing it:
npx no-author checkCheck a specific branch:
npx no-author check maincheck exits with status 1 when it finds AI attribution, so it can also be used
in CI.
Noa matches known bot email addresses, not display names. Add another identity
or attribution line with a .no-author.json file:
{
"emails": ["agent@example.com"],
"lines": ["Generated by Internal Agent"],
"telemetry": true
}When Noa cleans a commit, it sends an empty request that increments the public
counter on the website. It does not send code, commit messages, repository
names, hashes, usernames, or email addresses. If the request fails, an anonymous
event remains inside .git and is retried after a later commit.
The global installer adds only no-author.vercel.app to the network allowlist
of detected Cursor and Claude Code installations. Set NO_AUTHOR_TELEMETRY=0
while installing to skip this, or disable telemetry for individual repositories
with the configuration below.
Turn the counter request off for a repository:
{
"telemetry": false
}Noa changes commit-message attribution only. It does not rewrite existing history or change Git author and committer identity fields.
Licensed under the MIT License.
