TalkProp documentation
A native macOS teleprompter. Paste a script, set a comfortable reading speed, and read — with scroll-wheel scrubbing under your fingers and a one-line ticker mode when you need it. This page walks through how it works.
Installation
TalkProp comes three ways. The download from bendansby.com/apps/talkprop is a standard .dmg — open it and drag TalkProp.app to your Applications folder. The Mac App Store version installs and updates the usual way. The Setapp version is a one-time purchase, not part of a Setapp Membership subscription; it installs through the Setapp client, with no separate license key and no trial.
Requires macOS 14 Sonoma or later. The direct-download build checks for updates on its own; you can also check anytime via TalkProp → Check for Updates….
Edit and run windows
TalkProp works in two windows, one at a time. The edit window is where you write or import your script. When you're ready, choose Start Run (⌘E, or the button in the edit window's toolbar) and the run window takes its place: your script rolling as light text on black, with the controls in a sidebar beside it. Exit Run (⌘E again, the button at the top of the controls, or closing the run window) takes you back to the editor.
The controls sidebar runs top to bottom: Exit Run, full screen and detach; the Pause/Play/Follow switch and Rewind; the speed and size sliders; the Display section (vertical or horizontal, and the two mirror switches); and the countdown length. The Prompter menu carries the same commands. The run window is always dark, so a bright sidebar never glares in a dim room or on camera.
Detach the controls with Prompter → Detach Controls (⇧⌘D) or the button at the top of the sidebar, and they float in their own panel. Put the prompter full-screen on one display (or behind a camera) and the controls on another, out of shot. Attach Controls (or closing the panel) docks them again, and the prompter stays where it was. Full screen works docked or detached, and TalkProp remembers which way you left the controls.
Loading and saving a script
The edit window is a plain text editor — type or paste your script straight in. To load one from disk, use File → Import Script… (⌘⇧O, or the button in the toolbar) and pick any plain-text file; it replaces whatever's currently in the editor. If the file can't be read, the previous script is left untouched and an alert explains why.
To save the script out, use File → Export Script… (⇧⌘S). It's written as a plain-text file, the same format Import reads back.
Start a run with ⌘E (or Start Run in the toolbar).
Setting the speed
The speed slider sets how fast the text rolls, from 15 to 180 points per second scrolling vertically, and up to 540 in the horizontal ticker, where one line crossing the screen reads slower at the same rate. The current rate is shown live in points per second next to the slider, so you can dial in a pace and reproduce it next time. The slider is dimmed while Follow My Voice is on, since your voice sets the pace then.
Because position is tracked in points rather than lines, changing the speed never makes you lose your place — the text keeps rolling from exactly where it was.
Scroll to scrub
This is the part that makes TalkProp feel different. Scroll up or down anywhere on the rolling page — wheel or trackpad — to scrub through your script by hand, forward or back. Lift off and the prompter resumes rolling at your set rate.
Which way is forward is up to you. Prompter → Scroll Direction offers Follow System Setting, where the script moves the way your Mac's Natural scrolling setting says, and Traditional, where scrolling down always moves ahead and scrolling up always rewinds, whatever the system setting. New installs follow the system; if you used TalkProp before 1.4, it stays Traditional, the way it has always scrolled. The menu item is available during a run.
From the keyboard, the arrow keys scrub too: during a run, ↓ or → moves the script ahead a line and ↑ or ← moves it back, in either the vertical scroll or the ticker.
The script stops at the end. Rolling pauses once the last line reaches the reading line, and scrolling can't carry the text off into black. Press Play there to start again from the top.
Press Space to play and pause at any time, and ⌘⌥← to rewind to the top.
Text size
The size slider sets the font height from 18 to 200 points. ⌘+ and ⌘− step it up and down by 4 points at a time. Like speed, changing the size keeps your place — the text just gets bigger or smaller around the reading line, it doesn't reflow you somewhere else.
Vertical scroll vs. horizontal ticker
TalkProp rolls two ways, and ⌘O flips between them:
- Vertical scroll — the classic teleprompter: lines rise up the screen past the reading line.
- Horizontal ticker — a single line scrolling right-to-left, like a news crawl. Good for a narrow strip along the top or bottom of a display, or a chyron under a camera.
The speed and size controls work the same in both modes. TalkProp remembers which way you left it: quit in ticker mode and it reopens as a ticker. With the controls detached and the prompter in a window, ticker mode shrinks it to a single line; switch back to vertical and it returns to the height it had. With the controls docked, the window keeps its height so the sidebar has room.
Mirror mode
A beam-splitter teleprompter reflects the screen off angled glass, so the text has to be flipped before it gets there. Prompter → Mirror Horizontally (⌘⌥M, or the switch in the controls' Display section) flips the rolling text left-to-right; Prompter → Mirror Vertically flips it top-to-bottom for rigs that need it. Use either or both.
The flip applies to the whole rolling view — text, reading line, edge fades, and the countdown — and only to the run window; the editor always reads normally. Your mirror settings are remembered between launches.
Countdown before play
When you press play, TalkProp can count down before the text starts rolling — a beat to settle in and find your first line. Pick the length in the controls' Countdown section or under Prompter → Countdown Before Play: Off, 3, 5, or 10 seconds (3 is the default). The menu works while you edit too, and the setting is remembered between launches.
Mid-countdown, press Space or Return to skip the rest and start rolling now. To call it off instead, press Esc or rewind with ⌘⌥←; either stops it without starting the roll. With Follow My Voice on there's no countdown at all, since nothing moves until you speak.
Follow My Voice
Instead of rolling at a fixed speed, TalkProp can listen and keep up with you. Choose Follow in the controls' Pause/Play/Follow switch, or Prompter → Follow My Voice (⌥⌘V, which flips between Play and Follow). As you read, the line you're on is eased onto the reading line; when you stop to breathe or ad-lib, the page holds still and picks up again when you get back to the script.
- It knows where you are, not just how fast you talk. TalkProp matches what you say against the words around your place, so skipping a sentence moves the page ahead, and a phrase that turns up again later in the script won't make it jump.
- Scrubbing still works. Scroll to a different spot and TalkProp listens from there, rather than dragging the page back to where it last heard you.
- Any script language. The recognizer follows the language of the script, not the system, so a German script is heard in German whatever your Mac is set to. If your Mac has no on-device speech model for that language, TalkProp says so rather than quietly sending audio to a server.
- Permissions. The first time you turn it on, macOS asks for Microphone and Speech Recognition access. If either is refused, Follow switches itself back off and offers to open System Settings → Privacy & Security.
TalkProp on iPhone & iPad
TalkProp is also a universal iPhone and iPad app (iOS 17 or later), with the same rolling engine: the same speed range, text sizes, reading line, ticker, mirror mode, countdown, and Follow My Voice (in the toolbar's Pause/Play/Follow switch, with the same on-device recognition and the same Microphone and Speech Recognition prompts the first time). It differs from the Mac version in a few ways:
- One screen instead of edit and run windows. A toolbar runs across the top, starting with an Edit/Run switch, and the editor or the rolling script fills the rest. On iPad the toolbar is a single row; on iPhone in portrait the speed and size sliders drop to a second row so each has room to drag, and the scroll/ticker switch moves into the ⋯ menu.
- Drag to scrub. Instead of a scroll wheel, drag anywhere on the rolling text — push it up to fast-forward, pull it down to rewind — and lift your finger to resume at your set speed.
- Mirror and countdown live in the ⋯ menu at the top: Mirror Horizontally, Mirror Vertically, and Countdown Before Play. The menu's icon fills in while either mirror is on. There's no dedicated mirror button. Tap play/pause again, or rewind, to cancel a countdown.
- Importing. The import button opens the Files picker, so a plain-text script can come from iCloud Drive or any other location Files can reach. In edit mode a Done button above the keyboard puts it away.
- Touch controls rather than shortcuts. Edit/Run, rewind, the scroll/ticker switch, and Pause/Play/Follow are all toolbar buttons; there are no keyboard shortcuts or window-layout commands.
- English only. The iPhone and iPad app's interface isn't localized yet.
- Settings stay on each device. Your script, the scroll/ticker choice, and the mirror and countdown settings are remembered between launches, but they aren't synced with the Mac.
- No license key. It's bought through the App Store, the same purchase as the Mac App Store version.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Space | Play / pause (skips a running countdown) |
| Return | Skip a running countdown |
| Esc | Cancel a running countdown |
| ⌥⌘V | Switch between Play and Follow My Voice |
| ⌘⌥← | Rewind to top |
| ⌘E | Start Run / Exit Run |
| ⇧⌘D | Detach / attach the controls |
| ⌘O | Switch between vertical scroll and horizontal ticker |
| ⌘⇧O | Import a script from disk |
| ⇧⌘S | Export the script as a plain-text file |
| ⌘+ / ⌘− | Bigger / smaller text |
| ⌘⌥M | Mirror horizontally |
| ↑ ↓ ← → | Scrub back / ahead a line during a run |
| scroll wheel / trackpad | Scrub through the script (anywhere on the rolling page) |
Accessibility
TalkProp honours macOS accessibility settings:
- VoiceOver + Voice Control. The editor, the run controls, the menus, and every dialog use standard AppKit / SwiftUI controls with their labels intact. VoiceOver speaks each number of the countdown before play, and the arrow keys move through the script a line at a time, so a run never needs a scroll wheel.
- Dark Interface. The edit window follows the system appearance. The run window and its controls are always dark, with light text on black for maximum legibility on camera.
- Differentiate Without Color. No state is encoded by colour alone — buttons pair SF Symbols with text labels, and the live rate readout is shown as a number, not just a slider position.
Languages
TalkProp is localized into English, Deutsch, Español, Français, Italiano, 日本語, 한국어, Português (Brasil), Українська, Русский, and 简体中文. It picks the right language automatically based on your System Settings → General → Language & Region preferences.
To pin TalkProp to a specific language without changing system preferences, open System Settings → General → Language & Region → Applications, click the + button, and pick TalkProp.
License
TalkProp ships through three channels — pick the one that fits how you like to pay for software:
- Direct download. Every feature works from the first launch — no trial clock, no locked controls, no watermark on screen. An unlicensed copy shows a brief license reminder every fifth time you start a run; a one-time license clears it for good. Buy via TalkProp → Buy License… in the app menu; activate via Enter License…. Activation needs the internet briefly, then works offline; TalkProp revalidates quietly in the background so refunded or revoked keys stop working.
- Mac App Store. Paid through Apple's standard pipeline — buy it once, no separate license key.
- Setapp. A one-time purchase through Setapp — bought outright, not part of a Setapp Membership subscription. No separate license key; Setapp handles the purchase and delivers updates automatically. The app runs through the Setapp client, so keep it installed and your Setapp account active.