SlidePilot
Experimental voice-driven auto-advance for Slidev that asks Cloudflare's Clef-omni four typed questions when the presenter pauses.
Overview
SlidePilot turns your voice into the slide clicker for Slidev decks. An addon streams microphone audio to a Cloudflare Agent, which keeps the current slide's audio and runs a pause detector. When the presenter pauses for about 700 ms, the decision model hears up to the last 60 seconds of slide audio along with the slide's content and notes, and answers four typed questions: whether advancing feels natural, whether the core idea is complete, whether the presenter is continuing, and whether this is a natural slide boundary. Because it hears audio rather than a transcript, intonation and trailing off count as evidence.
The current README uses Cloudflare's Clef-omni on Workers AI, a Jev-style decision model, with an alternative transcript engine (Flux speech-to-text plus Clef-flash); list summaries describe it as powered by TypeSafe Jev. TypeScript, not the model, applies the navigation policy with default thresholds (advance 0.68, complete 0.65, confidence 0.30), positive evidence of continuing is a hard veto, and cooldown and stale-decision guards protect navigation. Manual navigation always works. It is explicitly an experimental proof of concept to rehearse with before live use.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does advancing to the next slide feel natural now? | — |
| Yes / no | Is the slide's core idea complete? | — |
| Yes / no | Is the presenter continuing to speak about this slide? | — |
| Yes / no | Is this a natural slide boundary? | — |
How it works
- Stream microphone audio to the Cloudflare Agent
- On a ~700 ms pause, send slide audio and notes to the decision model
- Apply thresholds in TypeScript with 'continuing' as a veto
- Advance via Slidev navigation if cooldown and freshness guards pass
Strengths
- Hears intonation, not just words
- Policy and thresholds stay in code
- Cancels pending advances if the presenter resumes
Caveats
- Experimental; rehearse first
- Thresholds need calibration per speaker
- Audience noise can cancel advances
Getting started
Clone the repo and run the included demo and Worker with pnpm install; the slidev-addon-slidepilot npm package is not yet published.At a glance
- Type
- Project
- Status
- prototype
- Language
- TypeScript
- Runtime
- Slidev addon + Cloudflare Worker/Agent
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Voice-driven semantic auto-advance controller for Slidev presentations powered by Cloudflare Agents and TypeSafe Jev.
logicrw/awesome-jev-projectsExperimental Slidev controller that judges speech transcripts for slide completion, with deterministic checks and manual navigation.
cobanov/awesome-jevVoice-driven semantic auto-advance for Slidev, powered by Cloudflare Agents and TypeSafe AI Jev.
hellogumbo/awesome-jev
Frequently asked questions
What does the model decide?
Four yes/no questions about whether the current slide is done and whether to advance.
Does it use TypeSafe Jev?
The README uses Cloudflare's Clef-omni or Clef-flash; list summaries mention Jev.
Can I still click manually?
Yes, manual keyboard and clicker navigation always work.
Related projects
- jev-canvas★ 16
Draw on a tldraw canvas by voice while pointing a webcam-tracked finger; Jev decides command, action, shape, colour, target and place.
DemoprototypeTypeScript Toolkit for low-latency voice avatars where Jev can serve as a gate that judges turn ends and turn taking from speech transcripts.
ProjectproductionPythonCross-platform dictation app where a decision model chooses whether a personal-dictionary replacement actually fits the sentence.
ProjectbetaPythonReact components that use Jev judgments to choose which component renders, how lists are ordered and whether affordances show.
ProjectbetaTypeScriptPrompt-first music studio where Jev makes every compositional choice, from plan to each bar pattern, rendered as editable MIDI.
ProjectbetaTypeScriptVercel Labs' generative UI framework with an experimental compose path where Jev picks which catalog components and actions to render.
ServicebetaTypeScript