IntelliPrompter

A teleprompter of talking points, not a script. Speak in your own words and in any order. About every half second, Jev scores each open point on how far you have covered it (0 to 3), and a point is checked off once its score reaches the threshold.

Your key is stored only in your browser

  • Kept for this tab. It is cleared when you close the tab. Tick "Remember on this device" to keep it until you press Forget key; do that only on a computer you trust.
  • Sent only to the service that bills it. An OpenRouter key (it starts with sk-or-) goes from your browser straight to openrouter.ai. A TypeSafe key goes to the small server you run on your own computer with npm start, which passes it on to api.typesafe.ai. That API does not accept calls from web pages, so TypeSafe keys don't work on this hosted page.
  • No server of ours in between. This site is two static files on GitHub Pages, with no backend, no analytics and no third-party scripts. The key is sent nowhere else.

To check it, open your browser's developer tools, go to the Network tab, and see where each request goes. Or read the source: one HTML file and one JavaScript file. To be safer still, make a separate key with a spending limit for this page.

Your key isn't the only thing that leaves the browser: each request also carries your transcript to the same service. In Chrome, speech recognition sends your microphone audio to Google. With OpenRouter, a 5-minute talk with 7 points costs at most about $0.04.

How Jev scores each point

Jev is a model from TypeSafe that doesn't write text. It answers typed questions with probabilities. This page uses its Score question type, which rates something on levels you describe in plain words.

1. What is sent

About every half second, one request goes to Jev. It holds what you have said so far (the state) and one Score question per talking point that is still open. All the questions are answered in parallel:

{
  "state": { "transcript": "Hi all, I'm your host… exits are at the back" },
  "questions": {
    "p2": {
      "type": "score",
      "instructions": "How much has the speaker covered this talking point: \"Where the emergency exits are\"?",
      "criteria": [
        "No mention of this topic at all",
        "Topic is mentioned but not expanded upon at all",
        "Topic is discussed",
        "Topic is thoroughly discussed"
      ]
    },
    "p3": { … one per open point … }
  }
}

The criteria are the levels, from lowest to highest. They define in words what "covered" means, so changing their wording changes what Jev looks for.

2. What comes back

For each point, Jev gives the probability that each level describes the transcript. The probabilities add up to 100%:

LevelMeaningProbability
0No mention of this topic at all0%
1Mentioned but not expanded upon12%
2Discussed83%
3Thoroughly discussed5%

The score is the probability-weighted average of the levels, so it can fall between them:

score = 0×0.00 + 1×0.12 + 2×0.83 + 3×0.05 = 1.93

Confidence (0 to 1) measures how much the probability is concentrated on one level. It does not say whether the point was covered, so this page ignores it.

3. What the page does with it

Jev only judges how much each point has been covered. The rule for checking it off is plain code, which is why tuning it needs no retraining: change the threshold or the wording of the levels.

Live: Jev's last answer for each point

Start talking (or typing) and each point's probabilities will show here.

Idea and design by Allie at TypeSafe. More in the Score docs and on GitHub.