Turn clinical text into structured insight with one line of code.
Entity extraction, PII de-identification, and 1,000+ specialized medical models that run entirely on
your own hardware — from a one-liner in Python to a native Swift app on iPhone, powered by Apple MLX.
No cloud. No vendor lock-in. No patient data leaving your network.
1,000+ models · 12 languages · 247 PII checkpoints · 100% on-device · Apache-2.0
Clinical text never leaves your device. Complete privacy with zero network calls. Process sensitive patient data securely anywhere.
Curated biomedical & clinical NER models covering diseases, drugs, anatomy, genes, and more. Many outperform proprietary stacks.
12 languages including English, Spanish, French, German, Italian, Dutch, Hindi, Arabic, Japanese, and more. 247 PII checkpoints total.
MLX acceleration for 24-33x faster inference on Apple Silicon. Native iOS/macOS apps via OpenMedKit with CoreML fallback.
Simple Python API, Dockerized REST service, or batch processing pipelines. Zero configuration for most use cases.
Apache-2.0 license. Your infrastructure, your data. Export to CoreML for deployment anywhere. Complete freedom.
| Feature | OpenMed | Cloud medical APIs |
|---|---|---|
| Runs on your device / servers | ✅ | ❌ |
| Patient data leaves your network | Never | Sent to the vendor |
| Cost | Free & open-source | Per-call pricing |
| Specialized medical models | 1,000+ | Limited |
| Languages | 12+ | Varies |
| Offline / air-gapped | ✅ | ❌ |
| Apple Silicon (MLX) acceleration | ✅ | n/a |
| Native iOS / macOS apps | ✅ via OpenMedKit | ❌ |
| Vendor lock-in | None — Apache-2.0 | ✅ Yes |
from openmed import analyze_text
result = analyze_text(
"Patient started on imatinib for chronic myeloid leukemia.",
model_name="disease_detection_superclinical",
)
for entity in result.entities:
print(f"{entity.label:<12} {entity.text:<28} {entity.confidence:.2f}")
# DISEASE chronic myeloid leukemia 0.98
# DRUG imatinib 0.95
A state-of-the-art clinical NER model running locally — no API key, no network call.
pip install "openmed[hf]"
pip install "openmed[hf,service]"
pip install "openmed[mlx]"
from openmed import analyze_text
analyze_text(
"Patient received 75mg "
"clopidogrel for NSTEMI.",
model_name=
"pharma_detection_superclinical",
)
uvicorn openmed.service.app:app \
--host 0.0.0.0 --port 8080
# Endpoints:
GET /health
POST /analyze
POST /pii/extract
POST /pii/deidentify
from openmed import BatchProcessor
p = BatchProcessor(
model_name=
"disease_detection_superclinical",
group_entities=True,
)
p.process_texts([...])
Stars
Forks
Open Issues
Subscribers
Language