
# inspeximus — a zero-dependency Python agent-memory library
**Ask any memory where it came from — and check the answer.** `provenance(key)` returns the declared
source, the lineage it inherited, the evidence grade, every value the fact has held and which policy
retired each one, and whether the record still matches what its write receipt committed to. Delete the
fact and `erasure_certificate()` is the same answer for the deletion — a receipt an auditor verifies
offline, without the live store and without trusting us. Because a delete that returns success is not a
delete: we measured one that left the data recoverable in **five of six** places the application had put it
(`python probes/forget_verification_bench.py` — soft delete scores 0.17 and names the five leaking stores; the wired hard delete scores 1.00).
*"We have inspected" — the medieval charter that recites an earlier one word for word and
attests it unaltered. The self-correcting memory layer for AI agents.*
*Correct a fact once and it stays corrected: the store serves the new value and refuses to let the old
one creep back — deterministically, with no LLM on the write path, from a single zero-dependency file.
`revert(key)` puts a correction back on command, which is the cheapest proof that what sits underneath is
a real state model and not a log. Extracted from an autonomous research OS that has run it daily over a private ~10,000-note vault (our own deployment — you cannot re-run that one; every number you CAN re-run
is listed in [docs/CLAIMS.md](CLAIMS.md) with its command).*
`pip install inspeximus` → `import inspeximus` · [PyPI](https://pypi.org/project/inspeximus/) · [Hugging Face](https://huggingface.co/Danchi17/inspeximus) · [DOI](https://doi.org/10.5281/zenodo.21708778) · [Homepage](https://dancenitra.github.io/inspeximus/) · MIT · v3.23.0
[](https://github.com/DanceNitra/inspeximus/actions/workflows/audit.yml)
[](https://github.com/DanceNitra/inspeximus)
*If inspeximus's saved you some time, a ⭐ would mean a lot — it's how other people find it. Thank you!*

Built by **[Rastislav Drahoš](https://github.com/DanceNitra)** — extracted from [Agora](https://github.com/DanceNitra/agora), an autonomous research OS that runs it daily.
---
## Install into Claude Code in one line
```
/plugin marketplace add DanceNitra/inspeximus
/plugin install inspeximus@inspeximus
```
That registers this repository as a plugin marketplace and installs the MCP server, which then starts
with `uvx --from "inspeximus[mcp]" inspeximus-mcp` and shares one store with the plugin's hooks,
`.inspeximus/coding_memory.json` at the git root (`INSPEXIMUS_SCOPE=claude-code`). Up to 3.9.5 the server wrote
`.inspeximus/memory.json` instead, which no hook read; the SessionStart hook names such a file until
`python -P -m inspeximus.claude_code --merge-store