Local-first Mac tool for producing narrated lesson videos: import a slide deck and a script, record voice against a teleprompter, produce a 1080p MP4 with SRT captions. No cloud, no accounts, no uploads; your voice and your content stay on your Mac.
It was built to produce a 34-lesson executive education program. The cloud tools were the wrong shape for that job: per-minute import quotas, AI credits, and re-uploading a whole project to fix one sentence. Producing a course is not one video, it is dozens of short ones that all need the same treatment, and the narration is the part you redo the most. So Lesson Studio treats a lesson as scenes (one slide + one script block each), records voice only against a teleprompter, and rebuilds the final video from whatever changed: fix one scene's audio and only that scene is re-encoded. Everything else is reused, and a full 1080p lesson produces in seconds using the Mac's hardware encoder.
- Import a PowerPoint deck (speaker notes become your script blocks), a script document, or add scenes by hand.
- Record each scene voice-only against a full-screen teleprompter: auto-scroll at your reading pace, adjustable mid-take, with countdown, retakes and keyboard-first controls.
- Produce a 1080p MP4 with script-timed SRT captions in one click. Audio is cleaned automatically (noise reduction, loudness normalisation to -16 LUFS).
The user guide covers the full workflow, the teleprompter keyboard reference, and troubleshooting.
Lessons organise into groups (courses, modules, domains) on a filterable shelf:
First run walks you in gently:
Homebrew (recommended):
brew install dkempson/lesson-studio/lesson-studio
lesson-studioOr download the .app: grab LessonStudio-<version>.dmg from the
latest release,
open it, and drag Lesson Studio into Applications. The app isn't
code-signed, so the first launch is blocked with "Apple could not verify
this app is free of malware": click Done (not Move to Bin), then go to
System Settings, Privacy & Security, scroll down to the blocked-app message,
and click Open Anyway. Launch the app again and confirm the one remaining
prompt. You'll still need ffmpeg, poppler, and LibreOffice installed
separately (the app tells you the exact brew install commands if any are
missing):
brew install ffmpeg poppler
brew install --cask libreofficeRequires an Apple Silicon Mac (the produce step uses the hardware H.264 encoder;
LESSON_STUDIO_ENCODER=libx264 exists for everything else).
brew install ffmpeg poppler node
brew install --cask libreofficenpm install
npm run doctor # verify dependencies (add --warm to pre-warm LibreOffice)
npm run dev # dev mode: server on :3555, app on :5173 (open this one)
npm start # production mode: builds the app, serves it at :3555
npm test # unit + integration testsProject data lives in ~/LessonStudio/ (override with LESSON_STUDIO_HOME).
Encoder defaults to h264_videotoolbox; set LESSON_STUDIO_ENCODER=libx264 off-Mac.
MIT, see LICENSE.


