No server in the loop.
There is no backend that could see your input. Detection and masking execute in the same browser process where you type. You can keep DevTools → Network open while you work.
$ Names, addresses, IBANs, API keys, secrets — replaced with stable placeholders directly in your browser tab. Send the redacted version to ChatGPT or Claude. Paste the response back. Originals get restored locally. Nothing transits a server we control.
Hallo Martin Müller, anbei die Rechnung an martin@müller.de. Bitte überweisen auf IBAN DE89 3704 0044 0532 0130 00.
Hallo [PERSON_1], anbei die Rechnung an [EMAIL_1]. Bitte überweisen auf IBAN [IBAN_1].
There is no backend that could see your input. Detection and masking execute in the same browser process where you type. You can keep DevTools → Network open while you work.
Every mask writes a local mapping. Paste the LLM response back and Redactly substitutes placeholders for the real values. The mapping never leaves this tab.
Regex for structured patterns (IBANs, emails, API keys). NER for free-form names and locations. WebLLM for context-aware detection on the trickiest cases. Pick what you need.
.txt, .md, .eml, .pdf, .docx — all parsed in the browser via WebAssembly. No cloud conversion, no upload to a document service. What you load stays where you loaded it.
The entire source tree is on GitHub. "Trust us" is not a satisfying answer to a privacy question. "Read the code" is.
German and English patterns shipped. NER mode extends seamlessly to ~100 more languages. No locale calls home. Translation happens inside your machine.
Email-Entwurf, Code-Snippet, Log-Dump, eine PDF mit Vertragstext. Redactly liest mit — aber nur in deinem Browser-Tab. Erkennt automatisch, was nach einer Person, Email, IBAN, einem Token oder Secret aussieht.
„Martin Müller" wird zu [PERSON_1]. Dein AWS-Key wird zu [SECRET_3]. Du fügst den maskierten Text in ChatGPT oder Claude ein. Das Modell sieht Platzhalter — und nur Platzhalter.
Du fügst die LLM-Antwort in Redactly ein. Platzhalter werden gegen deine echten Werte ersetzt, weil das Mapping lokal beim Maskieren entstanden ist und diesen Tab nie verlassen hat.
„Deine Daten gehören dir.
Dieses Werkzeug ist die Architektur, die das wahr macht."
Kein Server berührt deine Eingabe. Erkennung und Maskierung laufen im selben Prozess wie dein Browser-Tab.
Öffne die DevTools. Schau in den Netzwerk-Tab. Tippe, was du willst. Es geht keine POST-Anfrage raus, die deinen Text enthält.
MIT. Forke es, hoste es selbst, lies den Code. Vertrauen ist keine Antwort. Lesen schon.