Integration

Scan JSONL exports for memory poisoning, prompt injection and leaked secrets

When Mimvo has no connector for your store, or you would rather not give a scanner database access, export the memory to JSON Lines and scan the file. Only content is required on each line; ids, metadata, embeddings and timestamps unlock more of the checks. The file is opened read-only.

Install#

Mimvo is an open-source Python package for Python 3.11+, published on PyPI. The core package reads JSONL with no extra dependencies.

bash
pip install mimvo

Scan JSONL exports from the command line#

One command reads every record, runs the secrets, injection and poisoning checks, and writes a self-contained HTML report you can forward.

bash
mimvo scan jsonl ./exports/agent_memory.jsonl \  --report report.html
mimvo scan jsonl options
OptionWhat it does
PATHJSON Lines file, or - for stdin. Keys: id, content, metadata, embedding, created_at.
  • Each line is a JSON object with content, and optionally id, metadata, embedding and created_at.
  • Include embedding so the vector detectors run, and created_at so contradictions between older and newer memories can be found.
  • Pass - instead of a path to read from stdin, for example from your own export script.

Scan from Python#

The same scan from your own code, for a scheduled job or a notebook.

python
from pathlib import Pathfrom mimvo import Mimvofrom mimvo.scan import JsonlScanSource, render_htmlsource = JsonlScanSource("./exports/agent_memory.jsonl")report = Mimvo().scan(source)report.source = "jsonl:./exports/agent_memory.jsonl"Path("report.html").write_text(render_html(report), encoding="utf-8")

What Mimvo finds in JSONL exports#

Thirteen finding codes across three checks. Each finding comes with a severity, a recommended action, the evidence (secrets masked), fix steps, and an OWASP and CWE mapping. Details are in the finding code reference.

Mimvo finding codes
FindingCodeSeverityAction
Leaked secretsecret_detectedCriticaldelete
Personal datapii_detectedMediumreview
Hidden instructionpersistent_instructionHighreview
Canary instruction droppedknown_answerMediumreview
Injection embeddingembedding_injectionMediumreview
Poisoned factmemory_poisoningHighquarantine
Destination redirectdestination_redirectHighreview
Adversarial textadversarial_textMediumreview
Tampered vectorembedding_mismatchMediumquarantine
Contradicts older memorytemporal_contradictionMediumreview
Answer flipretrieval_flipMediumreview
Poisoning clusterpoisoning_clusterLowreview
Retrieval hubhub_recordLowreview

Gate CI on the results#

Fail the job on high-severity findings, send results to GitHub code scanning as SARIF, and put a summary on the run page. See Use in CI for a full GitHub Actions workflow.

bash
mimvo scan jsonl ./exports/agent_memory.jsonl \  --fail-on high \  --sarif mimvo.sarif \  --markdown "$GITHUB_STEP_SUMMARY"

Is it safe to run against production JSONL exports?#

Reads the export line by line. The file is opened read-only.

The default detectors run on your machine with no API key and no model download, so memory text does not leave it. Secret values are masked in every report. Hosted detectors are opt-in.

Try it without connecting anything

Open the live dashboard to browse a sample scan, or read the guide to AI agent memory poisoning.

Other integrations#