Ask AI without
exposing people.
Mask Aadhaar, PAN, UPI, names and more on-device. Only safe text hits the cloud.
Wrap a prompt, call any LLM, restore the reply. Raw values never leave the device.
Watch Maskara mask
before the cloud sees it.
Detect sensitive spans, swap them for safe twins, restore after the model replies. Hover the demo to pause.
The NER model finds every sensitive span in the prompt, on-device.
Raw values swap for safe twins. Only masked text leaves the device.
Cloud reply comes back; originals are stitched in locally.
BERT-grade,
India-first.
A BERT token-classification checkpoint tuned for Indian PII formats and bilingual Hinglish text. Public on Hugging Face, Apache-2.0 licensed, and built to drop in front of any LLM call.
Two ways to run it
Detect tokens straight from Transformers, or wrap the prompt path with the masking SDK.
from maskara import Maskara maskara = Maskara() # loads the 108.9M-param NER model safe, ctx = maskara.protect(prompt) # PII swapped for safe twins reply = llm.complete(safe) # only masked text hits the cloud final = maskara.restore(reply, ctx) # originals re-inserted locally
from transformers import (AutoTokenizer,
AutoModelForTokenClassification, pipeline)
name = "somukandula/maskara"
tok = AutoTokenizer.from_pretrained(name)
model = AutoModelForTokenClassification.from_pretrained(name)
ner = pipeline("token-classification", model=model, tokenizer=tok)
text = "Mera naam Rohit Kumar hai, Aadhaar 4220-4122-1200 aur email rohit.k@gmail.com."
print(ner(text))
Hugging Face
BERT token classification · Safetensors · F32 · Apache-2.0 license.
Built for code-mixed text
Trained on Hinglish and English-mixed prompts, so it catches PII even when sentences switch languages mid-stream.
Drop-in middleware
Wrap a prompt, call your provider, restore the response. No new app architecture, no data sent out to detect.
17 entity types
Five Indian-specific formats added in this checkpoint, on top of twelve global identifiers.