20% offProwith

Buy now

App screenPro

Voice mode

shadcn add @detent-pro/voice-mode
Detent Voice

Wire it up

All optional. With none, it plays exactly as it does here and hands over to whoever touches it.

Usage
<VoiceMode
  call={call}
  assistant={assistant}
  brief={brief}
  onEnd={(summary, seconds, actions, tasks) => {}}
  onUndo={(action) => {}}
/>

Your data

call

The call to play: what each side says, where the person interrupts, the notes and to-dos each line adds, and what the assistant does.

Turn[]
Default—
assistant

What the AI is called, everywhere the screen names it.

string
Default'Detent'
brief

The page the notes go on: its title, when, and the summary shown when the call ends.

Brief
Default—

What it tells you

onEnd

Called when the call ends, with how long it ran, what the assistant did, and the to-dos it left.

(summary: { seconds: number; actions: VoiceAction[]; tasks: Task[] }) => void
Default—
onUndo

Called with something the assistant did that a person undoes.

(action: VoiceAction) => void
Default—

Every block also takes accent, the one colour everything in it derives from; autoplay, which plays the demo until someone touches it; and className.