AnonymFiles detection benchmark and offline test: method and results
On a fictitious set of 40 documents from law, notarial and accounting firms, AnonymFiles masked 99% of the expected items, in plain text and in real formats: Word, PDF, scans, emails and spreadsheets. Here is the method, the misses that remain, and how to check for yourself that nothing leaves the computer.
The results at a glance
- 364 out of 366 items masked, that is 99% recall, on 40 fictitious firm documents.
- On real formats: 100% in Word, 97% in email, 98% in text PDFs, 100% in scanned PDFs (OCR) and spreadsheets.
- In light detection (switched on by default on computers with 8 GB of memory or less, about 1 GB less memory): 360 out of 366, that is 98%.
- 1 term to keep masked by mistake out of the 55 in the text documents (“URSSAF Pays de la Loire”), and two in the formats: a public body and a court, masked out of caution.
- Measured on , with the application's real engine (two local models and rules), network disabled.
The benchmark method
The set has forty fictitious documents in French, written like those of the seven professions AnonymFiles serves: written submissions, writ of summons, judgment, sale agreement, deed of gift, engagement letter, minutes of a general meeting, payroll export, bailiff's report, service of process, insolvency report, list of creditors, draft patent, contract, non-disclosure agreement, emails. Every person, company, address, contact detail and number is invented. The set includes deliberate traps: namesakes, names in tables, names in capitals, companies named by their legal form, dates of birth next to dates of statutes, SIREN and social security numbers.
For each document, a list sets two things:
- the items that must disappear from the redacted copy (366 in total), classified by type: person, organization, address, email, phone, IBAN, private date, identifier;
- the terms that must stay readable (55 in total): references to statutes, courts, legal concepts.
Forty-five other elements (amounts, docket numbers, land registry references, vehicle registrations) are masked by hand during review: they are not counted. Part of the documents is then produced as Word, text PDF, scanned PDF, email and spreadsheet, and prepared by the application's full pipeline, extraction and OCR included. An item counts as found if its value no longer appears, as a whole word, in the redacted copy; a term to keep counts as an error if it has disappeared. The set, the expected answers and the scripts are published with the code: the benchmark can be re-run identically.
Results by type of information
| Type | Expected | Found | Recall |
|---|---|---|---|
| People | 160 | 158 | 99% |
| Organizations | 57 | 57 | 100% |
| Addresses | 71 | 71 | 100% |
| Emails | 21 | 21 | 100% |
| Phone numbers | 21 | 21 | 100% |
| IBANs | 10 | 10 | 100% |
| Private dates | 14 | 14 | 100% |
| Identifiers (SIREN, social security…) | 12 | 12 | 100% |
| Total | 366 | 364 | 99% |
Results by file format
The same documents, prepared in their real format by the application. For scans, an item that OCR does not read exactly (lost accent, confused letter) is counted as “not read” and is left to check during review.
| Format | Files | Expected | Found | Recall | Terms masked by mistake |
|---|---|---|---|---|---|
| Word (.docx) | 5 | 57 | 57 | 100% | 1 |
| Email (.eml) | 3 | 31 | 30 | 97% | 0 |
| Text PDF | 5 | 48 | 48 | 100% | 0 |
| Scanned PDF (OCR) | 5 | 40 (1 not read) | 40 | 100% | 0 |
| Spreadsheet (.xlsx) | 2 | 22 | 22 | 100% | 1 |
On a PDF with tight line spacing, a redacted area no longer erases words on the neighbouring line: the defect, found with this set, is fixed (on a scanned page, pixel erasure still covers the full height of the words).
What this benchmark does not tell you
- The set is fictitious. Forty documents written for the purpose do not cover the full variety of a real case file: rare names, typos, abbreviations, documents in a foreign language, poor-quality scans.
- Some misses remain. The six missed items are organizations without a legal form (“Clinique du Parc”, “Nord Habitat Expertise”) and surnames alone in a file heading or an email subject. These are exactly what to watch for during review.
- It is not an audit. The benchmark is run by the publisher, on its own set. Benchmarks published by other publishers use other test sets: the figures cannot be compared.
- Amounts and sensitive passages are not counted. They are masked by hand, in one click, during review.
Hence the application's rule: every document is shown side by side with its original, and nothing is exported without approval. The benchmark is repeated at every model or detection-rule change.
What the application does on the network
Here, according to the application's code, is everything that touches the network:
| Item | On Mac | On Windows |
|---|---|---|
| Document content | Never sent | Never sent |
| Detection models and OCR files | Included in the application: no connection | Downloaded once, on first processing, at a pinned revision, SHA-256 fingerprint checked |
| License | Signed key checked on the computer, with no account and no network call | Same |
| Telemetry, statistics, automatic updates | None | None |
| Interface | Every web request from the window is blocked | Same |
| Local bridge for AI agents | The computer's 127.0.0.1 address, protected by a token | Same |
The 127.0.0.1 local bridge is not the internet
The 127.0.0.1 address refers to the computer itself: a connection to it never leaves the machine. AnonymFiles opens a small service there, on a randomly chosen port and protected by a secret token, that only AI agents installed on the same computer (Claude Code, Codex…) can call to read the redacted and approved copies, never the originals. A firewall or monitoring tool may display this address: that is normal, nothing goes outside.
The details are on the security and network scope page.
Checking offline operation yourself
On a Mac
- Turn off Wi-Fi (and unplug the network cable) right after installation, before the first launch.
- Process a test case file: detection, review, export. Everything works, models included: they ship with the application.
- For finer proof, install an outbound firewall: LuLu, free and open source, or Little Snitch. It shows every attempt to connect to the internet, application by application. Only connections to 127.0.0.1 can appear, those of the local bridge.
- Without installing anything, Activity Monitor (“Network” tab) shows the bytes sent and received by each process.
On Windows, once the Windows version is released
- Let the first processing run download the public models: it is the only planned connection, with no document text.
- Then block the application in Windows Defender Firewall, or turn off the network: processing continues.
- To observe, Resource Monitor (“Network” tab) lists the processes that communicate, and the
netstat -bcommand, in a command prompt run as administrator, shows their connections.
And on the exported file
Open an exported PDF, select all the text and paste it into an editor: the masked text is no longer there, it has been deleted, not covered. The six checks to run on any redacted PDF are in our guide to checking that a PDF is really anonymized.
Frequently asked questions
What is AnonymFiles' detection rate?
On a fictitious set of 40 documents from French firms (366 expected items), measured on October 14, 2026 with the real engine and the network disabled, AnonymFiles masked 364 items, that is 99%. On real file formats, recall ranges from 97% (emails) to 100% (Word, PDFs, scans and spreadsheets). In light detection, switched on for computers with 8 GB of memory or less, it is 98%. It is an indicator on a fictitious set, not a guarantee on your case files.
Does this benchmark guarantee that no name will slip through?
No. It covers 40 documents written for the purpose, not real case files, and six items out of 366 still slip through: organizations without a legal form (“Clinique du Parc”) and surnames alone in a file heading or an email subject. No automatic detection is perfect: every document is reviewed side by side with its original, and nothing is exported without approval.
How can you check that AnonymFiles works offline?
On a Mac, turn off Wi-Fi right after installation, then process a case file: everything works, models included. To go further, an outbound firewall such as LuLu (free) or Little Snitch shows any attempt to connect to the internet. On Windows, let the first processing run download the public models, then block the application in the firewall: processing continues.
Why might a firewall report a 127.0.0.1 address?
127.0.0.1 refers to the computer itself, not the internet. AnonymFiles opens a local bridge on this address, protected by a token, that only AI agents installed on the same computer can call to read the approved redacted copies. Nothing travels over the network.
What does AnonymFiles download on Windows?
Once only, on first processing: the two public detection models, at a pinned revision, and the French and English language files for Tesseract OCR. Each file is checked against its SHA-256 fingerprint. No document text is included in these requests. On a Mac, everything is included in the application.
Can the benchmark be re-run?
Yes. The fictitious set, the list of expected items and the script that generates the Word, PDF, scan, email and spreadsheet versions are published with the code; the benchmark is re-run with the benchmark script on the local models, in complete or light mode. It is repeated at every model or rule change.