Skip to content

GerritRoska/ent-scribe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ENT Scribe

Ambient AI medical scribe for ENT physicians — record a visit, get a structured clinical note.

BSL 1.1 License Next.js 16 Supabase Live Demo PRs Welcome

Live Demo · Roadmap · Design Doc · Quick Start


What is ENT Scribe?

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:

  1. Free Trial -- sign up and generate up to 5 clinical notes using platform-provided API keys. No setup required.
  2. 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.
  3. Managed Deployment -- need a white-label or practice-wide installation? Contact gerritroska@ithiel.co for custom deployment.

Features

  • Real-time transcription — audio is streamed to Deepgram's nova-3-medical model 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

Tech stack

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

Getting started

For users (BYOK)

Already have an account? Go to Settings > API Keys and add your own:

Keys are encrypted with AES-256-GCM before storage. ENT Scribe never sees your keys in plaintext after saving.

For developers (self-hosting)

Prerequisites

1. Clone and install

git clone https://github.com/GerritRoska/ent-scribe.git
cd ent-scribe
npm install

2. Configure environment variables

Copy .env.example to .env.local and fill in your values:

cp .env.example .env.local

Minimum 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 32

See .env.example for all optional variables (Sentry, etc.).

3. Set up the database

Run the migrations against your Supabase project:

npx supabase db push

Or apply them manually from supabase/migrations/.

4. Run the dev server

npm run dev

Open http://localhost:3000.


Development scripts

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 audit

Project structure

ent-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

Deployment

One-click deploy to Vercel:

Deploy with 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.


Documentation

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

Feedback & Customization

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


Roadmap

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.


Privacy & disclaimer

  • 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.

License

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.

About

Ambient AI medical scribe for ENT physicians. Records visits, transcribes with Deepgram, generates structured clinical notes with Claude. Source-available under BSL 1.1.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors