Control tokens

A token is written inline where it should happen. It renders as a chip, is never spoken, never counts toward scroll speed, and fires the moment it crosses the eyeline.

Anatomy

<|
Prompter target
::
Pause verb
:
600ms argument
|>

The body splits on its first colon, so OBS::record:start is the verb record with the argument start. The target is matched without case; the argument keeps whatever case you gave it.

What it looks like on the glass

You author the token as text. The prompter renders it as a chip, tinted by which system it drives, so a pause coming up is visible well before you reach it.

On the glassrendered by the real parser

MARKER · CHAPTER · DURATION VOTE OBS · SCENE · FULL-SCREEN This week's top story: the season's first ballots are open, and the counts are lopsided. PROMPTER · PAUSE · 600MS Voting closes on the 31st.

See you next week. PROMPTER · PAUSE · 2S OBS · RECORD · STOP PROMPTER · STOP

Reference

Grouped by what each target drives, which is also how the dispatcher routes them.

Prompter

The scroll itself.

<|Prompter::Pause|> PROMPTER · PAUSE
Holds until you press play, or until you read on with follow mode enabled.
<|Prompter::Pause: code demo|> PROMPTER · PAUSE · CODE DEMO
The same hold, with a label on the chip so you know why you stopped.
<|Prompter::Pause: 600ms|> PROMPTER · PAUSE · 600MS
A timed beat. Resumes itself. Accepts ms or s.
<|Prompter::stop|> PROMPTER · STOP
End of show. Latches — nothing restarts the scroll but a deliberate play.
<|Prompter::rollback: script-start|> PROMPTER · ROLLBACK · SCRIPT-START
Rides back to the top and lets the script run again. Refused after a stop.

OBS

The recording, when a socket is there to drive.

<|OBS::record:start|> OBS · RECORD · START
Starts recording. Not needed in a cold open, which rolls by itself.
<|OBS::record:stop|> OBS · RECORD · STOP
Stops recording and ends the take, whether or not OBS is connected.
<|OBS::scene: full-cam|> OBS · SCENE · FULL-CAM
Logs a punch-in reference for the edit. Only switches the live scene if armed in the rig.

Marker

Nothing at all, on purpose. It exists to land in the log.

<|Marker::chapter: Quick Hits|> MARKER · CHAPTER · QUICK HITS
A named point in the take.
<|Marker::in: quick-hits|> MARKER · IN · QUICK-HITS
Opens a span. Its partner is any later token sharing the argument.
<|Marker::out: quick-hits|> MARKER · OUT · QUICK-HITS
Closes it. Read the two together and you have a range to cut on.

Slides

A deck listening on the same browser.

<|Slides::goto: 7|> SLIDES · GOTO · 7
Moves the deck off a heading boundary. Also ::next and ::prev.

Timer

The take clock, without the countdown.

<|Timer::start|> TIMER · START
Starts a take clock for a mid-script pickup. Also ::stop.

The Marker target earns a page of its own: it does nothing during the take, and quite a lot afterwards.

Unknown tokens are legal

A token this build has no handler for still renders as a chip and still logs as a cue — it simply does nothing else. That is deliberate: a script written for a newer version records correctly on an older one, and you can invent a marker for your editor without waiting for the prompter to learn about it.

<|Marker::logo-sting|>          logs, no handler needed
<|Note::fresh smile here|>      a note to yourself, on the glass

The end of a show

The authored sign-off is three tokens in order: a buffer beat in case you are trailing the scroll, then the recording stops, then the scroll latches.

See you next week. <|Prompter::Pause: 2s|> <|OBS::record:stop|> <|Prompter::stop|>

Those last two fire in the same pass. The stop cancels the pending beat, so the scroll cannot wake up two seconds after the show ended.

Want to run your next take on this?

PteroPrompter is in early access. Leave an address and we'll be in touch when the first takes ship.