Back to docs

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

ProviderTypeNotes
Whisper ONNXLocalDefault. Swedish-optimized KB Whisper model, runs in-process
faster-whisperLocalPython-based, high performance
whisper.cppLocalC++ implementation
OpenAI WhisperCloudOpenAI API
DeepgramCloudDeepgram Nova
Google Cloud SpeechCloudGoogle Speech-to-Text
Berget AICloudEU sovereign cloud, Swedish Whisper

Note Generation

ProviderTypeNotes
OllamaLocalAny local LLM (Llama 3.1, Mistral, etc.)
OpenAICloudGPT-4o and other models
Anthropic ClaudeCloudClaude 3.5 Sonnet and other models
Google GeminiCloudGemini Pro and other models

Quick Start

Web App

Terminal window
git clone https://github.com/eir-space/eir-open.git
cd eir-open/apps/open-medical-scribe
npm install
npm start
# Open http://localhost:8787

Desktop App

Download the pre-built Electron app:

Or build from source:

Terminal window
# Light build (no bundled models)
npm run electron:build:light:mac
# Full build (bundled Whisper + LLM)
npm run models:download:whisper
npm run models:download:llm
npm run electron:build:full:mac

CLI Tools

Terminal window
# Transcribe an audio file
node cli/scribe-transcribe.js --input recording.wav
# Generate a note from a transcript
node cli/scribe-note.js --input transcript.txt --style soap

Note Formats

FormatUse Case
SOAPGeneral clinical encounters — Subjective, Objective, Assessment, Plan
H&PHistory & Physical — comprehensive initial evaluations
ProgressFollow-up visits and ongoing care
DAPBehavioral health — Data, Assessment, Plan
ProcedureSurgical and procedural documentation
JournalanteckningSwedish clinical format — Kontaktorsak, Anamnes, Status, Bedömning, Åtgärd

Configuration

All settings can be configured via environment variables or the web UI settings page:

Terminal window
# Transcription
TRANSCRIPTION_PROVIDER=whisper-onnx # or openai, deepgram, google, berget, whisper.cpp
WHISPER_MODEL=KBLab/kb-whisper-large # HuggingFace model ID
# Note generation
NOTE_PROVIDER=ollama # or openai, anthropic, gemini
NOTE_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)