MASCHERA MASCHERA

Free software · Open source · runs locally on the CPU, no GPU, no network

MASCHERA masks personal data
in Swiss documentsIt does so on your device, always locally,
with no network connection!

You have a letter, an email thread or a PDF and want to ask an AI tool about it. The names, AHV numbers and addresses should stay behind, though.

Download How it works

Before

Sehr geehrte Frau Brülhart
AHV 756.1234.5678.97
Lindenstrasse 12, 3011 Bern

After

Sehr geehrte Frau [FULLNAME_1]
AHV [AHVN13_1]
[STREET_1] [BUILDINGNUM_1], [ZIPCODE_1] [CITY_1]

You hand the masked text to the service of your choice. You paste the answer back, and MASCHERA puts the real values in again.

MASCHERA with a masked letter: names, AHV number and address replaced by coloured placeholdersMASCHERA with a masked letter: names, AHV number and address replaced by coloured placeholders

Four features

What defines the tool

01

It runs on your device

All detection happens locally. While it runs, nothing is fetched and nothing is sent: no fonts, no icons, no analytics. An endpoint that ships text out does not exist and will not exist. The way out always leads through your clipboard.

02

It writes nothing down

Only your own settings are stored, meaning rules, templates and preferences. Even those are stored only on explicit command. No document content, no dictionary, no log.

03

Reversible, and that is the point

You mask, you ask, you paste the answer back: MASCHERA puts the real values in again. That is why this is pseudonymisation and not anonymisation. As long as the dictionary exists the process is reversible, and under the revised FADP the data remain personal data.

04

Built for Swiss documents

It detects the AHV number, UID, IBAN, QR reference, building and dwelling identifier, permit category, number plate and ZSR number, each with its checksum.
45 data types
in all. Four languages: German, French, Italian and English.

The process

Five steps

1

Open or drag in a document, or paste text

Read: .pdf, .docx, .eml, .msg (Outlook), .mbox, .txt, .md, .csv, .json.

Step 1: drop a document into MASCHERA or paste textStep 1: drop a document into MASCHERA or paste text
2

Mask

Every finding is shown in colour, with its origin: checksum, pattern or model.

Step 2: the text is masked, personal data replaced by placeholdersStep 2: the text is masked, personal data replaced by placeholders
3

Check

You see what was replaced before the text goes anywhere.

Step 3: check the findings and add to them if neededStep 3: check the findings and add to them if needed
4

Copy and paste

Into the service of your choice, by hand. The tool sends nothing itself.

Step 4: copy the masked text and paste it into the AI serviceStep 4: copy the masked text and paste it into the AI serviceChoosing the AI service: ChatGPT, Claude, Copilot, Gemini or MistralChoosing the AI service: ChatGPT, Claude, Copilot, Gemini or Mistral
5

Paste the answer back

The real values come back in.

Step 5: paste the answer back, MASCHERA restores the real valuesStep 5: paste the answer back, MASCHERA restores the real values

An empty result is not an all-clear. A scanned PDF without a text layer yields an error with a reason, not “no personal data found”. A tool that gives the all-clear there is more dangerous than one that says nothing at all.

Three stages, not just “an AI”

StageWhat it does
1 · ChecksumsAHV number, UID, IBAN, QR reference, credit card, GLN. Valid checksum → mask, even if the model stays silent. Invalid → discard, even if it fires.
2 · Patterns with context anchorsPhone number, postcode, number plate, permit category, case number and more. They are detected by anchor words in four languages and take no precedence over the model. Your own rules come on top: words and patterns you define yourself. They run like the built-in patterns. For example an internal case no. or an internal file no.
3 · Language modelNames, addresses, occupations, organisations and dates, meaning everything without a pattern.

The model is 1.2 GB and was trained on synthetic data. It has never seen a real document. Technical details on the model.

The most important section

MASCHERA takes the work off your hands, not the responsibility.

No tool finds every piece of personal data. Look at the masked text before you pass it on. That is why MASCHERA shows every finding in colour and with its origin.

What “origin” means

Every finding shows where it came from: a verified number, a pattern with context, or the language model. An AHV number with a valid checksum is certainly right; a guess from the model deserves a second look.

One finding with its origin: model, pattern or checksumOne finding with its origin: model, pattern or checksum

Right-click a finding to change its marking: choose a different data type or remove the mask.

What you can do if something is missing

Five options, all present in the application.

Fix it by handThe masked text is editable. Placeholders such as [FULLNAME_1] stay put and are converted back at the end.
Your own rulesYour own words and patterns, masked in addition. A project name, an internal abbreviation, a nickname.
Plain-text typesYou can leave individual data types in plain text for good. They are detected, but not replaced. If you want to keep place names, you set that once.
Convert backPaste the service’s answer in, and the real values come back.
Anonymise for goodMask without a dictionary. The process is then no longer reversible, and the application tells you so beforehand.

MASCHERA can do both: reversible for working with an AI service, irreversible for text that leaves the house as it is.

Download

Which file do I take?

No sign-up form, no email address, no newsletter. The file is there, you download it, done.

Linux

AppImage: a single executable file, the model is included. Download, make executable and start. Nothing is installed.

AppImage1,7 GB

Flatpak: The model (1.3 GB) is downloaded from Hugging Face the first time the application starts.

Flatpak0,3 GB

Windows

Installer for Windows 11, 64-bit. Installs without administrator rights, the model is included.

Windows1,4 GB

Server

Docker, for running as a service. The interface opens in the browser. The model is included. The server keeps nothing: no document, no dictionary, no log. Once the answer is out, everything is forgotten.

Docker4,2 GB

macOS

Disk image for Macs with Apple silicon (M1 or newer). The model is included. The app is not signed: after dragging it into “Applications”, enter xattr -dr com.apple.quarantine /Applications/MASCHERA.app once in “Terminal”, otherwise it will not open.

macOS1,4 GB

All files are in the releases on GitHub, together with SHA256SUMS for verification.

The note about the model

The model is 1.2 GB. The AppImage, the Windows installer and the macOS image carry it. The Flatpak fetches it once on first start. It comes from a named source, is verified with a checksum and is only fetched after you have agreed. No wifi at hand? Decline and fetch it another time. After that, everything works offline alike.

AppImage or Flatpak?

AppImage is a single file: download it, make it executable and start it. Nothing is installed. Flatpak integrates with the package manager and updates along with it.

Both bring their own libraries and are therefore independent of your distribution’s release. On Arch systems Flatpak runs perfectly well, which is why there is no separate Arch package.

Frequently asked questions

Questions and answers

How do I remove personal data from a document before asking ChatGPT or Claude?

Open the document in MASCHERA or paste the text, then click “Mask”. Names, AHV numbers, addresses and other personal data are replaced with placeholders such as [FULLNAME_1]. You check the result, copy it into the service of your choice and paste the answer back: MASCHERA puts the real values in again.

Does MASCHERA need a graphics card or an internet connection?

No. Detection runs on an ordinary CPU, with no GPU. While it runs, nothing is downloaded and nothing is sent. The AppImage, the Windows installer and the macOS image carry the model; the Flatpak fetches it once on first start, after you agree.

Which Swiss identifiers does MASCHERA recognise?

The AHV number, UID, IBAN, QR reference, building and dwelling identifiers (EGID/EWID), permit category, number plate and ZSR number, each with its checksum where one exists. In all, 45 types of personal data, in German, French, Italian and English.

Is this anonymisation in the sense of data protection law?

No, and that is deliberate. As long as the dictionary exists, the process can be reversed; under the Swiss FADP (revDSG) the data then remain personal data. That is pseudonymisation. For text that is passed on for good, you mask without a dictionary: then the process can no longer be reversed.

Which files can MASCHERA read?

PDF with a text layer, DOCX, EML, MSG (Outlook), MBOX, TXT, MD, CSV and JSON. A scanned PDF without a text layer returns an error with a reason, not “no personal data found”.

How does MASCHERA differ from Microsoft Presidio?

Presidio is an open framework for developers that detects and masks personal data. It knows identifiers from more than twenty countries, but none from Switzerland; you would have to add them yourself. MASCHERA is a ready-to-use application for Swiss documents, with an interface for checking and restoring the values.

MASCHERAMicrosoft Presidio
Built forSwiss documentsGeneral text, extensible
Swiss identifiersBuilt in, with checksumNone in the list of supported types
FormApplication for Windows, macOS, Linux and DockerPython library and service for your own programs
Runs locallyYesYes
LicenceMIT (source code)MIT

As of October 2026, according to the list of supported types in the Presidio documentation.

Where everything else lives

The technical part is kept up to date there

How well the model measures, how it was trained, how the program is built: all of that lives there and is kept current there.

Legal notice

Responsible

NameRodolfo Semprevivo
CountrySwitzerland
Contactvia GitHub Issues
Webwww.maschera.ch

Purpose

MASCHERA is a tool for masking personal data locally in Swiss documents. It is provided as open software.

This website

This website is hosted by Hostpoint AG in Switzerland. When you visit it, Hostpoint processes technically necessary data such as your IP address in its server logs; details are in Hostpoint’s privacy statement. The website itself sets no cookies, collects no statistics and loads nothing from third-party servers. The download files are hosted on GitHub (GitHub, Inc., USA).

The application

MASCHERA processes your documents exclusively on your own device. No content is transmitted to the publisher or to third parties, no usage data is collected and no cookies are set. The publisher therefore gains no knowledge of the processed data and is not its controller within the meaning of the FADP. Responsibility for the data remains yours. As soon as you paste a masked text into an AI tool, that provider’s terms apply.

Liability

MASCHERA is provided without warranty. Personal data is detected automatically and not exhaustively: it can miss details and masks too much when in doubt. Checking the masked text before passing it on is up to you. Liability for damages arising from use is excluded to the extent permitted by law. The operators of linked sites are responsible for their content.

Licence

Source code MIT, shipped packages AGPL-3.0, model MIT. The source code and the third-party works used, with their licences, are on GitHub.