Summary
The Disclaimer at README.md:26-27 states continuous mode is "for real-time transcription and always-on voice command use cases." Both claims contradict the actual behavior and the README's own API table.
Current state
- No real-time transcription. Interim/streaming results are never enabled —
src/hooks/useVocal.ts:43 calls createVocal({ lang, grammars, maxAlternatives, continuous }) with no interimResults. In continuous mode @untemps/vocal emits a single aggregated event just before end (comment at Vocal.tsx:248-250), so onResult fires once with the full session transcript — not in real time.
- No always-on voice commands. Command matching is gated off in continuous mode (
Vocal.tsx:251: if (!continuousRef.current)), and the component API table at README.md:276 already states "Commands are not evaluated in continuous mode."
The disclaimer therefore contradicts both the implementation and the API table within the same README, misleading users into expecting streaming transcription and live command recognition the code does not provide.
Proposed improvement
Reword the disclaimer to describe what continuous mode actually does — keep the session open across segments and return one aggregated transcript via onResult at session end (stopped by a second click or silenceTimeout) — and drop the "real-time transcription" / "always-on voice command" framing, or explicitly note that commands are not evaluated in continuous mode.
Summary
The Disclaimer at
README.md:26-27states continuous mode is "for real-time transcription and always-on voice command use cases." Both claims contradict the actual behavior and the README's own API table.Current state
src/hooks/useVocal.ts:43callscreateVocal({ lang, grammars, maxAlternatives, continuous })with nointerimResults. In continuous mode@untemps/vocalemits a single aggregated event just beforeend(comment atVocal.tsx:248-250), soonResultfires once with the full session transcript — not in real time.Vocal.tsx:251:if (!continuousRef.current)), and the component API table atREADME.md:276already states "Commands are not evaluated in continuous mode."The disclaimer therefore contradicts both the implementation and the API table within the same README, misleading users into expecting streaming transcription and live command recognition the code does not provide.
Proposed improvement
Reword the disclaimer to describe what continuous mode actually does — keep the session open across segments and return one aggregated transcript via
onResultat session end (stopped by a second click orsilenceTimeout) — and drop the "real-time transcription" / "always-on voice command" framing, or explicitly note that commands are not evaluated in continuous mode.