// in development

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

€0/ year
  • 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

€12/ year
= €1 per month
available at launch
  • 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.