Welcome to Blamely
Know who wrote what. Blamely traces every change in your codebase and attributes it — line by line — to an AI assistant or a human. The result lands in your terminal as a clear AI vs Human bar after every commit, and as a permanent record in your git history.
AI 72% (18) [] Human 28% (7)
claude 12 (claude-opus-4-6) — 4200 in / 890 out tok
cursor 6 (composer-1) — 1100 in / 340 out tokEverything runs locally. No cloud, no telemetry, no account required.
The product, in one minute
Blamely is composed of three pieces. You can use the first one on its own, or pair it with an editor plugin for live in-IDE attribution.
- The CLI (
blamely) — a Go binary that runs a background daemon, watches your AI tools, and writes a per-commit attribution note to git. Required. See Install the CLI. - VS Code / Cursor extension — surfaces the attribution data inside the editor and detects inline Tab completions the CLI alone can’t see. Optional. See VS Code or Cursor.
- JetBrains plugin — same role for IntelliJ IDEA, WebStorm, PyCharm, GoLand, and the rest of the JetBrains family. Optional. See JetBrains.
What gets stored
Two local artifacts, both reversible:
~/.blamely/— daemon binary, SQLite database of edit events, log, port file.refs/notes/blamely— one JSON note per commit, attached via the standard git notes mechanism. Travels with the repo if you push notes; nothing leaves your machine otherwise.
What to do next
- Install the CLI — five minutes, one command.
- Quick start — make a change, commit, watch the bar appear.
- How it works — the detection model, the hook flow, the git notes layout.
Because
git blameonly tells you who committed a line. Blamely tells you who wrote it.
Supported AI tools
Blamely auto-detects which of these are installed when you run blamely install and wires up hooks only for the ones it finds. Supported AI coding tools says how each one is followed.
Claude Code
Claude Desktop
Cursor Composer / Chat
Cursor Tab
GitHub Copilot
Codex CLI
Gemini CLI
Devin CLI
Devin IDE
Devin Cloud
OpenCode (V1 / V2)
gen type how the code was produced signal how Blamely sees it
Something unclear or wrong? Tell us.