Documentation
Open Medical Scribe
Open-source AI medical scribe — real-time transcription and structured note generation with full local privacy.
An open-source AI medical scribe that transcribes clinical encounters in real-time and generates structured medical notes. Runs fully local for maximum privacy — no patient data ever leaves your machine.
Perfect for: Clinicians, healthtech developers, medical NLP researchers.
Key Features
Real-time transcription
Whisper ONNX runs locally with Swedish-optimized KB Whisper model. Streaming support with live partial results.
Structured notes
Generates SOAP, H&P, Progress, DAP, Procedure, and Swedish Journalanteckning notes from transcripts.
Pluggable providers
Swap transcription and LLM backends with a single config change — local or cloud.
Desktop app
Electron app available in Light (~1 GB) and Full (~1.9 GB with bundled models) builds for macOS.
CLI tools
scribe-transcribe and scribe-note for scripting and batch workflows.
Web UI
Browser-based interface with settings page for all providers and configuration.
Privacy-first
Entire pipeline runs on your own hardware in local mode. No cloud required.
Swedish support
Optimized for Swedish clinical encounters with KB Whisper and Journalanteckning format.
Supported Providers
Transcription
| Provider | Type | Notes |
|---|---|---|
| Whisper ONNX | Local | Default. Swedish-optimized KB Whisper model, runs in-process |
| faster-whisper | Local | Python-based, high performance |
| whisper.cpp | Local | C++ implementation |
| OpenAI Whisper | Cloud | OpenAI API |
| Deepgram | Cloud | Deepgram Nova |
| Google Cloud Speech | Cloud | Google Speech-to-Text |
| Berget AI | Cloud | EU sovereign cloud, Swedish Whisper |
Note Generation
| Provider | Type | Notes |
|---|---|---|
| Ollama | Local | Any local LLM (Llama 3.1, Mistral, etc.) |
| OpenAI | Cloud | GPT-4o and other models |
| Anthropic Claude | Cloud | Claude 3.5 Sonnet and other models |
| Google Gemini | Cloud | Gemini Pro and other models |
Quick Start
Web App
git clone https://github.com/eir-space/eir-open.gitcd eir-open/apps/open-medical-scribenpm installnpm start# Open http://localhost:8787Desktop App
Download the pre-built Electron app:
- Light Build (~1 GB) — Clean app, downloads Whisper model on first run
- Full Build (~1.9 GB) — Bundled Whisper ONNX model, works offline immediately
Or build from source:
# Light build (no bundled models)npm run electron:build:light:mac
# Full build (bundled Whisper + LLM)npm run models:download:whispernpm run models:download:llmnpm run electron:build:full:macCLI Tools
# Transcribe an audio filenode cli/scribe-transcribe.js --input recording.wav
# Generate a note from a transcriptnode cli/scribe-note.js --input transcript.txt --style soapNote Formats
| Format | Use Case |
|---|---|
| SOAP | General clinical encounters — Subjective, Objective, Assessment, Plan |
| H&P | History & Physical — comprehensive initial evaluations |
| Progress | Follow-up visits and ongoing care |
| DAP | Behavioral health — Data, Assessment, Plan |
| Procedure | Surgical and procedural documentation |
| Journalanteckning | Swedish clinical format — Kontaktorsak, Anamnes, Status, Bedömning, Åtgärd |
Configuration
All settings can be configured via environment variables or the web UI settings page:
# TranscriptionTRANSCRIPTION_PROVIDER=whisper-onnx # or openai, deepgram, google, berget, whisper.cppWHISPER_MODEL=KBLab/kb-whisper-large # HuggingFace model ID
# Note generationNOTE_PROVIDER=ollama # or openai, anthropic, geminiNOTE_STYLE=soap # or hp, progress, dap, procedure, journalanteckning
# API keys (only needed for cloud providers)OPENAI_API_KEY=sk-...ANTHROPIC_API_KEY=sk-ant-...GOOGLE_API_KEY=...Architecture
open-medical-scribe/ src/ providers/ transcription/ # Pluggable transcription backends note/ # Pluggable LLM note generators services/ scribeService.js # Core pipeline: transcribe -> generate note promptBuilder.js # Note-style-specific LLM prompts privacy.js # PHI redaction utilities server/ createApp.js # HTTP server and routes streamHandler.js # WebSocket streaming public/ # Web UI electron/ # Desktop app wrapper cli/ # CLI tools test/ # Tests (Node.js built-in runner)