Configuration
Hosted app configuration is the published settings the embed loads with a publishable key. Chat is embed-only. There are no public chat URLs. Message bodies are never part of configuration and must not be sent through MCP.
Local / BYO vs hosted config
- Local / BYO adapter: you can pass optional
configprops or rely on widget defaults. - Hosted config: create an app, edit a draft, publish a revision, then pass
appId+ publishable key. BYO plans still use hosted config for toggles while messages stay on your backend.
What the client loads
Published config includes app id, name, revision, and:
- allowDirect
- allowGroups
- allowAttachments
- allowMemberManage
- requireAuthorToken (default false)
- emptyState (empty inbox only; search misses have their own copy)
- allowedOrigins (default * for first run; set exact origins for live)
- branding (optional title, primaryColor, logoUrl)
Body max 4,000 and groups max 20 are package limits, not free-form config strings. See limits.
Draft, publish, fetch
Edit drafts in the dashboard or via secret-key / MCP APIs, then publish. Live clients keep the last published revision until you publish again. See Configuration revisions.
Live bsw_live_pub_ config fetch needs BYO ($9.99) or Hosted ($19.99). Publishing alone does not grant live entitlements.
Branding
Optional branding.title can override the heading the widget shows. primaryColor sets the accent. When it is set, it writes --bsw-ch-accent inline and overrides the theme accent. Optional logoUrl renders beside the title when present in published config.
Theme
Visual theme is a component prop, not a published app field. theme is "light" | "dark". Omit it and the inbox stays the light cream default, with no data-theme attribute. v1 does not follow prefers-color-scheme or the system theme. theme="dark" sets data-theme="dark".
Hosts may set these CSS custom properties on the embed root (.bsw-ch): --bsw-ch-bg, --bsw-ch-panel, --bsw-ch-fg, --bsw-ch-muted, --bsw-ch-line, --bsw-ch-accent, --bsw-ch-accent-fg, --bsw-ch-radius. These overrides are the supported API. Do not fight .bsw-* classes. With theme="dark", target .bsw-ch[data-theme="dark"] so your values win over the dark defaults. Launcher offsets --bsw-ch-launcher-right and --bsw-ch-launcher-bottom are layout, not skin.
Related: Revisions · Apps · Origins · React component · API overview