Private on this device
Local AI · Know the limits Important: this is not frontier-model performance. What to expect

MedMorf runs smaller models on your local hardware, not massive GPU clusters. Expect noticeably lower accuracy, reasoning depth, and consistency on complex tasks.

System Ready

Translate

Translate medical text or documents without sending them off your device.

Accuracy and required review

Small local models can miss medical terminology, numbers and negations. Keep drug names and dosages in the source language when unsure, and verify the translation before use.

View translate benchmarks, metrics and limitations →

1

Choose languages

Select the source and result language.

2

Enter text and translate

The result appears beside your text.

Translate a documentExcel or Word
Drop .xlsx or .docx file here, or browse
Translation model and cache
Checking model status...
Model not in memory

Anonymize

Find and replace personal data in medical documents. Processing stays on this device.

Accuracy and required review

Recall is the share of identifiers found; every missed identifier can expose personal data. Precision measures how many detections were correct; F1 balances precision and recall. Removing names and numbers does not guarantee anonymity: combinations of profession, age, place and clinical details can still identify someone. Review the highlighted mapping and search the output for missed identifiers before sharing it.

View anonymize benchmarks, metrics and limitations →

Detection methodSelected automatically for this device
Auto-detecting best method… Checking your hardware.
Checking WebGPU…
Checking resource headroom…
Advanced settings — model selection
Active pipeline: auto Turn on one detector, one LLM, or both.

NER / detector

CPU-friendly span detectors

LLM

WebGPU Qwen verification

Compare measured recall, precision and F1 →

How it works · models & hardware

LLM only (recommended on WebGPU devices): Qwen3.5 handles all PII detection in a single pass.

NER + LLM: Run a NER model first, then let the LLM verify and catch remaining PII. Useful for additional coverage or comparison.

NER only: Run just the selected NER model. Fastest option, no GPU required, but lower accuracy.

Hardware: LLM modes need a modern GPU or Apple Silicon Mac with WebGPU (Chrome/Edge 113+, Safari 18+). The 4B model needs ~3.9 GB GPU memory; pick a smaller model on devices with limited VRAM. NER-only mode runs on CPU.

  • Qwen3.5 2B (default) — ~2.2 GB VRAM. See the Benchmark page for measured identifier detection scores.
  • Qwen3.5 4B — ~3.9 GB VRAM. Largest browser-feasible option; needs ~4 GB GPU memory. All models are kept ≤4B by design.
  • Multilingual PII NER — ~280 MB. XLM-RoBERTa, no GPU needed. Names, addresses, dates, IDs in 8+ languages.
  • GLiNER PII Edge — ~46 MB. Zero-shot, no GPU needed. Best for English.
  • Multilingual BERT NER — ~100 MB. Lighter general-purpose NER (people, places, organizations).
  • OpenAI Privacy Filter — ~1.5 B params (q4 ≈ 800 MB). OpenAI's bidirectional token classifier with 8 PII categories: person, email, phone, address, date, URL, account number, secret. Runs in-browser via Transformers.js + WebGPU; WASM/CPU is not supported for its quantized embedding op in this browser stack. Primarily English with multilingual robustness reported. Pick it under Advanced settings → NER Model with the NER only or NER + LLM pipeline.

Always manually review the output. First load downloads the selected model; subsequent runs use the browser cache.

Review required. Anonymization can miss identifiers. Check every result before sharing.

1

Add content

Upload a document or paste text below.

Upload document

Drop document here

.pdf, .xlsx, .docx, .txt

Use a mapping file Optional

Drop mapping file

.xlsx or .json

No mapping loaded
Paste text instead
2
Run anonymizationReview every identifier before sharing.

Summarize

Turn medical notes into a structured draft while keeping the source on this device.

Requires WebGPU. The model runs locally in this browser.
Accuracy and required review

Local models can omit clinical facts or introduce unsupported statements. Compare every summary with its source, especially medication, dosage, negation and risk information.

View summarize benchmarks, metrics and limitations →

1

Add source notes

Upload a document or paste the text to summarize.

Upload document

Drop document here

.xlsx, .docx, .txt

Paste text

2

Choose the output

Select a template. The recommended model is chosen automatically.

Checking WebGPU...

3
Create summaryReview the draft against the source.

Speech to text

Record or upload audio and create a private, on-device transcript.

Whisper runs offline in your browser. Audio is never uploaded.
Accuracy and required review

Local speech models can mishear accents, background noise, names and medical terminology. Use short, clear recordings and always proofread numbers, dosages and names.

View speech benchmarks, metrics and limitations →

1

Choose mode and language

Whisper Small is the recommended default.

How transcription works

Workflow: record first, then transcribe. Transcription begins automatically when you stop recording.

Long recordings: 15+ minutes are supported. On a phone, keep Medmorf visible and the screen on; use Dictaphone mode for shorter entries.

  • Whisper Tiny — ~150 MB. Fastest, basic quality.
  • Whisper Base — ~300 MB. Fair quality.
  • Whisper Small (recommended) — ~500 MB. Good quality, best for clinical use.

All models run via WebAssembly (ONNX Runtime). First use downloads the model; subsequent runs use browser cache.

2

Add audio

Record here, or choose an existing audio file.

Record audio

Upload audio

Drop audio file here

.mp3, .wav, .ogg, .webm, .m4a, .flac

3
Transcribe audioA recording transcribes automatically when stopped.

DICOM

Index, inspect, and sort imaging folders locally without uploading patient data.

1 Choose a source folder

Scan settings Optional

2
Scan and indexNothing is changed or copied yet.

Merge PDF

Combine PDF files in the order you choose. Everything stays on this device.

1 Add your PDF files

Drop one or more .pdf files here, or browse

Storage

Prepare for offline work and manage model files stored by this browser.

Prepare for Offline Use

Download all models now while you have internet. Once cached, everything works in airplane mode.

Translation Model NLLB-200 · ~300 MB Translates between 200+ languages
Checking...
NER Model Multilingual PII NER · ~280 MB Detects names, addresses, IDs in 8+ languages
Checking...
Anonymization LLM Qwen3.5 2B · ~2.2 GB Detects and anonymizes PII via WebGPU
Checking...
Speech Model Whisper · ~500 MB Offline speech-to-text transcription
Checking...
OCR Engine Tesseract.js + English traineddata · ~25 MB Text recognition for scanned PDFs (used by PDF anonymization)
Checking...
PDF Engine PDF.js 4.7.76 · ~1.5 MB Reads and rasterizes PDFs (used by PDF anonymization & merge)
Checking...

App Updates

Force-refresh the app code without redownloading model weights. Useful after a new version is deployed.

Note: Private/incognito browser windows discard all caches when closed — including model weights. To keep models between sessions, use a normal window.

Personal Data — Where It Goes

Your documents, text and patient data are never written to disk or browser storage. They exist only in temporary JavaScript memory and are automatically removed.

You upload a file or paste text File is read into JavaScript memory (RAM) only
↓
AI model processes data locally Translation/anonymization runs inside your browser's CPU/GPU
↓
You download the result Output goes to your Downloads folder — you control it
↓
Data is cleared from memory Automatically on page close, or click the button below

Currently in memory

No personal data in memory

Auto-clears when you close or refresh this page
Auto-clears after 30 minutes of inactivity
Never written to Cache API, IndexedDB, localStorage, or cookies
Total storage used Scanning...
Cache API entries —
IndexedDB databases —

Cache API (Model Files)

Translation and NER models are cached here. These are safe AI model weights — no personal data.

Scanning...

IndexedDB (LLM Model Cache)

WebLLM/MLC caches Qwen model weights here. These are safe AI model data — no personal data.

Scanning...

This will remove all cached models. You will need to re-download them on next use.

Benchmark

Measured model quality, grouped by tool. Explore the results or run the benchmarks yourself.

Open this tab to load the benchmark.