OptionalaccentAccent color override; wins over the theme's accent in both light and dark.
Absolute URL of the Worker chat endpoint (e.g. https://api.example.com).
OptionalattachmentsLet visitors attach images and PDFs (click, drag-and-drop, or paste).
true enables the defaults (5 MB per file, 5 files per message, JPEG /
PNG / GIF / WebP / PDF); pass an AttachmentsOptions to tune them.
The worker must allow attachments too (it does by default).
OptionalconversationLet visitors copy the conversation as Markdown, or download it as
Markdown or JSON, from a menu in the chat header. Everything happens in
the browser and nothing is sent to the Worker. Only the literal true
enables it. See the Conversation export guide.
OptionallocaleBCP-47 locale used to select built-in translations.
OptionalpersistPersist the conversation to storage so it survives reloads.
OptionalplaceholderPlaceholder text for the message input.
OptionalpluginsMiddleware run around each message: onBeforeSend, onAfterReceive, and
onError. Hooks run in array order and may modify, replace, or
short-circuit messages. See ClaudiusPlugin.
OptionalpositionCorner of the viewport the widget docks to.
OptionalrequestAbort a chat request after this many milliseconds.
OptionalstoragePrefix for the storage key used when ChatWidgetProps.persistMessages is enabled.
OptionalstreamingStream assistant replies token-by-token from the Worker's SSE endpoint,
with automatic fallback to the non-streaming API on older browsers or
Workers without /api/chat/stream. Set to false to always use the
blocking request/response flow.
OptionalsubtitleHeader subtitle shown beneath the title.
OptionalthemeColor-scheme mode ("light" | "dark" | "auto"), a built-in theme name ("default" | "minimal" | "playful" | "corporate"), an inline ClaudiusTheme object, or a URL to a theme JSON file.
OptionaltitleHeader title. Falls back to the active locale's default title.
OptionaltranslationsPartial overrides merged over the resolved locale translations.
OptionaltriggersProactive open/greeting rules evaluated against the current page.
OptionalvoiceVoice features built on the browser's Web Speech API: a mic button for
dictating messages and a read-aloud control on assistant replies. true
enables both (click-to-toggle mic, no auto-submit); pass a
VoiceOptions to choose hold-to-talk, auto-submit, a language, or
to switch either half off. Each half renders only where the browser
supports it. The widget never handles audio itself, but the browser's
speech service may process it remotely; see the Voice guide.
OptionalwelcomeFirst assistant message shown when the chat opens.
Props for the ChatWidget component.