V5 preview
A look at what’s coming: quieter activity, simpler tool details, approval outcomes, and a refreshed composer. Try the opt-in defaults, then make them your own.
EARLY PREVIEW
Control widgets from your app · Compare five assistant configurations
Sample data · No API key needed
Preview settings
Scenario
Reasoning & tools
Request & Response
Welcome & composer
Running & failed tools
Loading & follow-ups
Errors & retry
Message actions
Artifacts
Approval decisions & outcomes
Approval · custom renderer
Embedded · transparent flex host
Scroll control · live activity
Long conversation & scroll
DefaultsV5 preview V4 current
ThemeDark Light
BrandPersona default Editorial · warm neutral Studio · violet Terminal · green
Header icon
Icon backgroundDefault Transparent Filled
Icon paddingDefault None 4px 6px 10px
Six fields set the brand. Theme above explicitly chooses light or dark; omit colorScheme to infer it from the neutral color.
Activity styleDefault Compact rows Cards
Resolved approvalsDefault Compact activity Retained card Legacy trace
Tool groupingDefault Separate calls Documentation review · custom hook
Tool detailsDefault Auto-expand while streaming Summary only
Status iconsDefault Always Active / attention only Never
Suggestion edgesDefault Clip Fade
Error displayDefault Alert block Message bubble
ArtifactsDefault Enabled Disabled
Top fadeDefault On Off
Scroll glyphDefault Arrow Dots Custom animation
Jump motionDefault Smooth Instant
Jump durationDefault (220 ms) 0 ms (instant) 150 ms 350 ms 600 ms 1000 ms
Scroll transitionDefault Fade Instant
Run stream Reset scene
Configuration This example combines documentation calls into “Reviewed 2 documentation sources” through toolCall.renderGroupedSummary. Other tools and attention states keep the built-in summary.
The custom features.scrollToBottom.renderIcon glyph uses the Web Animations API. It pauses while hidden or reduced motion is enabled and cleans up on abort. Example source
The custom renderApproval hook shows permission and execution separately. It releases button listeners when its render signal is aborted.