anonym.
$ anonym --in customers.xlsx --rules gdpr.json --keep-layout
Names, addresses, account numbers, dates of birth — anonym finds them in text and spreadsheets and replaces them with coherent stand-ins, without touching sentence structure, columns, formulas or formatting. Rule-based instead of AI: dictionaries, patterns and check digits, traceable and offline. Reads and writes modern and legacy text and table formats. No account, no telemetry. Native for macOS, Windows and Linux.
In development — first beta to follow
anonym is being built right now: detection with dictionaries and patterns first, consistent pseudonyms and the preview with diff for text, CSV, DOCX and XLSX — the format library for older files and the fine-tuning of replacement values right behind it. The first beta for macOS, Windows and Linux ships with signed in-app updates.
Downloads go live as soon as the first beta passes our own test.
No AI. A system instead.
// dictionaries, patterns, check digits — traceable instead of guessed
A language model guesses what might be a name — and guesses a little differently every time. anonym works with what can be verified instead: dictionaries of first and last names, places and streets, patterns for IBANs, phone numbers, email addresses, licence plates and case numbers, check digits that confirm a match. The same file yields the same output — today, tomorrow and on any machine. And none of it leaves your computer.
// detection
Find what is personal
Names, postal addresses, dates of birth, email addresses, phone numbers, IBANs and credit cards, tax and insurance numbers, licence plates, IP addresses, customer and case numbers. Every category can be switched on or off individually, with your own patterns and word lists on top — and an allowlist for everything that must stay: your company name, product names, public authorities.
// replacement
Coherent instead of blacked out
“Anna Berger” becomes “Lena Vogt”, a Cologne address becomes a different Cologne address, an IBAN becomes one that passes its check digits. If you prefer redaction, you get bars, asterisks or placeholders like [PERSON 3] — selectable per category. The same person keeps the same name throughout the file, so the text stays readable.
// structure
The context stays
anonym replaces values, not documents. Paragraphs, table columns, formulas, formatting, comments, footnotes and headers stay where they are — afterwards the file looks like before, just without the people in it. Numeric columns stay numeric, date columns stay dates, sentences stay sentences.
// the LAN-SOLO way
Local & honest
Everything runs on your computer — no cloud, no account, no telemetry. A rule set is a readable JSON file you can copy, version and share with your team. What anonym replaced is in the report on your disk, not in a service that phones home.
// And to keep it honest: detection, pseudonyms, preview and the common formats stay free — for good. Fine-tuning down to the character, consistency across files, legacy formats and automation are the masked plan: €12 a year.
Before, after
// the same file — just without the people in it
// input
Dear Ms Berger, thank you for your call on 14/03/2024. The refund goes to your account DE89 3704 0044 0532 0130 00. Questions to anna.berger@example.org or 0221 4711-0. Cust. Name City DOB 10482 Anna Berger Cologne 02/07/1981 10483 Jonas Berger Cologne 19/11/2009
// output
Dear Ms Vogt, thank you for your call on 27/03/2024. The refund goes to your account DE25 3704 0044 7719 0234 15. Questions to lena.vogt@example.org or 0221 8823-0. Cust. Name City DOB 20917 Lena Vogt Cologne 15/07/1981 20918 Noah Vogt Cologne 02/12/2009
// Ms stays Ms, Cologne stays Cologne, the date intervals hold, mother and son keep the same surname, the bank stays and the IBAN passes its check digits. Only none of it is real any more.
Formats
// read, replace, write back in the same format
anonym writes back in the format it read from — or exports to a different one. What is listed here is planned for the target release: the common formats ship with the first beta, the older ones arrive as updates.
// text — today
Text formats
- TXT / Markdown
- DOCX
- ODT
- RTF
- HTML
- XML
- JSON / JSONL
- YAML
- PDF (text layer)
- email (EML / MBOX)
- subtitles (SRT / VTT)
- log files
// tables — today
Table formats
- CSV / TSV
- XLSX / XLSM
- ODS
- Numbers
- SQL dumps
- SQLite
- Parquet
- fixed-width columns
// classic
Legacy text and table formats
- DOC (Word 2 – 2003)
- XLS (Excel 2 – 2003)
- WordPerfect (WPD / WP5)
- WordStar
- Lotus 1-2-3 (WKS / WK1 – WK4)
- Lotus Symphony
- Quattro Pro (WQ1 / WB1 – WB3)
- Ami Pro (SAM)
- Works (WPS / WKS)
- Write (WRI)
- MacWrite / ClarisWorks / AppleWorks (CWK)
- StarOffice (SDW / SDC)
- Multiplan
- dBase / FoxPro (DBF)
- SYLK
- DIF
- T602
- Palm DOC / PDB
- Psion (OP / SP)
// mainframes & exotics
Mainframes, databases and the unknown
- EBCDIC files with fixed record length
- COBOL copybooks
- DOS and ISO-8859 code pages
- exports from big iron (IBM, DEC, Cray)
- anything text-based via a format description
// A format missing? A format description is a JSON file: character set, record layout, field boundaries, what is text and what is structure — whoever knows the format describes it, and everyone else gets it with the next update.
Use cases
// not only for data protection
Anonymizing is not only about the GDPR. Wherever real data has to be handed over but the real people must not, a tool that preserves structure and meaning helps.
// data protection
Hand over without giving away
Customer lists to the accountant, contracts for review, support tickets to a service provider, log files to the vendor: everything that has to go out — without the people in it. With one rule set per recipient, because the accountant may see different things than the software vendor.
// development
Test data from real data
A production export becomes a test database: same structure, same distribution, same relationships between tables — just without real humans. Customer number 10482 becomes the same new number in every table, so joins, tests and bug reports keep working.
// game development
Names for worlds
A player list becomes NPCs, a team directory becomes the inhabitants of a town: name worlds for fantasy, science fiction, medieval or present day, consistent across dialogue, quests and save games. Pseudo-localization stretches strings and swaps characters so the UI shows where it breaks before the translation exists.
// research & teaching
Real data in the classroom
Surveys, patient lists, case files and business figures as teaching material or for analysis in the team: generalize values (age range instead of date of birth, postcode area instead of address), smooth outliers, keep date intervals — and the report documents what was changed.
Features
// planned for version 1.0
Fine-tuning down to the charactermasked
Per category you decide what happens: redact, mask, pseudonymize, generalize or delete. Replacement characters of your choice (█, ▒, *, X, ·), keep length, keep case, show only the last four digits, placeholders with counters like [PERSON 3]. Free ships the standard strategies, masked the whole workshop.
Name worlds
Replacement names come from dictionaries, not from a random generator: German, English, French, Spanish, Turkish, Japanese — matching the original or deliberately different. Salutation and gender are preserved, so “Ms Berger” does not turn into “Mr Vogt”. Your own lists for fantasy, science fiction or the Middle Ages come on top.
Consistency across filesmasked
One pseudonym store per project: the same person gets the same replacement name in twenty files, the same customer number the same new number — relationships between tables stay intact. Reversible on request with an encrypted key file that only you hold. Delete it, and pseudonymization becomes anonymization.
Shift dates & numbers
Shift all dates by the same random amount so intervals and order hold — per person or per file. Add noise to amounts and measurements, bucket ages into ranges, shorten postcodes to the area. Check digits of IBANs, credit cards and tax IDs are recalculated.
Preview & diff
Before anything is written you see every match side by side: original left, replacement right, colored by category. Confirm, reject, add to the allowlist or change the category — only then is the file saved. Afterwards the report lists what was replaced where: as PDF or JSON, for the file and the client.
Batch, command line, foldersmasked
A hundred files at once, whole folder trees, rule set by parameter. Command line with JSON output for scripts and CI pipelines, watched folders that store everything incoming anonymized, export to a different format in the same run.
Pricing
// Free anonymizes — masked is the workshop
Free
For anyone who has to hand over a file — without the people in it
- Detection of all categories with dictionaries, patterns and check digits
- Consistent pseudonyms within a file, name worlds in six languages
- Standard strategies: redact, placeholder, pseudonym, date shift
- Preview with diff, allowlist, report as PDF
- All common text and table formats, output in the same format
- Native for macOS, Windows and Linux — no account, no telemetry
masked
For teams, developers and everyone who does this regularly
- Everything in Free
- Fine-tuning down to the character: strategy, replacement characters and placeholders per category
- Pseudonym store across files and projects, reversible with a key file
- Legacy formats, mainframe files and your own format descriptions
- Your own name worlds and patterns, share and import rule sets
- Batch, command line with JSON output, watched folders, format export
Free stays free — for good, no strings attached. anonym masked: €12 a year, that’s €1 a month. Incl. VAT, billed yearly, cancel anytime.
// Honest as always: without AI there is no understanding — anonym finds what is in dictionaries and patterns, and misses what is in neither: the nickname, the description that still makes a person recognizable. Hence the preview, hence the look before you send. And legally: as long as a key file exists, the result is pseudonymized, not anonymized — the GDPR still applies. anonym is a clean tool, not legal advice.