FREE AND OPEN SOURCE

Measure what your agents actually produced.

How much of what they wrote is still in your code a week later, line by line — next to what the session cost.

693c3029fix(update): ten findings from the review of the install/update PRSep 7
77%
836 of 1,084 lines kept248 gone$43.72 for the session5.2¢ a kept line
A real commit from this repo. Every figure came off a local file you have too.

pipx install aiwatcher-local · reads Claude Code, Cursor, Codex, git · no account

Running AI inside your product? See AIWatcher Enterprise →

THE MEASUREMENT

Everything looks fine. That’s the problem.

Twenty-seven commits from this repo. Switch the measure and watch every one of them agree with every other.

MEASURE BY17.7% to 99% — median 85.5%, four commits under 70%
27 commits, sorted by how much is still thereclick a bar

Pick a bar to see which commit it is, what it cost, and how much of it is still in the repo.

git merge-base --is-ancestor <sha> HEAD

A revert adds a new commit. Deleting every file it created changes nothing about the old one. Anything merged answers yes forever.

+ added lines HEAD still attributes here− removed lines that never came back

Both directions, because a commit whose whole job was deleting dead code would otherwise score zero — exactly backwards.

HOW TO READ THIS81.5% of all touched lines are still there, which sounds fine until you see the spread. Reformatting reattributes lines, so these counts are a floor. Twenty-seven commits, one repository — ours.

A measure that answers yes to everything can’t rank anything. Resolution is the product, not a lower number.

THE YIELD

Which sessions actually paid off.

Every commit gets a cost, and a count of what’s still there. Put them together and the spread is enormous — and invisible to anything that stops at the invoice.

81.5%
of 9,088 touched lines still there
17.7–99%
still there, across 27 commits
97×
between the dearest and cheapest kept line
4435b13e628d17.7%11 / 62$2.06
45a4e195feba85.5%47 / 55$0.85
b368bd13225c49.3%35 / 71$0.81
ea21cbc4785b88.2%465 / 527$0.07
756180aec49d72.7%1492 / 2052$0.02
READ IT LIKE THISThe 62-line commit cost $2.06 for every line still there. The 2,052-line commit cost two cents. Size is not the signal.

27 measured commits from this repo’s own history. Cost is API-equivalent, not a subscription bill. These counts are a floor.

FIRST RUN

One command. It already has your history.

No account, no key, no config. AIWatcher reads the agent history and git log already sitting on your machine, so there is nothing to start collecting.

~/your-repo
$ pipx install aiwatcher-local
$ aiwatcher status
AIWatcher Local status
✓Claude Code CLIAutomatic gate + history42 sessions
◑Claude Desktop Code tabHistory seen; hook unverified41 sessions
✗CursorNot detected0 sessions
Mode:private by default
Network:disabled unless you ask for it
83 sessions, found
Everything your agents already did, read from local history.
No account
No signup, no key, no upload. It never phones home unless you ask.
Says what it can’t see
Tools it couldn’t detect are listed as not detected, not quietly dropped.

Measuring what is still there needs a commit to be a week old, so today’s work reads as not yet measurable — never as zero.

WHAT IT DOES

While you work, and after.

All of it read from the agent history and git log already on your machine. No wrappers, no SDK, no code changes, nothing sent anywhere by default.

WHILE YOU WORKon tools with a verified hook, it interrupts three times and stays quiet the rest of the day
PROMPT GATE
Take a loose ask straight into the repo and start editing.
scored 19 · HIGH · many files, no checkpoint, several tasks in one
Paused it and wrote a tighter version: one area, one checkpoint, stop and report before widening.
Use the tighter brief
COMMAND GATE
Run a command that throws away work you cannot get back.
git reset --hard
Stopped it before it ran and asked you first. It keeps the pattern, the reason, and the command with any secrets redacted.
Allow once
CONTEXT
Keep re-sending 489k tokens of old history on every single turn.
511k left of a 1M window
Showed that 64% of this session’s spend is history you already paid for, and offered a clean restart that keeps the plot.
Review Fresh Start
AND NEVER INTERRUPTING, IN YOUR TERMINAL! $41.53 since commit | $41.53 session | this prompt $1.00 +3K so far | 471K/turn
AFTER THE WORKmeasured against git, once the commits are old enough to mean something
9,088 lines
Still there, line by line
Each session tied to its commits, then measured in both directions.
A floor — blame moves on reformats.
$0.02–$2.06
Cost per kept line
What a change cost, over how much of it is still in the repo.
Needs a commit a week old.
4.9M tokens
Tokens and cost per session
Priced per model, then split by session, tool and project.
API-equivalent, not a subscription bill.
$69.27
Unbanked spend
Money spent in sessions with no commit behind them yet.
Abandoned and uncommitted look alike.
WHY NOTHING ELSE DOES THIS

The money and the code never meet.

You already have a tool that knows exactly what you spent, and a tool that knows exactly what is in your repo. They have never been introduced.

WHAT YOU RUN TODAY
Usage dashboards
ccusage, /usage, the vendor console
KNOWS

Tokens, dollars, model, date. To the cent.

CANNOT SAY

Whether a single token of it ever became code that stayed. It has never seen your repo.

WHAT YOU RUN TODAY
git
log, blame, diff
KNOWS

Every line, who committed it, and whether it is still there.

CANNOT SAY

Which agent session wrote it, how many turns it took, or what it cost. Your name is on all of it.

WHAT AIWATCHER ADDS
The join
session → commit → line still there

One side knows the spend, the other knows the code. Joined, they answer the question neither can: what did the money actually produce?

$0.02–$2.06per kept line, across 27 commits

AIWatcher replaces neither of them. It reads both, on your machine, and closes the gap between them.

VERIFY IT YOURSELF

Don’t trust us. Check.

Apache-2.0, source on GitHub. Every number on this page came out of a local file that you have too.

WHAT IT READS
~/.claude · session historyCodex rollout historygit commits, diffs, blameprocess age, CPU, RAM

Files these tools already wrote to your disk. Nothing new is instrumented.

WHAT IT STORES
~/.aiwatcher/local-state.jsonreceipts, hashes, decisionsoutcomes and metadata

One file you can open, grep or delete. Raw prompt text from Prompt Gate is never written down.

WHAT IT SENDS
Nothing

The network stays off unless you run an update command, switch on update checks, or configure a connected workflow.

Optional AI Assist is the one exception: it sends bounded context, only after you turn it on and pick a workflow that uses it.

Apache-2.0no accountno API keyworks offlineRead the source →
WHEN THE TEAM HAS THE SAME PROBLEM

Your reviewers are rebuilding the same story, by hand, every time.

Once agents write a real share of the work, the bottleneck moves to review. AIWatcher Enterprise answers one question on the pull request: does this change carry enough trustworthy evidence to review efficiently?

See AIWatcher Enterprise →
ON THE PULL REQUEST
✓
Ready for review
Intent clear, focused tests passed, no production boundary crossed.
quiet
!
Missing evidence
Authentication middleware changed, only unit tests present.
request proof
◑
Partial coverage
No local session evidence, so this rests on the diff and CI alone.
shown, not hidden

Well-evidenced work stays quiet. Exceptions carry one reason and one action — and never a green check the evidence does not support.

Local is where that evidence starts. It leaves as a minimized export you preview and control, never as your prompts or your source.

Measure what your agents actually produced.

$pipx install aiwatcher-local

no account · no API key · works offline

THE PROMISE
Local stays the private companion.

Whatever we build for organizations is built on top of this, never by taking it away. Raw prompts and source stay on your machine by default. Anything an organization ever sees is an explicit, minimized export you can preview, disable and revoke.

Free and open source, forever · no green check we can’t back

Install AIWatcher Local

Free, open source, no account, nothing leaves your machine by default.

Install AIWatcher Local

Running AI at scale?

We’re taking on a small number of design partners for the organization-wide loop.

Tell us about your setup
Which coding agents does your team use?

We reply within 48 hours. No newsletter, no marketing automation. Just a real reply from one of us.