Line-level attribution
Every line is tagged AI or human. No sampling: the whole commit history is analysed.
Tracking code by Claude
Blamely is a local-first CLI that traces every line of your codebase to a person or an AI assistant, line by line, across your entire git history. No cloud, no account, nothing leaves your machine.
curl -sSL https://blamely.ai/blamely-mac-install.sh | bash Or a native installer: .dmg macOS · Apple Silicon .exe Windows installer .rpm Linux · x86_64
$ git commit -m "add refunds"
AI 55% (6)Human 45% (5)
claude 4 (claude-opus-4-8) · 4.2k in / 890 out tok
copilot 2 (completion)
A developer’s intent flows through their AI tools into the codebase. Blamely records who, or what, wrote each change, then attaches it to the commit.
refs/notes/blamelyThe CLI runs a small background daemon that records what your AI tools write, as they write it. Nothing is uploaded.
When you commit, each changed line is matched to the edit that produced it: an assistant and its model, or you.
The result is one JSON note on the commit, under refs/notes/blamely. It travels with the repository when you push notes.
Blamely finds the assistants installed on your machine and follows each one in its own way: a hook, a plugin, its logs. Whichever wrote a line, the commit says so, with the model it ran.
Every file edit Claude Code makes, recorded by a hook as it happens. Claude Desktop is followed through its logs.
Composer and chat edits through a hook, and accepted Tab completions through the editor extension.
Chat edits, inline completions and the Copilot CLI, in VS Code and the JetBrains IDEs.
The patches OpenAI’s Codex CLI applies, read from its hook and its session log.
Every file Google’s Gemini CLI writes or replaces, recorded by a hook.
The Devin CLI and IDE line by line, and Devin Cloud sessions by the commits they send back.
OpenCode V1 and V2, through a plugin Blamely installs into OpenCode’s own config directory.
What is attributed for each one, how it is detected, and what is not.
Supported toolsBlamely runs inside your editor: a gutter beside every line, a panel for changes and history, and a status bar for the file in front of you. No context switch, no guesswork.
BlamelyAI: 751 · 24 · 98%Human: 12 · 3 · 2%claude-sonnet · 4 s Run blamely report --html and a self-contained dashboard opens for any commit: AI against human, per tool, per file. One local HTML file, no cloud.
Attribution
AI · 5 lines Human · 2 lines
Generation
Tools
File ranges · welcome.html
Tokens
in 13.0kout 431cache 67.5k
blamely report · main
payments-service
68%AI
32%Human
Blamely reads the attribution out of git history and rolls it up by file, author and time. Know your real AI-to-human ratio from what was committed, not from a survey.
Every line is tagged AI or human. No sampling: the whole commit history is analysed.
See which assistant and which model contributed how many lines to each change.
Install and go. Blamely reads your git history itself: no tokens, no sign-in.
The daemon, its database and the notes all live on your machine. Nothing is uploaded.
One JSON note per commit under refs/notes/blamely. Read it with git, push it when you choose.
git blame tells you who committed a line. Blamely tells you who wrote it: a person, or an AI assistant and the model it ran. A line that Copilot suggested and you accepted is committed by you, but written by Copilot, and Blamely records that difference.
No. The CLI, its background daemon and its database run locally, under ~/.blamely, and the attribution is written into your own repository as git notes. There is no cloud service in the loop, no telemetry, and no account is needed to use it.
The CLI runs a small daemon that watches the edits your AI tools make while they make them. When you commit, each changed line is matched to the edit that produced it. The editor extensions add what the CLI cannot see on its own, such as inline Tab completions.
Claude Code, Cursor, GitHub Copilot, Codex CLI, Gemini CLI, Devin and OpenCode, each with whichever model it runs. There are extensions for VS Code, Cursor, Antigravity and the JetBrains IDEs; the CLI itself works with any editor. See every supported tool.
In git itself: one JSON note per commit under refs/notes/blamely, attached with the standard git notes mechanism. It travels with the repository if you push notes, and stays on your machine if you do not. You can read it with plain git.
No. The CLI and the editor extensions install with one command and work straight away: no sign-up, no licence key, no network access needed to function.

Install Blamely and get per-line attribution across your whole git history, without sending a single line to the cloud.
curl -sSL https://blamely.ai/blamely-mac-install.sh | bash