- Python 36.2%
- JavaScript 35.7%
- CSS 14.3%
- HTML 13.1%
- Batchfile 0.4%
- Other 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Replace Inter/JetBrains Mono CDN fonts with the browser's built-in monospace stack (ui-monospace/Cascadia Code/Consolas/Segoe UI Mono/Roboto Mono) so the frontend has zero external network calls. Updates BOM.md to reflect the removed CDN dependency and refreshed pip version after the audit fix. |
||
| .dockerignore | ||
| .gitignore | ||
| AGENTS.md | ||
| app.js | ||
| ARCHITECTURE.md | ||
| BOM.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| favicon.svg | ||
| index.html | ||
| MODELS.md | ||
| README.md | ||
| recorder-worklet.js | ||
| requirements.txt | ||
| run_server.bat | ||
| server.py | ||
| style.css | ||
| test_model.wav | ||
DeBrief
A local, self-hosted meeting recorder that transcribes audio with Whisper — fully offline — and can optionally generate AI summaries, meeting notes, and translations from the finished transcript.
Record a meeting or upload an audio file. Transcription runs in the background (even if you close the tab), with live captions appearing as you record and the transcript streaming in as it's processed. Everything persists as plain files on disk — no database required.
Features
- Record or upload — microphone recording (with pause/resume) or drag-and-drop file upload (WAV, MP3, M4A, OGG, FLAC)
- Live captions while recording — provisional transcription appears within seconds, refined into an accurate final transcript afterward
- Background transcription — jobs keep running even if you close the browser tab; progress streams live via Server-Sent Events
- Local speech-to-text — faster-whisper (CTranslate2), four model sizes (base/small/medium/large), GPU-accelerated when available, automatic CPU fallback otherwise
- Fully offline-capable — no internet access needed for transcription once models are downloaded; verified to work in a network-isolated Docker container
- AI summaries (optional, off by default) — connect a local Ollama instance or any OpenAI-compatible API to generate a Summary, Meeting Notes, TL;DR, Translation, or full article rewrite from the transcript, streamed live with mid-generation cancellation
- Export — Text (.txt), SRT, WebVTT, or structured JSON, with configurable timestamps
- Docker-ready — self-contained image with models baked in, suitable for airgapped deployment
Quick Start
Requirements
- Python 3.12
- ffmpeg (bundled on Windows via
bin/ffmpeg.exe; install via your package manager on Linux/macOS, e.g.apt install ffmpeg) - Whisper model files — see MODELS.md for how to download and where to place them (not included in this repo; too large for git)
Run locally
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/macOS
pip install -r requirements.txt
python server.py
Open http://localhost:8000.
Run with Docker (self-contained, offline-capable)
Models must already be downloaded into models/ct2/ (see MODELS.md) before building — the image bakes them in rather than downloading them at runtime.
docker compose up
or manually:
docker build -t debrief:latest .
docker run -p 8000:8000 debrief:latest
To move the image to an airgapped machine: docker save debrief:latest -o debrief.tar, transfer it, then docker load -i debrief.tar on the target machine.
Configuring AI Summaries
AI summaries are off by default. To turn them on: open Settings (gear icon, top right), enable "Enable AI Summaries," choose a provider, and fill in its connection details:
- Ollama — base URL (e.g.
http://localhost:11434or a remote host) and model name - OpenAI-compatible — base URL, model name, and API key
Use Test Connection to verify before saving. The Summary tab stays visible but shows as muted with a hint until both the toggle is on and the provider fields are filled in.
Optional: Changelog Author Info
The in-app Changelog dialog can show a "Built by ..." footer. Set these in .env (gitignored, never committed):
AUTHOR_NAME=Your Name
AUTHOR_EMAIL=you@example.com
Project Documentation
This README covers getting started. For deeper technical documentation:
- MODELS.md — downloading Whisper models and where to place them
- ARCHITECTURE.md — full technical reference: every API endpoint, the job data model, the two SSE mechanisms, the LLM summarization pipeline, and known design decisions/gotchas
- AGENTS.md — quick orientation and coding conventions, written for AI coding assistants picking up this project
- BOM.md — software bill of materials: every third-party package, model, and external resource this project depends on, with licenses
Tech Stack
Python 3.12 + FastAPI/Uvicorn backend, no database (JSON files on disk); vanilla HTML/CSS/JS frontend (no framework, no build step). See ARCHITECTURE.md for the full breakdown.