Under the hood

How it works.

Eight steps from a document on your disk to an answer that names its source.

In plain words

This page explains what Provenize does technically, without you needing to know anything technical. Every step is written in ordinary words first.

Under each step we add the term developers use for it. Handy if you want to read further — ignore it happily if you do not.

From document to answer

Eight steps. Everything here exists today, except where we say otherwise.

  1. Everything runs on your own computer

    Provenize is a program that sits on your machine, alongside the programs you already use. There is no server of ours in between. Turn off your internet and it keeps working.

    local-first · a small helper program running next to your own app

  2. Your documents are read in and cut into pieces

    A two-hundred-page PDF is too large to take in at once. Provenize cuts it into pieces of a few paragraphs and records, for each piece, which file and which page it came from. That record-keeping is exactly what makes a citation possible later.

    ingestion · chunking · PDFs, tables and text recognition for scans

  3. Each piece gets a fingerprint of its meaning

    Alongside the literal text, Provenize keeps a series of numbers summarising what that piece is about. Pieces about the same thing get numbers that sit close together. That is how you find something later even when you use different words than the ones on the page. This calculation happens on your own computer.

    embeddings · vector index · the model that computes this runs locally

  4. Search works two ways at once

    One search looks at the literal words, the other at the meaning. The two lists are merged into a single ranking. Literal search is sharp on names and numbers, meaning-based search on descriptions — together they miss less.

    hybrid retrieval · keyword search plus vector search, combined

  5. Only then does an AI model get involved

    The model receives two things: your question, and the few pieces of text that were found. Not your whole file — that stays where it is. If you want to use a model running in the cloud, we first strip out names, email addresses and national ID numbers. That does not always work, and we say so.

    retrieval-augmented answers · personal details removed before sending

  6. No source, no answer

    Every fact in an answer has to hang off one of those pieces of text. If the model cannot do that, there is no answer — it says it found nothing it can stand behind. That rule sits in the code, not in a polite request to the model.

    citations enforced in code · source, page, and how well the piece matches

  7. Every action goes into a log where the lines are attached to each other

    For every line in the log a small number is computed, and the previous line takes part in that calculation. Change one line and its number no longer matches — nor do the numbers of every line after it. Tampering therefore always shows. Lines can only be added; nothing is ever taken out.

    a chain of computed numbers · an append-only log

  8. Erasing without losing your proof

    Data about a person is encrypted with a key that belongs to that person alone. An erasure request throws that key away: the content becomes unreadable while the chain of numbers stays intact. So you can show that you erased, without keeping what was there.

    one key per person · erasure by deleting the key

A word in here you do not know? Look it up in the glossary.

For those who want to try it

Three lines: read in, search, source attached.

from ai_memory import AIMemory

mem = AIMemory("./vault")
mem.ingest("reports/report-2025.pdf")

hits = mem.search("TLS misconfiguration")
print(hits[0].citation)  # report-2025.pdf · p. 41 · 0.93

The full description lives on the SDK page.

What it is built on

The real names, with what they do in ordinary words.

  • Pythonthe language it is written in
  • SQLitethe single-user database: everything in one file
  • PostgreSQLthe team database: everyone sees only their own data
  • Vector searchthe part that searches on meaning
  • Local language modelsthe meaning calculations, on your own machine
  • SHA-256the number that ties the log lines to each other
  • ed25519the digital signature under an export or a piece of evidence
  • MCPthe connector that lets other AI tools read your memory
  • 2,700+ testsaround ninety percent of the code checked automatically
What it never does
  • It never runs code it finds inside a document. A document is text to read, not an instruction to carry out.
  • It never sends a whole document out. Only your question and the pieces that serve as the source — and only if you switch on an external model.
  • It never invents a source. If the source does not exist, there is no answer.
  • It does not talk to us. We have no server that sees your data, so there is nothing at our end to leak.

Would you rather check than believe?

See the proof