Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Magic Teleprompter

A native macOS teleprompter that floats over everything.
Built with SwiftUI. Zero dependencies.

Platform Swift License Dependencies


Demo

See it in action

Magic Teleprompter demo

Get Started

swift build && swift run MagicTeleprompter

Or open Package.swift in Xcode and hit Cmd+R. No .xcodeproj needed.

Features

Feature Details
Sentence-by-sentence pacing Auto-advances based on word count and WPM setting
Always-on-top overlay Floats above all windows, lives in your menu bar
Hide from recordings Invisible to OBS, Screen Studio, and all macOS capture APIs
Mirror mode Horizontal flip for beam splitter / reflection setups
3-2-1 countdown Optional countdown before playback begins
Script editor Import/export .txt, autosave, live word count
Speed control 80 - 400 WPM with slider and keyboard shortcuts
Font sizing 20 - 72pt, adjustable on the fly
Glass UI Material backgrounds with frosted control bar

Keyboard Shortcuts

Key Action
Space Play / Pause
Right / Left Next / Previous sentence
Up / Down Increase / Decrease speed
Cmd + / Cmd - Increase / Decrease font size
M Toggle mirror mode

Architecture

MagicTeleprompter/
  MagicTeleprompterApp.swift   @main entry point
  AppDelegate.swift            Window lifecycle, menu bar, screen capture hiding
  Engine/
    PlaybackEngine.swift       Playback state, timing, WPM, UserDefaults persistence
  Models/
    ScriptStore.swift          Script text, autosave, import/export
  Views/
    TeleprompterView.swift     Sentence display, controls, keyboard handling
    SettingsView.swift         Settings sheet with toggles and script editor

Design decisions:

  • Pure SwiftUI + AppKit — no external dependencies, no CocoaPods, no SPM packages
  • NSWindow.sharingType = .none — uses the macOS capture exclusion API to hide from screen recording software
  • Sentence pacing — display duration = wordCount / WPM * 60 with a 1.2s minimum floor
  • Reactive persistence@Published properties with didSet writing to UserDefaults

Requirements

  • macOS 26+
  • Xcode 26+ / Swift 6.2+

License

MIT

About

A native macOS teleprompter that floats over everything. Built with SwiftUI. Zero dependencies.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages