Not sure whether to use FeatureProvider or session tools? Read Tools and features first.
FeatureProvider manages feature state (history, visibility, tool execution) but ships no business features. Your app provides a registry that maps agent tool names to React components and handlers.

Architecture

Basic setup

ToolRegistryEntry

FieldTypeDescription
componentReact.ComponentTypeUI rendered when the feature is active
handlersRecord<string, ToolHandler>Async functions called on tool RPC
primaryToolstringMain tool name for this feature
toolNamesstring[]All tool names that map to this feature
overlaybooleanRender as overlay vs inline panel
propsSelectorfunctionMap tool state → component props

Tool handler signature

Return shape:

Config handshake

When the agent joins, it sends a config message with features and collections. FeatureProvider:
  1. Registers available features from the config
  2. Maps tool names to registry entries
  3. The session (useScenaroSession) registers Transport RPC methods for each tool
For simple one-off tools that don’t need feature UI, you can skip the registry and pass plain functions via the tools option of useScenaroSession. See React integration.

Common feature IDs

Feature IDDescription
collection:items:searchSearch and explore catalog items
collection:items:displayProduct detail sheet
collection:items:comparisonSide-by-side comparison
bucket:list:crudBasket / list management
workflow:conversation:endEnd conversation, redirect
Feature IDs come from Cockpit configuration. Your registry keys must match.

What stays outside the SDK

Per the architecture decision (July 2026):
  • Feature UI components (too brand-specific)
  • Collection API clients
  • Product templates and styling
  • Custom FeatureManager wrappers (legacy — migrate to FeatureProvider)

Recipes