Score question
per point.
A teleprompter tells you what to say. But if you are presenting from bullet-point notes,
you may care more whether what you’ve already said covers each planned point.
Intelliprompter listens as you give a presentation and, in near real time, compares
what you have said with what you planned to say.
How Intelliprompter works
The demo video at the top of the page shows a working system, integrating your microphone with ElevenLabs and a local app that uses TypeSafe to score the transcript and keep track of which items are completed. This cookbook skips the integration code to focus on the TypeSafe parts. It hard-codes six chunks from the transcript and feeds them incrementally to Jev:- The state is the full transcript so far.
- Each unchecked criterion becomes a
Scorequestion with five coverage levels. - One
system_onerequest sends the state and all the questions together. - Jev returns one score for each criterion. The SDK numbers the five levels 0–4, so the cookbook adds one to match the live app’s 1–5 display.
- A score of 2.5 out of 5 is the demo’s local coverage threshold, not a TypeSafe confidence value. The app marks that criterion covered and omits it from later requests.
Setup
To run this example locally, create a TypeSafe API key, then run these commands in your terminal and replace<ADD_YOUR_KEY> with your key.
json_cache.json.
Download it into the folder you run this code from to replay the published numbers
instead of calling the API, or leave it out to run everything live.
Numbers below came from jev-1.13.0 on 2026-09-29.
display) for the screen and a longer description
(description) for Jev. The description tells Jev what to look for in the transcript.
Tell Jev what each score means
AScore question needs a clear scale. We give it five levels, from “Not mentioned at
all” to “Covered well and with useful detail”. Jev scores each criterion against the
transcript.
The SDK returns a score from 0 to 4: each level number multiplied by its probability,
added up, so it can land between two levels. The live demo shows the same result from 1
to 5, so score_tick adds one. The app marks a criterion as checked when this score
reaches 2.5.
One request can score several criteria. Every criterion sees the same full transcript.
Keep checked criteria checked
Jev returns scores; it does not keep checklist state. The app stores covered criterion keys in a set. When a score reaches the configured coverage threshold, the app adds that key. This demo uses 2.5 out of 5. Later requests omit covered keys, so a checked criterion is not scored again. The live app starts a new tick when the transcript changes and no request is in progress. Our cookbook replay uses a normal loop because its six transcript chunks define those ticks.Read the final checklist
Jev returns the scores. The application turns them into a stable checklist. Jev does not control the order, the 2.5 rule, or the one-way state change.SPEECH_CHUNKS with your transcription
provider’s accumulated text. Keep the score descriptions specific, and keep the threshold
in code.
Try it in the playground
The link below holds the third tick: the transcript after three chunks as the state, and aScore question for every criterion still unchecked at that point. Edit the transcript
there and the scores change with it.

