Skip to content
Search
Ctrl
K
Cancel
React
React
Vanilla JS
Solid
Soon
Private Beta
Install the Private Beta
Getting Started
Introduction
Quick Start
Build with an agent
Core Concepts
Installation
Tutorials
Build Your First Dashboard
Run the voice demo locally
Run the cascade demo locally
Deploy to Production
Guides
Voice
Overview
OpenAI Realtime
Add a Live opening and explicit reconnect
LiveKit cascade
React
Creating Vessels
Vessel Variants & Actions
Lazy Loading Vessels
Layout Modes
Setting a Default Screen
Error Handling
Engine
Use a custom LLM provider
Customize the system prompt
Enable conversation history
Client
Connectors
Programmatic Layout Control
Understanding
Why Maelstrom?
How Maelstrom compares
Architecture Overview
The voice boundary
Turn detection in the browser
The Engine
The Protocol
How the LLM Orchestrates UI
The Vessel State Machine
Connectors
Grid vs Tiling Layout
API Reference
@maelstrom-co/react
Classes
HttpConnector
WebSocketConnector
Interfaces
ChartMotionConfig
ChartProps
CreateMaelstromConfig
DynamicVesselHandle
LazyVesselEntry
MaelstromExtensionContext
MaelstromExtensionContextValue
MaelstromState
TypedVesselProps
UntypedVesselProps
VesselEntry
Type Aliases
ActionHandler
ActionNames
ActionParams
ActionResult
ActionRunner
LazyVesselComponentLoader
MaelstromExtension
MaelstromInstance
MaelstromProviderProps
RepublishableVessel
UpdateVesselConflict
UpdateVesselConflictCode
UpdateVesselPayload
UpdateVesselResult
VariantNames
VariantProps
VesselIds
Functions
createMaelstrom
defineVessel
vessel
@maelstrom-co/client
Classes
ActionManager
ChartManager
CommandProcessor
ConnectionManager
ConnectorSupersededError
HttpConnector
Logger
Orchestrator
RequestCoordinator
RequestInFlightError
TypedEmitter
UpdateCoordinator
VesselManager
WebSocketConnector
WireEngineError
Interfaces
AcknowledgedAssistantConnector
ActionRecord
AssistantMessage
BatchExecutionResult
CapabilityOptionOmission
CapabilitySnapshot
CapabilitySnapshotProjection
ChartManagerOptions
CloseCodeClassification
CommandProcessorOptions
ComputedTile
ConnectionManagerOptions
ConnectionOptions
ConnectorCapabilities
EngineConnector
EventSubscriber
ExecuteActionsCommand
GridOrchestratorOptions
GroundingUpdate
HttpConnectorOptions
OrchestratorOptionsBase
OrchestratorViewState
PushConnector
Rect
RequestCoordinatorOptions
RequestCoordinatorState
ResolvedOrchestratorOptions
SetLayoutCommand
SpeakableResult
TilingLeafNode
TilingOrchestratorOptions
TilingSplitChild
TilingSplitNode
TimedTranscriptFragment
TranscriptEntry
UIStructuralSnapshot
UpdateCoordinatorOptions
VesselCapability
VesselCapabilityAction
VesselCapabilityParameter
VesselCapabilityVariant
VesselInstance
VesselManagerOptions
VoiceApplicationWork
VoiceApplicationWorkSource
VoiceCaption
VoiceMediaObservation
VoiceObservationSnapshot
VoiceObservationSource
VoiceSession
WebSocketConnectorOptions
Type Aliases
ActionHandler
ActionNames
ActionParams
ActionResult
ActionRunner
AnyActionRunner
AssistantMessageOutcome
ChartManagerEvents
ChartManagerState
CircuitStatus
Command
CommandProcessingState
CommandProcessingStatus
CommandProcessorEvents
ConnectionManagerEvents
ConnectionManagerState
ConnectionStatus
ConnectorEvent
EventMap
MessageId
OrchestratorOptions
RequestCoordinatorEvents
Result
SessionId
TilingSplit
TilingTreeNode
Unsubscribe
UpdateCoordinatorEvents
VariantNames
VesselManagerEvents
VesselManagerState
VoiceActivity
VoiceConnectionState
VoiceSessionState
Variables
DEFAULT_HEARTBEAT_INTERVAL_MS
DEFAULT_LAYOUT_MODE
HEARTBEAT_PING_FRAME
HEARTBEAT_PONG_FRAME
MAX_CAPABILITY_OPTION_COUNT
MAX_CAPABILITY_OPTIONS_TOTAL_CHARS
MessageId
SessionId
Functions
applyLayout
buildChartRequest
classifyCloseCode
computeTilingLayout
createInitialChartManagerState
createInitialCommandProcessingState
createInitialVesselManagerState
createTilingSplitNode
isAcknowledgedAssistantConnector
isHeartbeatPingFrame
isHeartbeatPongFrame
parseTilingTree
readCapabilitySnapshot
readStructuralSnapshot
@maelstrom-co/connectors
Interfaces
CloseCodeClassification
Variables
DEFAULT_HEARTBEAT_INTERVAL_MS
HEARTBEAT_PING_FRAME
HEARTBEAT_PONG_FRAME
Functions
classifyCloseCode
isCorrelatableId
isHeartbeatPingFrame
isHeartbeatPongFrame
@maelstrom-co/protocol
Classes
EnvelopeError
MaelstromError
Interfaces
AcknowledgedAssistantMessage
ActionExecution
AssistantInjectionMessage
AssistantMessageResultMessage
AssistantMessageResultOutput
ChartDimensions
ChartPosition
ChartRequest
ChartRequestMessage
ChartResizeReason
ChartResponseOutput
ChartSize
DuplicateTilingLeaf
EngineErrorMessage
EngineMessageBase
EngineOutputBase
GridLayout
GridPosition
HistoryGetMessage
HistoryResponseMessage
MaelstromResponse
MaelstromResponseMessage
ParsedTilingSplit
TilingInstance
TilingLayout
UserIntentReason
ValidationIssue
VesselActionDefinition
VesselDefinition
VesselInstanceSnapshot
VesselMutationReason
VesselVariantDefinition
Type Aliases
ActionName
ActionParameter
Brand
ClientEnvelope
EngineMessage
EngineOutput
EnvelopeErrorKind
GridResponse
InstanceId
LayoutMode
MessageId
Result
ServerEnvelope
SessionHistoryEntry
SessionId
SidechannelEvent
TilingLeafToken
TilingNode
TilingResponse
TilingSplit
TilingSplitRepairReason
TilingSplitToken
TilingWeightedSplit
ToolCallId
UpdateReason
VariantName
Vessel
VesselAction
VesselId
VesselValidationResult
VesselVariant
Variables
AcknowledgedAssistantMessage
AcknowledgedAssistantMessageSchema
ActionExecutionSchema
ActionName
ActionParameterSchema
AssistantInjectionMessage
AssistantInjectionMessageSchema
AssistantMessageResultMessage
AssistantMessageResultMessageSchema
ChartDimensionsSchema
ChartPositionSchema
ChartRequestMessage
ChartRequestMessageSchema
ChartRequestSchema
ChartResizeReasonSchema
ChartSizeSchema
ClientEnvelopeSchema
EngineErrorMessage
EngineErrorMessageSchema
EngineMessageSchema
GridLayoutSchema
GridPositionSchema
GridResponseSchema
HistoryGetMessage
HistoryGetMessageSchema
HistoryResponseMessage
HistoryResponseMessageSchema
InstanceId
InstanceIdSchema
MaelstromResponseMessage
MaelstromResponseMessageSchema
MAX_ACTION_PARAMETER_ENUM_CANDIDATES
MAX_ACTION_PARAMS_JSON_UTF8_BYTES
MAX_EXECUTION_PLAN_ENTRIES
MAX_SPLIT_CHILDREN
MAX_SPLIT_WEIGHT
MessageId
MessageIdSchema
ServerEnvelopeSchema
SessionHistoryEntryArraySchema
SessionHistoryEntrySchema
SessionId
SessionIdSchema
SidechannelEventSchema
TILING_LEAF_PREFIX
TilingLayoutSchema
TilingNodeSchema
TilingResponseSchema
TilingTreeSchema
ToolCallId
ToolCallIdSchema
UpdateReasonSchema
UserIntentReasonSchema
VariantName
VesselActionSchema
VesselId
VesselInstanceSnapshotSchema
VesselMutationReasonSchema
VesselSchema
VesselVariantSchema
Functions
assertValidSplitWeights
decodeClientEnvelope
decodeServerEnvelope
defineVessel
encodeEnvelope
err
formatTilingSplitToken
getVisibleInstanceIds
isErr
isInstanceIdNode
isOk
isTilingLeafTokenString
isTilingSplit
isTilingSplitTokenString
ok
parseTilingSplitToken
sanitizeControlChars
tilingLeafInstanceId
tilingLeafToken
toError
unwrap
validateVessel
@maelstrom-co/engine
Interfaces
ActionParameterEnumSnapshot
CancellationError
Deferred
Engine
EngineConfig
EngineDiagnostics
HistoryConfig
HistoryError
HistoryManager
HistoryStore
Instrument
LLMContextMessage
Logger
NormalizedActionParameterEnumValue
ParseError
PlanningInput
ProviderError
RequestValidationError
RetryFeedback
StageContext
TimeoutError
ValidationError
WithRetryOptions
Type Aliases
EngineError
HistoryEntry
InstrumentAttributes
Planner
PlannerCandidate
Retryable
RetryHint
RetrySeverity
SimulationError
Stage
StageError
ValidateCandidate
ValidatedCandidate
Variables
consoleLogger
historyError
noopInstrument
Functions
buildActionParameterEnumSnapshot
cancellationError
createEngine
createHistoryManager
createInMemoryStore
deferred
enumSnapshotFor
finalVariants
formatValidationIssues
handleEnvelope
isDeferred
isResizeOnlyBatch
legalActions
named
parseError
pipeline
providerError
recoverCorrelation
requestValidationError
resolveConfig
stageName
timeoutError
validationError
withFallback
withRetry
@maelstrom-co/planner-llm
Interfaces
LlmPlannerOptions
PromptOptions
PromptResult
PromptSection
PromptVars
Type Aliases
LlmPlannerInput
SectionCustomizer
SectionExtension
SystemSectionKey
SystemSectionOverrides
UserSectionKey
UserSectionOverrides
Variables
SystemSection
UserSection
Functions
buildPrompt
buildSystemPrompt
buildUserPrompt
llmPlanner
Voice
@maelstrom-co/realtime
Classes
ConnectRaceGuard
GreetingCoordinator
RealtimeSession
RealtimeSessionMemory
RealtimeVoiceError
TranscriptObservationFeed
Interfaces
AdapterAudioStreams
AdapterConnectOptions
AdapterGeneratedOpening
AdapterTurnControl
AdapterVoiceObservations
ConnectAttempt
ContinuousTranscriptOptions
GreetingRunContext
MediaEvent
OpeningClaimedEvent
RealtimeGreetingAdapter
RealtimeInstance
RealtimeProviderAdapter
RealtimeSessionOptions
RealtimeToolSpec
RealtimeTransportAdapter
SessionEventSource
SessionStartedEvent
SubmitIntentResult
TimingEvent
ToolCalledEvent
ToolLaterOutcomeEvent
ToolResultEvent
ToolSubmittedEvent
TranscriptEntryEvent
TranscriptFragmentEvent
TranscriptObservationFeedOptions
TurnModeEvent
UpdateUIToolResult
VoiceRecoveryFragment
VoiceRecoveryOutcome
VoiceRecoverySnapshot
Type Aliases
AdapterVoiceObservation
GreetingCoordinatorLifecycle
GreetingCoordinatorSnapshot
GreetingSpeechResult
GreetingState
GreetingTerminalReason
RealtimeAdapterEvent
RealtimeVoiceErrorCode
SessionEvent
SessionEventHandler
SessionLifecycleEvent
SummarizeFn
ToolCallEvent
ToolLaterOutcomeType
ToolOutcomeEvent
ToolResult
TurnMode
Functions
groundedDebounce
isRealtimeGreetingAdapter
@maelstrom-co/realtime-protocol
packages/realtime-protocol/src
Interfaces
TokenGrant
Type Aliases
MintFailure
MintFailureReason
MintFetch
UnixSeconds
Variables
MINT_FAILURE_REASONS
UnixSecondsSchema
Functions
mintFailureHttpStatus
packages/realtime-protocol/src/livekit
Interfaces
LiveKitTokenGrant
TtsCancelMessage
TtsDoneMessage
TtsErrorMessage
TtsReadyMessage
TtsStartedMessage
TurnEndMessage
Variables
LiveKitTokenGrantSchema
SPEAK_TOPIC
SPEAK_UTTERANCE_ID_ATTR
TTS_READY_TOPIC
TTS_TOPIC
TURN_TOPIC
USER_PARTICIPANT_IDENTITY
packages/realtime-protocol/src/livekit-wire
References
SPEAK_TOPIC
SPEAK_UTTERANCE_ID_ATTR
TTS_READY_TOPIC
TTS_TOPIC
TtsCancelMessage
TtsDoneMessage
TtsErrorMessage
TtsReadyMessage
TtsStartedMessage
TURN_TOPIC
TurnEndMessage
USER_PARTICIPANT_IDENTITY
packages/realtime-protocol/src/openai
Interfaces
OpenAITokenGrant
OpenAITokenRequest
Type Aliases
OpenAIBuiltInVoice
Variables
OpenAITokenGrantSchema
OpenAITokenRequestSchema
packages/realtime-protocol/src/openai-live
Classes
LiveTransportError
Interfaces
LiveExchangeRequest
LiveExchangeResponse
LiveFunctionTool
LiveResponsesConfig
LiveServerEvent
LiveSessionConfig
LiveWebRTCDescription
Type Aliases
LiveCommand
LiveInputMessage
LiveJson
LiveSessionExchange
Variables
LiveExchangeRequestSchema
LiveExchangeResponseSchema
LiveServerEventSchema
LiveSessionConfigSchema
@maelstrom-co/realtime-openai
Classes
OpenAIAdapter
Interfaces
BrowserVadOptions
BrowserVadProviderOptions
OpenAIAdapterOptions
OpenAITokenGrant
OpenAITokenRequest
SynthesizeGreetingArgs
Type Aliases
OpenAIBuiltInVoice
SynthesizeGreeting
Variables
OpenAITokenGrantSchema
OpenAITokenRequestSchema
@maelstrom-co/realtime-openai-live
Classes
OpenAILiveAdapter
OpenAILiveTransport
Interfaces
LiveTransportOptions
LiveTransportSnapshot
OpenAILiveAdapterOptions
@maelstrom-co/realtime-openai-live-server
Interfaces
LiveSessionExchangeOptions
Functions
createLiveSessionExchange
@maelstrom-co/react-realtime
Interfaces
LevelMeter
MaelstromRealtimeBaseOptions
MaelstromRealtimeFixedOpeningOptions
MaelstromRealtimeOpeningOptions
RealtimeSessionContext
RealtimeSessionInit
UseVoiceObservationsResult
UseVoiceResult
VoiceOrbProps
Type Aliases
CreateAdapterContext
MaelstromRealtimeOptions
RealtimeOpening
Functions
createLevelMeter
maelstromRealtime
@maelstrom-co/realtime-openai-server
Interfaces
CreateOpenAIMinterOptions
Type Aliases
MintFailure
MintFailureReason
MintResult
Functions
createOpenAIMinter
mintFailureHttpStatus
@maelstrom-co/realtime-livekit
Classes
LiveKitAdapter
Interfaces
BrowserVadOptions
BrowserVadProviderOptions
LiveKitAdapterOptions
LiveKitTokenGrant
TtsCancelMessage
TtsDoneMessage
TtsErrorMessage
TtsReadyMessage
TtsStartedMessage
TurnEndMessage
Variables
LiveKitTokenGrantSchema
SPEAK_TOPIC
SPEAK_UTTERANCE_ID_ATTR
TTS_READY_TOPIC
TTS_TOPIC
TURN_TOPIC
USER_PARTICIPANT_IDENTITY
@maelstrom-co/realtime-livekit-server
Interfaces
LiveKitTokenRequest
Type Aliases
LiveKitMintResult
MintFailure
MintFailureReason
Variables
LiveKitTokenRequestSchema
Functions
mintFailureHttpStatus
mintLiveKitToken
@maelstrom-co/realtime-livekit-agent
Variables
default
Functions
defineMaelstromVoiceAgent
runVoiceAgent
@maelstrom-co/realtime-vad
packages/realtime-vad/src
Interfaces
BrowserVadOptions
BrowserVadProviderOptions
LocalAudioPreRoll
Type Aliases
BrowserVad
CreateBrowserVadOptions
ResolvedBrowserVadConfig
Functions
createBrowserVad
createLocalAudioPreRoll
resolveBrowserVadConfig
packages/realtime-vad/src/vad-assets
Interfaces
CopyBrowserVadAssetsOptions
Functions
copyBrowserVadAssets
Coding agents
Prompts library
Agent skills
Testing prompts and skills
Community
Contributing
Document a public symbol
Changelog
GitHub
@maelstrom-co/realtime-livekit-server
Interfaces
Section titled “Interfaces”
LiveKitTokenRequest
Type Aliases
Section titled “Type Aliases”
LiveKitMintResult
MintFailure
MintFailureReason
Variables
Section titled “Variables”
LiveKitTokenRequestSchema
Functions
Section titled “Functions”
mintFailureHttpStatus
mintLiveKitToken