Frequently Asked Questions

Everything you need to know about offline document anonymization with anonym.plus.

Security & Privacy

Is my data safe?
Yes. Documents are processed entirely locally. The PII detection engine runs on your machine. Encryption keys never leave your vault (zero-knowledge architecture — the frontend only references keys by ID, actual key values stay in the Rust backend). All storage is encrypted with AES-256-GCM.
Does the app need an internet connection?
No. The local Presidio engine handles PII detection offline. Internet is only needed for account sync, model downloads, and app updates. All core anonymization and deanonymization works fully offline.
What happens to my data if I lose my device?
Your vault is encrypted. Without your PIN or recovery phrase, data cannot be accessed. If you have a cloud account, presets and encryption key metadata sync across devices.
What is the recovery phrase and why is it important?
During setup, a 24-word recovery phrase (BIP39-style) is generated. This is the ONLY way to recover your vault if you forget your PIN. Write it down and store it safely — it is shown once during setup and can be viewed later in Settings → Security only while the vault is unlocked.
What happens if I forget my PIN?
Use your 24-word recovery phrase to unlock the vault. After 3 failed PIN attempts, the app suggests using the recovery phrase. If you've lost both the PIN and the recovery phrase, your vault data cannot be recovered.
Does the vault lock automatically?
Yes. The vault locks automatically after 15 minutes of inactivity (no mouse, keyboard, or scroll events). You can also lock it manually from the header. In demo mode, auto-lock is disabled since the demo user doesn't set a PIN.
Can I move my vault data to an encrypted drive?
Yes. Go to Settings → Security → Change Data Directory to move your vault databases to a different location (e.g., a VeraCrypt or BitLocker encrypted volume). The app requires a restart after moving.
How do I back up my data?
Go to Settings → Security → Backup & Restore. 'Export Data' creates a ZIP of your vault databases. 'Import Data' replaces existing data (max 100 MB). Import requires an app restart and warns you that it will overwrite all current data.
How do I delete all local data?
Settings → Security → Delete All Local Data. You must type 'DELETE ALL LOCAL DATA' to confirm. This deletes the encrypted vault, history, recovery phrase, all local settings, and cached API credentials. It does NOT affect your online account or cloud-synced data. The app exits after deletion.

Anonymization

What operators are available for anonymization?
Five operators: Replace (substitutes with <ENTITY_TYPE> or custom text), Redact (removes entirely), Mask (replaces with * characters, configurable count), Hash (SHA-256, SHA-512, or MD5 — irreversible), and Encrypt (AES reversible encryption using a stored key — only this one can be decrypted later).
What file formats are supported?
Input: PDF, DOCX, XLSX/XLS, TXT, CSV, JSON, XML, and images (PNG, JPG, BMP, TIFF). Output: PDF, DOCX, TXT, or same as input. Note: .txt files require at least a Basic license; all other document formats require a Pro license.
What are the file size limits?
PDF: 50 MB, TXT: 50 MB, DOCX: 30 MB, CSV: 30 MB, JSON: 30 MB, XML: 30 MB, XLSX: 20 MB or 100,000 rows. Images: 10 MB and 25 megapixels. Documents must contain at least 10 characters of text to be analyzed.
How are anonymized files named?
By default: {baseName}_anonymized_{timestamp}.{ext}. In batch mode, you can customize the naming pattern using template variables. You can also choose to replace the original file instead.
Why are some entities not detected?
Several possible causes: 1) The confidence threshold in your preset may be too high — lower it for more detections. 2) The entity type may be disabled globally in Settings → Entities. 3) For custom entities, verify the regex pattern matches your data using the built-in pattern tester. 4) Named entity recognition uses the English NER model — person name detection works best with English/Latin names, though pattern-based entities (phones, IBANs, emails) work in all languages.
What happens when I select the 'encrypt' operator but have no encryption key?
The app automatically falls back to the 'replace' operator with <ENTITY_TYPE> placeholders to prevent data loss. You'll see the entity anonymized but not encrypted. Create a key in Settings → Encryption Keys to use encryption.

Deanonymization

How do I decrypt an anonymized document?
Switch to Deanonymize mode. You have three options: drop a file, paste text directly, or select from processing history. The app auto-matches against your history to find the correct encryption keys. Click Deanonymize to restore the original PII values.
How does auto-matching work?
When you paste or drop text, the app searches your history using two strategies: 1) Exact match — if the text matches a previous output exactly. 2) Fuzzy match — checks if at least 50% of encrypted chunks from a history entry appear in your text. This means you can decrypt documents even after they've been edited by collaborators.
Can I decrypt a document that was edited after anonymization?
Yes. The app uses fuzzy matching to find encrypted chunks in modified text. As long as the encrypted blocks themselves are intact (not partially cut or edited), they can be decrypted. Surrounding text can be freely added, removed, or rearranged.
What is the Encrypt → Share → Edit → Decrypt workflow?
1) Anonymize a document with the 'encrypt' operator. 2) Share the anonymized document with collaborators. 3) They edit around the encrypted chunks. 4) You receive it back and drop it in Deanonymize → File Drop. 5) The app auto-detects encrypted chunks, loads keys from history, and decrypts. This enables secure collaboration where only you can see the original PII.
What if some encrypted text was accidentally deleted from the shared document?
The app decrypts all intact encrypted chunks and skips any that are missing or damaged. You'll see a count of missing chunks and a warning, but the rest of the document is fully restored (partial recovery).
Do I need to remember which encryption key I used?
No. The app stores the key mapping in your vault history. When you drop a document for deanonymization, it automatically selects the correct key for each entity type.
Why does deanonymization say 'No placeholders found'?
The pasted text doesn't contain entity placeholders (<PERSON>, etc.) or recognizable encrypted chunks. If you used the encrypt operator, select the entry from the 'From History' tab instead — the encrypted entity positions are stored there. Note: history stores only the first 10,000 characters, so very long documents may be truncated.

Encryption Keys

How does zero-knowledge key management work?
Encryption key values never leave the Rust backend. The frontend only stores key metadata (name, ID, entity type, usage count). When you encrypt, the frontend sends a key ID (not the key value) to the Rust backend, which resolves the actual key material. This means even if someone accessed the frontend memory, they could not extract your encryption keys.
What key lengths are available?
128-bit (16 bytes), 192-bit (24 bytes), and 256-bit (32 bytes). 256-bit is recommended and is the default for new keys.
Can I scope encryption keys to specific entity types?
Yes. When creating a key, you can assign it to a specific entity type (e.g., only for PERSON, only for US_SSN) or set it to 'ALL' (default). Entity-scoped keys appear when you select the encrypt operator for that entity type.
What happens when I rotate a key?
Rotating generates new key material. The old key value is permanently replaced. Documents encrypted with the old key will need the old key value for deanonymization — so only rotate if you've saved the old key or no longer need to decrypt old documents. The new key hex is shown once.
Why can I only see my encryption key once?
For security, generated and rotated key values are displayed only once with a 30-second auto-hide countdown. Copy and store the key safely before dismissing. This prevents key material from lingering in the UI.

Batch Processing

How does batch processing work?
Batch mode processes multiple files at once. Configure concurrency (1–5 parallel files, default 2), error handling (continue or stop on error), auto-approve vs manual review, output format, and naming pattern. Only one batch can run at a time. Requires a Pro license.
What is auto-approve mode in batch?
When auto-approve is enabled, all detected entities are automatically accepted without manual review. You can configure a global operator (replace/redact/mask/hash/encrypt) or per-entity-type operators. When disabled, each file pauses at the review step for you to check and approve entities.
Can I export batch results?
Yes. Choose between ZIP (all files bundled), folder (saves to a date-stamped subfolder), or individual files. You can also export a processing summary in JSON, CSV, or both formats.
What happens if a file fails during batch processing?
Depends on your error mode setting. 'Continue' marks the failed file as error and processes the rest. 'Stop on error' halts the entire batch. Failed files can be retried individually.

Presets

How many presets are available?
Over 120 built-in presets across 7 categories: Auto (5), Country-specific (55+), Regional multi-country (12), Technical/DevSecOps (14), Industry (13), Healthcare (3), and Financial (4). Each preset configures which entity types to detect, the confidence threshold, and optional per-entity operators.
Can I create my own presets?
Yes. Go to Settings → Presets → Create Custom Preset. Select entity types (including your custom entities), set a confidence threshold (50–100%), configure per-entity operators, and choose a detection language. You can also duplicate any built-in preset as a starting point.
What does the confidence threshold do?
The threshold (50–100%) controls how confident the detection engine must be before reporting an entity. Lower thresholds catch more entities but may have false positives. Higher thresholds are more precise but may miss some entities. Financial presets use 0.95, development presets use 0.70.

Custom Entities

How do custom entities work?
Go to Settings → Custom Entities to define your own PII types using regex patterns (e.g., employee IDs, internal codes, project numbers). Each entity can have up to 10 patterns, context words for better matching, and a confidence score. Custom entities are detected alongside the 200+ built-in types and can use all operators including encryption.
What are the limits for custom entities?
Maximum 50 custom entities, 10 patterns per entity, 20 context words per entity. Regex patterns are capped at 500 characters. Entity names must be UPPERCASE_WITH_UNDERSCORES format (2–64 chars). Patterns are validated against ReDoS (catastrophic backtracking) to prevent UI freezes.
Can I import/export custom entities?
Yes. Export saves all custom entities as a JSON file (the app warns you that patterns will be in plaintext). Import accepts JSON files up to 1 MB, regenerates IDs, validates against limits, and reports how many were imported, skipped, or errored.

Images

What image formats are supported?
PNG, JPG/JPEG, BMP, and TIFF. Maximum file size is 10 MB and maximum resolution is 25 megapixels.
How does image anonymization work?
Two-step process: 1) Analyze — Tesseract OCR extracts text with character-level bounding boxes, then the PII engine detects entities. 2) Redact — colored rectangles are drawn over detected PII regions. You choose the fill color (black, white, red, green, blue, gray). Output is saved as a PNG file.
Why does image anonymization not work well on photos of my monitor?
Photos of screens produce moiré patterns, glare, reflections, and low contrast that significantly degrade OCR accuracy. Use screenshots (Print Screen, Snipping Tool, etc.) or direct digital exports instead.
Does image anonymization detect handwritten text?
No. The OCR engine (Tesseract) is optimized for printed and typed text. Handwritten text will likely not be detected or may produce unreliable results.
Can I anonymize images in batch mode?
Currently, image anonymization processes one image at a time. Batch mode supports document formats (PDF, DOCX, etc.) but not images.

Models & Languages

How many language models are available?
23 spaCy-based language models: English (built-in), German, Spanish, French, Italian, Portuguese, Dutch, Polish, Romanian, Danish, Greek, Finnish, Croatian, Lithuanian, Macedonian, Norwegian, Russian, Swedish, Ukrainian, Japanese, Chinese, Korean, and a multi-language model. Sizes range from 15–54 MB.
Can I download additional language models offline?
Model downloads require an internet connection. Once downloaded, models work fully offline. You can also import models from .tar.gz, .gz, or .zip files if you have them locally.
How many UI languages are supported?
The user interface supports 48 languages. This is separate from the NLP models — the UI language is for menus and labels, while NLP models are for PII entity detection.

History

How long is processing history kept?
History is auto-cleaned after 90 days or when the entry limit (1,000 entries) is reached. The base retention ensures the most recent 500 entries are always kept. History deletion is permanent for privacy reasons.
Is the full document stored in history?
No. Only the first 10,000 characters of input and output text are stored in history. Very long documents will be truncated. The full entity positions and encrypted values are stored to enable deanonymization.

Licensing

What features are available in the free demo?
The demo gives you 30 minutes of access with basic anonymization, encryption, and deanonymization — text mode only. File processing, batch mode, and image anonymization are not available in the demo. No account needed.
How do I activate a license?
Three ways: 1) Paste the license key in Settings → License. 2) Import a license file (.license, .lic, .key, .txt, .json). 3) Click the activation link from your email — the anonym-plus:// deep link activates automatically.
What features require which plan?
Free: text-mode, encryption, deanonymization, 1 machine. Basic: adds .txt file support, 3 machines. Pro: adds all file formats, batch processing, 3 machines. Expert: adds image anonymization, 5 machines.
Is there a cloud or API version of anonym.plus?
Yes. anonym.legal offers the same anonymization engine as a managed cloud service with a developer API — for workflows that require batch processing via REST or integration into server infrastructure. anonym.plus and anonym.legal are part of the anonymize.solutions product family.

Updates

How do I update the app?
The app checks for updates automatically every 24 hours. When available, a notification appears in Settings → About (and an animated dot on the Settings button). Click 'Download & Install' to update (~110 MB download). The app closes and restarts with the new version.
Can I update the portable version?
Auto-updates are not supported for the portable (.zip) version. You'll see a notification directing you to download the latest version manually from the GitHub Releases page.
What is a major upgrade warning?
When a new version has a higher major version number (e.g., v8 to v9), the app warns that your license may only cover the current major version. Basic features remain available, but you may need to upgrade your license for the new version's features.

Troubleshooting

The PII detection engine is not running. What should I do?
Go to Settings → Advanced and click 'Restart PII Engine'. If it still fails, check Settings → About for engine status. Open the debug log (Ctrl+Shift+D) for detailed error messages. Try restarting the app completely.
The app shows a white screen.
Try restarting the app. If it persists, reset the vault in Settings → Security. As a last resort, use 'Delete All Local Data' to factory-reset.
My custom entities are not being detected.
Check: 1) The entity is enabled in Settings → Custom Entities. 2) The regex pattern matches your test data (use the built-in pattern tester). 3) The pattern isn't flagged as dangerous for ReDoS — the app skips these for safety. 4) When using presets with custom entities, the app automatically detects all entity types including custom ones.
Deanonymization fails with 'Decryption failed'.
The encryption key doesn't match. Verify the correct key is selected — check Settings → Encryption Keys. If the key was rotated, you need the old key value. You can also enter a hex key manually in the key selector if you have a backup.

58 questions across 13 categories. Can’t find your answer? Contact us.