I build a legal-tech product where an AI assistant answers questions about real cases: client names, national IDs, IBANs, phone numbers, the lot. That conversation goes to an LLM I do not control. Sending it raw is not an option.
The obvious fix, a pile of regexes that blank out anything that looks like an ID, breaks in two directions at once. It has false positives (it redacts things that were not IDs) and false negatives (it misses the ones with odd formatting), and worst of all it is one-way: once you have blanked the data you cannot get a coherent answer back, because the model is now reasoning about [REDACTED] talking to [REDACTED].
I wanted something that detects PII properly, swaps it for stable placeholders the model can reason about, and swaps the real values back into the answer. That is Laranon.
How to install
It ships as a single Composer package:






