Ambient AI medical scribe for ENT physicians — record a visit, get a structured clinical note.
Live Demo · Roadmap · Design Doc · Quick Start
ENT Scribe listens during patient visits, transcribes the conversation in real time, and generates a structured clinical note ready to paste into your EHR. It's built for ENT (Ear, Nose & Throat) physicians -- with specialty-specific templates, a clean recording UI, and a secure Supabase backend.
Three ways to use ENT Scribe:
- Free Trial -- sign up and generate up to 5 clinical notes using platform-provided API keys. No setup required.
- Bring Your Own Key (BYOK) -- add your own Anthropic and Deepgram API keys in Settings for unlimited usage. You pay the AI providers directly at their published rates.
- Managed Deployment -- need a white-label or practice-wide installation? Contact gerritroska@ithiel.co for custom deployment.
- Real-time transcription — audio is streamed to Deepgram's
nova-3-medicalmodel as you speak - Claude-powered note generation — structured clinical notes drafted from the transcript, nothing inferred
- 5 built-in ENT templates — New Patient, Sinus/Rhinitis, Hearing Evaluation, Nasal Endoscopy, Post-Op
- Custom templates — create and save your own, stored securely in Supabase
- Glassmorphism UI — clean, accessible interface built with Tailwind v4 and Framer Motion
- Auth & accounts — secure login via Supabase Auth (email/password + magic link)
- EHR-ready output — one-click copy to clipboard for any EHR system
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) + TypeScript |
| Styling | Tailwind CSS v4 + Framer Motion |
| Auth & Database | Supabase (Postgres + auth + storage) |
| Transcription | Deepgram (nova-3-medical) |
| Note generation | Anthropic Claude API |
| Error monitoring | Sentry + Vercel Analytics |
| Deployment | Vercel |
Already have an account? Go to Settings > API Keys and add your own:
- Anthropic API key -- get one at console.anthropic.com (for note generation)
- Deepgram API key -- get one at console.deepgram.com (for transcription)
Keys are encrypted with AES-256-GCM before storage. ENT Scribe never sees your keys in plaintext after saving.
- Node.js 18+
- Supabase project
- Anthropic API key
- Deepgram API key
git clone https://github.com/GerritRoska/ent-scribe.git
cd ent-scribe
npm installCopy .env.example to .env.local and fill in your values:
cp .env.example .env.localMinimum required keys:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Anthropic -- note generation
ANTHROPIC_API_KEY=sk-ant-...
# Deepgram -- transcription
DEEPGRAM_API_KEY=your_deepgram_key
# Auth secret (any random string)
AUTH_SECRET=your_random_secret
# Encryption key for BYOK API key storage (required)
DATA_ENCRYPTION_KEY=your_64_char_hex_key # generate with: openssl rand -hex 32See .env.example for all optional variables (Sentry, etc.).
Run the migrations against your Supabase project:
npx supabase db pushOr apply them manually from supabase/migrations/.
npm run devOpen http://localhost:3000.
npm run dev # Start dev server
npm run build # Production build
npm run typecheck # TypeScript check (no emit)
npm run lint # ESLint
npm run lint:fix # ESLint with auto-fix
npm run format # Prettier write
npm run test:unit # Jest unit tests
npm run test:e2e # Playwright E2E tests
npm run a11y:test # axe-core WCAG AA audit
npm run lighthouse # Lighthouse CI auditent-scribe/
├── app/ # Next.js App Router (pages + API routes)
│ ├── auth/ # Login, signup, reset-password
│ ├── record/ # Recording and note generation
│ └── api/ # Server-side API routes
├── components/ # Reusable React components
├── lib/ # Supabase client, auth helpers, utilities
├── hooks/ # Custom React hooks
├── types/ # Shared TypeScript types
├── supabase/migrations/ # Database migration files
├── tests/ # Unit, integration, E2E, a11y tests
└── docs/ # Full project documentation
One-click deploy to Vercel:
Add these environment variables in your Vercel project settings (Settings → Environment Variables):
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
ANTHROPIC_API_KEY
DEEPGRAM_API_KEY
AUTH_SECRET
DATA_ENCRYPTION_KEY
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
Vercel automatically deploys every push to main. Pull request previews are generated for all other branches.
| Doc | Description |
|---|---|
docs/QUICK_START.md |
Fastest path to a running local environment |
docs/SOFTWARE_DESIGN_DOCUMENT.md |
Architecture, DB schema, API design, full scope |
docs/IMPLEMENTATION_ROADMAP.md |
Six-week build plan with checkpoint QA gates |
docs/THEME.md |
Design system — colors, glassmorphism, typography |
docs/CODING_STANDARDS.md |
TypeScript rules, security, error handling patterns |
docs/PHASE2_DESIGN_DOCUMENT.md |
EHR integrations, FHIR/HL7, Phase 2 roadmap |
docs/FAQ.md |
Common questions and troubleshooting |
ENT Scribe is source-available under the BSL 1.1 license. If you need:
- Bug reports or feature requests -- email gerritroska@ithiel.co
- Custom deployment for your practice -- white-label installations with your branding, custom templates, and EHR integration
- Enterprise licensing -- commercial use beyond the BSL 1.1 grant
Contact: gerritroska@ithiel.co
The current build targets v1 — a complete, production-ready scribe for ENT practices.
Phase 2 (planned) extends into:
- EHR integrations via FHIR/HL7 (Epic, Cerner, eClinicalWorks)
- Physician preference learning and adaptive note styles
- ICD-10 gap detection and billing code suggestions
- Multi-provider practice management
See docs/PHASE2_DESIGN_DOCUMENT.md for the full vision.
- Audio is streamed to Deepgram for transcription — review their security and trust center.
- Transcripts are sent to Anthropic's API for note generation — review Anthropic's privacy policy.
- Always review generated notes before adding them to a patient record.
- This software is not FDA cleared. It is intended to assist documentation, not replace clinical judgment.
- Deployers are responsible for their own HIPAA compliance obligations.
BSL 1.1 -- Gerrit Roska
Licensed under the Business Source License 1.1. The source code becomes available under the MIT license on 2030-03-05. See LICENSE for details.