Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

agentfacts

Your coding agent says it's done. This tells you what it actually did.

npx agentfacts

Free. Offline. Zero API tokens. Zero dependencies. Runs in about 150 ms.


The problem

Your agent finishes a task and writes a confident summary:

"Created 3 files, tests pass, fixed the bug."

You have two options, and both are bad:

  1. Believe it. Usually fine. Occasionally the tests never ran at all.
  2. Check it. Open the transcript, scroll through a few hundred tool calls, find the test command, find its output. Two to five minutes — for a task the agent was supposed to save you time on.

So in practice nobody checks. The claim goes in unverified, every time.

agentfacts makes option 2 cost two seconds.

What you get

$ npx agentfacts

  agentfacts  b1c43c50 · my-app · main · 29m 4s · 368 tool calls · 6 failed

  FILES       12 files touched, 1 no longer on disk
  TEST        ran once, last passed
  BUILD       ran once, last passed
  TYPECHECK   never ran
  LINT        never ran

  !  1 file was written here but is not on disk now
       (moved, renamed or deleted since — or never actually created)
       kestrel.html  public/_tmp-compare/kestrel.html

  !  3 files changed but never mentioned in the summary
       kestrel.html          public/_tmp-compare/kestrel.html
       00_START_HERE.md      docs/00_START_HERE.md
       MARKET_RESEARCH.md    docs/MARKET_RESEARCH.md

TYPECHECK never ran is the line you came for. So is that last block — three files changed that the summary never mentioned.

Run it automatically

Manual tools get used twice and forgotten. Install the Claude Code plugin and it runs by itself, the moment your agent claims to be finished:

/plugin marketplace add xr3less/agentfacts
/plugin install agentfacts@agentfacts

It stays quiet when there is nothing to say. It speaks up when a file went missing, a command actually failed, or files changed that the summary never mentioned. It can never block your agent or fail your session — that is enforced in the code, not just promised.

Why this instead of the alternatives

agentfacts Reading the transcript An AI-powered checker
Cost $0, MIT, forever your attention tokens, per session
API tokens used zero thousands to millions
API key needed no yes
Time per check ~2 seconds 2–5 minutes 10–60 seconds
Works offline yes yes no
Can be wrong only by staying quiet no yes, confidently

On tokens specifically. A real session log this tool parses was 18.2 MB — call it four to five million tokens if you asked a model to read it instead. Per session. agentfacts reads the same file in 148 ms using about 20 MB of memory, and sends nothing anywhere. There is no API key to configure because there is no API.

On being wrong. A verifier that hallucinates is worse than no verifier. This one does not reason about your session — it counts what is in the log. Where it cannot know, it says so instead of guessing.

What it checks

Check The question
1 Files Which files were written or edited — and are they still on disk?
2 Tests Did a test command actually run, and did it pass?
3 Build / typecheck / lint Same question, same evidence.
4 Silent changes Which files changed that the summary never mentioned?

Check 4 is the one nothing else does. Everything else looks for claims that turned out false. This also looks for changes that were never claimed — the ones you would never think to look for, because nobody told you they happened.

A command that was cancelled counts as never ran, never as failed.

Usage

npx agentfacts                    # the most recent session for this directory
npx agentfacts --session <uuid>   # a specific session (a unique prefix works)
npx agentfacts --json             # machine-readable, for your own scripts
npx agentfacts --help

Exit status is 0 whenever it ran, including when there is nothing to report — safe anywhere. It is 1 only if you ask for a session that does not exist.

How it works

Claude Code already writes a complete record of every session to your own disk: every command it ran, every file it touched, and whether each one succeeded. Nobody reads that file, because it is enormous.

agentfacts reads it for you. That is the whole trick — the evidence was already there.

Accuracy, and where it stops

The rule this is built on: a false accusation is worse than a miss. Telling you your tests never ran when they did is a bug you would never forgive, so everything is biased toward silence.

That bias is not a slogan — it is the result of an adversarial review that found three ways to make an earlier version say something false, each of which now has a regression test:

  • Command detection is quote- and heredoc-aware, so a commit message that happens to contain the words npm test is not counted as a test run. (This was a real bug, found in real data.)
  • npm test --help is not a test run.
  • If the log does not record where the session ran, a relative path gets no verdict rather than a guessed one.

Known misses, reported as "never ran" rather than guessed at: commands run inside a container (docker compose run app npm test) and project-specific wrapper scripts (./scripts/test.sh).

Not in this version: reading the agent's prose and contradicting it claim by claim. Today the tool prints the facts and you compare. Issues and ideas welcome — that is what the tracker is for.

Requirements

Node 20+. Reads ~/.claude/projects/**/*.jsonl, which Claude Code writes on its own — nothing to enable, nothing to instrument.

Developed on Windows. The code avoids platform assumptions and folds path case only where the filesystem actually does, but it has not yet been exercised on Linux or macOS. Reports very welcome.

Guarantees

  • Never writes to your repository. Never writes anything, anywhere.
  • Never makes a network request.
  • Never blocks or fails your agent.
  • Zero runtime dependencies — nothing in node_modules but the tool itself.

Licence

MIT. Free forever, and not a trial for anything.

About

See what your coding agent actually did, next to what it said it did. Zero-config, offline, no API key.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages