@elevenlabs/react
1.19.1 · 21 Oct 2026MIT449.8k / weekRepositoryHomepagenpmAtom feed
85 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 1.x · latest line
1.19.1
21 Oct 2026Only updates a dependency:@elevenlabs/client 1.30.0
1.19.0
20 Oct 2026dca95fb: Add an
onAudioAlignmentPlaybackcallback, called with{ event_id, alignment }when an aligned audio chunk starts playing, for syncing text with speech. It is not called on WebRTC connections.
Minor Changes
dca95fb: Add an
onAudioAlignmentPlaybackcallback, called with{ event_id, alignment }when an aligned audio chunk starts playing, for syncing text with speech. It is not called on WebRTC connections.
1.18.0
13 Oct 2026bac5c96: Forward the experimental
onConversationHistorycallback to@elevenlabs/client.
Minor Changes
bac5c96: Forward the experimental
onConversationHistorycallback to@elevenlabs/client.
1.17.0
6 Oct 2026050aeea: Add a
previousTextoption toScribe.connect()anduseScribe()in microphone mode. It is sent with the first microphone audio chunk to give the model context, such as existing document text, for casing, punctuation and sentence continuation.
Minor Changes
050aeea: Add a
previousTextoption toScribe.connect()anduseScribe()in microphone mode. It is sent with the first microphone audio chunk to give the model context, such as existing document text, for casing, punctuation and sentence continuation.
1.16.0
29 Sep 202633a5042: Add the
transcriptEditoption toScribe.connect()and dispatch the newedited_transcriptserver message:eaab81f: Fix
useScribedropping thesecondaryLanguagesoption, so a session that sets it now sendssecondary_languageson the realtime WebSocket URL instead of onlylanguage_code. The option was added toScribe.connect()but never forwarded by the hook, which passed a fixed subset of the client options.filterBackgroundAudiowas missing for the same reason and is now forwarded too. Both are accepted as hook options and asconnect()options, like the options around them.The two
Scribe.connect()calls behind the hook's microphone and manual-audio modes now share one options object, so a client option only has to be forwarded once.
Minor Changes
33a5042: Add the
transcriptEditoption toScribe.connect()and dispatch the newedited_transcriptserver message:transcriptEdit: a natural-language instruction applied to each committed transcript (max 2000 characters), sent as thetranscript_editquery param. Cannot be combined withentityDetection.edited_transcript(RealtimeEvents.EDITED_TRANSCRIPT), carrying the committedtextand itsedited_text(EditedTranscriptMessage).edited_textequalstextwhen the instruction changed nothing.useScribe()accepts the sametranscriptEditoption, exposes anonEditedTranscriptcallback and attaches the edited text to the matching entry incommittedTranscriptsaseditedText.
Patch Changes
eaab81f: Fix
useScribedropping thesecondaryLanguagesoption, so a session that sets it now sendssecondary_languageson the realtime WebSocket URL instead of onlylanguage_code. The option was added toScribe.connect()but never forwarded by the hook, which passed a fixed subset of the client options.filterBackgroundAudiowas missing for the same reason and is now forwarded too. Both are accepted as hook options and asconnect()options, like the options around them.The two
Scribe.connect()calls behind the hook's microphone and manual-audio modes now share one options object, so a client option only has to be forwarded once.
1.15.1 – 1.15.22 releases that only update dependencies@elevenlabs/client 1.25.0Show each
- 1.15.27 Sep 2026@elevenlabs/client 1.25.0
- 1.15.14 Sep 2026@elevenlabs/client 1.24.0
1.14.0
25 Aug 2026be9cb0c: Add support for the
external_agent_disconnectedclient event. The client SDK exposes a newonExternalAgentDisconnectedcallback, and the widget leaves external-agent mode (and clears the typing indicator) when the external human agent disconnects and the AI agent resumes control.
Minor Changes
be9cb0c: Add support for the
external_agent_disconnectedclient event. The client SDK exposes a newonExternalAgentDisconnectedcallback, and the widget leaves external-agent mode (and clears the typing indicator) when the external human agent disconnects and the AI agent resumes control.
1.13.0
19 Aug 2026eea19d2: Add support for the
context_usageserver event via a newonContextUsagecallback. The event is emitted after each completed agent turn and reports{ event_id, model, context_tokens, context_limit_tokens }, wherecontext_tokensis the prompt size of the turn's last LLM generation andcontext_limit_tokensis that model's maximum context window — useful for surfacing how close a long conversation is to the context limit.
Minor Changes
eea19d2: Add support for the
context_usageserver event via a newonContextUsagecallback. The event is emitted after each completed agent turn and reports{ event_id, model, context_tokens, context_limit_tokens }, wherecontext_tokensis the prompt size of the turn's last LLM generation andcontext_limit_tokensis that model's maximum context window — useful for surfacing how close a long conversation is to the context limit.
1.12.3 – 1.12.42 releases that only update dependencies@elevenlabs/client 1.20.0Show each
- 1.12.417 Aug 2026@elevenlabs/client 1.20.0
- 1.12.317 Aug 2026@elevenlabs/client 1.19.1
1.12.2
17 Aug 2026880edd2: Expose missing realtime speech-to-text options on
Scribe.connect(), matching elevenlabs-js#436:New server messages are now dispatched instead of being dropped:
Also fixes
vadSilenceThresholdSecs,minSpeechDurationMs, andminSilenceDurationMslower-bound validation to treat the bound as inclusive, matching the API (e.g.vadSilenceThresholdSecs: 0.3is now accepted instead of being rejected client-side).The
scribe.asyncapi.yamlschema (and the generatedWord/CommittedTranscriptWithTimestampsMessage/FinalTranscriptWithTimestampsMessagetypes) was cross-checked against the live contract athttps://api.elevenlabs.io/speech-to-text-asyncapi.yml. Thewordsshape is identical betweencommitted_transcript_with_timestampsandfinal_transcript_with_timestampson that contract (both support"audio_event", per-character timings, andchannel_index), so both messages now share a singleWordtype instead of the narrower shapecommitted_transcript_with_timestampspreviously used.Configalso gainedtimestamps_granularityandmax_tokens_to_recomputeto match the session config the server echoes back.@elevenlabs/react'suseScribe().committedTranscripts.words(WordTimestamp) is updated to match:typenow includes"audio_event",charactersis nowWordTimestampCharacter(each with its ownstart/end) instead ofstring, and achannel_indexfield was added.a068144: Fix a microphone-setup failure wedging
useScribe, so a denied or dismissed
permission prompt can be retried without remounting.A microphone-mode session whose
getUserMediacall rejects can never send
audio, but the socket was left open holding that session.useScribekept its
connection ref, and every laterconnect()short-circuited on"Already connected". The failed setup now closes the connection, which releases the
stranded socket and lets the hook's existing close handling clear the ref.
onErrorstill fires first; the session then ends asdisconnectedwith the
error preserved.The hook's close handler also nulled its ref for whichever connection reported
a close, so a late close from a replaced socket tore down the session that had
replaced it — the race a consumer hit when working around the above with
disconnect-then-reconnect. A close is now ignored when a newer connection owns
the ref, while an explicitdisconnect()still reports normally.
Patch Changes
880edd2: Expose missing realtime speech-to-text options on
Scribe.connect(), matching elevenlabs-js#436:secondaryLanguages: additional language codes that may be present in the audio, sent as repeatedsecondary_languagesquery params.entityDetection: detect entities (PII, PHI, PCI, offensive language, or specific types) on committed transcripts. Accepts a single value or a list.filterBackgroundAudio: enable background speech filtering to reduce false activations from nearby conversations and ambient noise.
New server messages are now dispatched instead of being dropped:
final_transcriptandfinal_transcript_with_timestamps(RealtimeEvents.FINAL_TRANSCRIPT/FINAL_TRANSCRIPT_WITH_TIMESTAMPS)committed_transcript_entities, carryingDetectedEntity(RealtimeEvents.COMMITTED_TRANSCRIPT_ENTITIES)invalid_request, sent when the server rejects the connection parameters (RealtimeEvents.INVALID_REQUEST), emitted alongside the genericERRORevent
Also fixes
vadSilenceThresholdSecs,minSpeechDurationMs, andminSilenceDurationMslower-bound validation to treat the bound as inclusive, matching the API (e.g.vadSilenceThresholdSecs: 0.3is now accepted instead of being rejected client-side).The
scribe.asyncapi.yamlschema (and the generatedWord/CommittedTranscriptWithTimestampsMessage/FinalTranscriptWithTimestampsMessagetypes) was cross-checked against the live contract athttps://api.elevenlabs.io/speech-to-text-asyncapi.yml. Thewordsshape is identical betweencommitted_transcript_with_timestampsandfinal_transcript_with_timestampson that contract (both support"audio_event", per-character timings, andchannel_index), so both messages now share a singleWordtype instead of the narrower shapecommitted_transcript_with_timestampspreviously used.Configalso gainedtimestamps_granularityandmax_tokens_to_recomputeto match the session config the server echoes back.@elevenlabs/react'suseScribe().committedTranscripts.words(WordTimestamp) is updated to match:typenow includes"audio_event",charactersis nowWordTimestampCharacter(each with its ownstart/end) instead ofstring, and achannel_indexfield was added.a068144: Fix a microphone-setup failure wedging
useScribe, so a denied or dismissed
permission prompt can be retried without remounting.A microphone-mode session whose
getUserMediacall rejects can never send
audio, but the socket was left open holding that session.useScribekept its
connection ref, and every laterconnect()short-circuited on"Already connected". The failed setup now closes the connection, which releases the
stranded socket and lets the hook's existing close handling clear the ref.
onErrorstill fires first; the session then ends asdisconnectedwith the
error preserved.The hook's close handler also nulled its ref for whichever connection reported
a close, so a late close from a replaced socket tore down the session that had
replaced it — the race a consumer hit when working around the above with
disconnect-then-reconnect. A close is now ignored when a newer connection owns
the ref, while an explicitdisconnect()still reports normally.
1.12.1
14 Aug 202692e70c6: Fix conversation state consistency through disconnect:
Patch Changes
92e70c6: Fix conversation state consistency through disconnect:
BaseConversationnow always reaches thedisconnectedstatus and firesonDisconnect, even when session teardown throws.ConversationProviderno longer lets a lateonDisconnectfrom a previous session clear a newer session's state, and no longer leaks unhandled rejections fromendSession().useConversationStatusnow reportsdisconnectedas soon as teardown starts, instead of holdingconnectedwhile the conversation was already released — consumers guarding conversation access withstatus === "connected"could previously crash during disconnect.
1.12.0
30 Jul 2026a96f220: Add
enableLoggingoption (boolean) to the Scribe realtime API, available onScribe.connectand theuseScribehook. Setting it tofalsesendsenable_logging=falseon the WebSocket URL, which runs the session in zero retention mode so history features are unavailable for it. Zero retention mode may only be used by enterprise customers.
Minor Changes
a96f220: Add
enableLoggingoption (boolean) to the Scribe realtime API, available onScribe.connectand theuseScribehook. Setting it tofalsesendsenable_logging=falseon the WebSocket URL, which runs the session in zero retention mode so history features are unavailable for it. Zero retention mode may only be used by enterprise customers.
1.11.0
27 Jul 2026139ed79: Add
onAgentReasoningResponsePartcallback to receive streaming reasoning response
events from the agent. The callback receives{ text, type, event_id }where type
is one of "start", "delta", or "stop".
Minor Changes
139ed79: Add
onAgentReasoningResponsePartcallback to receive streaming reasoning response
events from the agent. The callback receives{ text, type, event_id }where type
is one of "start", "delta", or "stop".
1.10.2
22 Jul 2026Reading the note…
1.10.1
16 Jul 2026Reading the note…
1.10.0
10 Jul 2026Reading the note…
1.9.1
7 Jul 2026Reading the note…
1.9.0
25 Jun 2026Reading the note…
1.8.0
24 Jun 2026Reading the note…
1.7.1
23 Jun 2026Reading the note…
1.7.0
18 Jun 2026Reading the note…
1.6.8
17 Jun 2026Reading the note…
1.6.7
12 Jun 2026Reading the note…
1.6.6
11 Jun 2026Reading the note…
1.6.5
9 Jun 2026Reading the note…
1.6.4
27 May 2026Reading the note…
1.6.3
22 May 2026Reading the note…
1.6.2
20 May 2026Reading the note…
1.6.1
19 May 2026Reading the note…
1.6.0
8 May 2026Reading the note…
1.5.0
8 May 2026Reading the note…
1.4.0
5 May 2026Reading the note…
1.3.0
29 Apr 2026Reading the note…
1.2.1
23 Apr 2026Reading the note…
1.2.0
22 Apr 2026Reading the note…
1.1.1
14 Apr 2026Reading the note…
1.1.0
10 Apr 2026Reading the note…
1.0.3
6 Apr 2026Reading the note…
1.0.2
3 Apr 2026Reading the note…
1.0.1
30 Mar 2026Reading the note…
1.0.0
27 Mar 2026Reading the note…
- 0.15.x
0.15.0
25 Mar 2026Reading the note…
- 0.14.x
0.14.3
17 Mar 2026Reading the note…
0.14.2
10 Mar 2026Reading the note…
0.14.1
24 Feb 2026Reading the note…
0.14.0
4 Feb 2026Reading the note…
- 0.13.x
0.13.1
27 Jan 2026Reading the note…