The problem
I was practicing presenting and interviewing and wanted my notes on screen, without cluttering the screen I was sharing. The teleprompters I found either fell short or wanted me to pay.
What I did
- Built a native Swift app: an overlay that floats on every Space, and a main window with every setting in a sidebar.
- Transcribed speech on the device with Apple's recognizer, restarting the session about every 50 seconds so results stay short and fast.
- Wrote the alignment. Each update matches the last 8 spoken words against the script, with fuzzy matching for misheard words and guards so it never jumps on weak evidence.
- Hid the overlay from capture, then tested it. It's hidden from ScreenCaptureKit, screenshots, and window lists, and still visible to older recorders, which the README says plainly.
- Added global hotkeys that need no Accessibility permission, double-click to jump to a word, and click-through so clicks reach the app underneath.
Results
What I'd do differently
Measure latency from the start. The speech recognizer dominates the delay, and I built the latency test only after the app worked. A full, uninterrupted latency run is still on my list.
Artifacts


