Skip to content
Roomful
Search
Ctrl
K
Cancel
GitHub
Version
Latest
v1.0
Getting Started
Installation
Quickstart
Rooms and Transports
Self-hosting the relay
Reference Guides
API Reference
Core API
Presence Engine
Cursor Engine
State, Awareness, and Events
Viewport Engine
Locking Engine
Pointer Engine
Comments Engine
History Engine
React Adapter (`@roomful/react`)
Vue Adapter (`@roomful/vue`)
Svelte Adapter (`@roomful/svelte`)
Solid Adapter (`@roomful/solid`)
Angular Adapter (`@roomful/angular`)
Advanced Features
Next.js Auth Tokens (`@roomful/next`)
UI Components (`@roomful/cursors`)
Devtools and Debugging
Performance Guide
Type Reference
Persistent activity storage
Relay auth with Firebase, Supabase, and custom backends
Cloud Management API
Persistent comments storage
Activity engine
Agent approvals engine
Field presence engine
Recording engine
Error catalog
Cross-platform interop
The `.roomful` session format
Security Model
Session summarizer (alpha)
API Reference
API Reference
core
@roomful/core
classes
Class: AuditLog
Class: RoomfulError
functions
Function: addAIPeer()
Function: createHeuristicAgent()
Function: createLocalStorageActivityStorage()
Function: createLocalStorageCommentsStorage()
Function: createMemoryActivityStorage()
Function: createMemoryCommentsStorage()
Function: createRoom()
Function: describeRoomfulError()
Function: getAgentActions()
Function: getAgentIdentity()
Function: getAgentState()
Function: isAgentPeer()
Function: parseRoomfulRecording()
Function: summarizeSession()
interfaces
Interface: ActivityEngine
Interface: ActivityEntry
Interface: ActivityOptions
Interface: ActivityStorageAdapter
Interface: AddAIPeerOptions\<TPresence\>
Interface: AgentApprovalEngine
Interface: AgentApprovalOptions
Interface: AgentIdentity
Interface: AgentProposal
Interface: AIPeer
Interface: AIPeerContext\<TPresence\>
Interface: AIPeerEvent\<TPresence\>
Interface: AuditEntry
Interface: AuditVerifyResult
Interface: AwarenessEngine
Interface: AwarenessSelection
Interface: AwarenessState
Interface: Comment
Interface: CommentsEngine
Interface: CommentsOptions
Interface: CommentsStorageAdapter
Interface: CommentThread
Interface: CommentThreadHandle
Interface: CursorBasePosition
Interface: CursorEngine\<TCursor\>
Interface: CursorOptions
Interface: CursorRenderOptions
Interface: DebugOptions
Interface: ErrorCatalogEntry
Interface: EventEngine\<TPresence\>
Interface: EventOptions
Interface: FieldPresenceEngine
Interface: FieldPresenceState
Interface: HeuristicAgentOptions
Interface: HistoryEngine
Interface: HistoryOptions
Interface: LockAcquireOptions
Interface: LockEngine
Interface: LockState
Interface: PointerBeam
Interface: PointerEngine
Interface: PointerOptions
Interface: PointerRenderOptions
Interface: PresenceEngine\<TPresence\>
Interface: ReconnectOptions
Interface: RecordingEngine
Interface: RecordingFrame
Interface: RecordingOptions
Interface: RecordingState
Interface: ReplayEvent
Interface: ReplaySession
Interface: Room\<TPresence\>
Interface: RoomDiagnostics
Interface: RoomDiagnosticsComments
Interface: RoomDiagnosticsDebug
Interface: RoomDiagnosticsEncryption
Interface: RoomDiagnosticsEvents
Interface: RoomDiagnosticsLocks
Interface: RoomDiagnosticsNetwork
Interface: RoomDiagnosticsPeers
Interface: RoomDiagnosticsPresence
Interface: RoomDiagnosticsState
Interface: RoomDiagnosticsTransport
Interface: RoomEventMap\<TPresence\>
Interface: RoomfulRecording
Interface: RoomfulYjsProvider
Interface: RoomfulYjsProviderEventMap
Interface: RoomOptions\<TPresence\>
Interface: SessionParticipant
Interface: SessionSummarizerOptions
Interface: SessionSummary
Interface: StateChangeMeta
Interface: StateEngine\<T\>
Interface: StateOptions\<T\>
Interface: TimelineEntry
Interface: UsageMetrics
Interface: ViewportEngine
Interface: ViewportOptions
Interface: ViewportState
Interface: WebRTCDataChannelOptions
Interface: WebRTCOptions
Interface: WebSocketOptions
type-aliases
Type Alias: AgentProposalStatus
Type Alias: AgentState
Type Alias: AIPeerAgent()\<TPresence\>
Type Alias: CommentAnchor
Type Alias: CursorData
Type Alias: CursorPosition\<TCursor\>
Type Alias: EncryptionOptions
Type Alias: Peer\<TPresence\>
Type Alias: PointerStyle
Type Alias: PresenceData
Type Alias: RecordingDirection
Type Alias: RelayAuthToken
Type Alias: RoomEventHandler()\<TPresence, TEvent\>
Type Alias: RoomEventName
Type Alias: RoomfulErrorCode
Type Alias: RoomfulYjsProviderEventHandler()\<TEvent\>
Type Alias: RoomfulYjsProviderEventName
Type Alias: RoomfulYjsProviderStatus
Type Alias: RoomStatus
Type Alias: TransportMode
Type Alias: Unsubscribe()
variables
Variable: AGENT\_ACTION\_PREFIX
Variable: AGENT\_IDENTITY\_KEY
Variable: AGENT\_STATE\_KEY
Variable: RECORDING\_FORMAT\_VERSION
Variable: ROOMFUL\_ERROR\_CATALOG
react
@roomful/react
functions
Function: RoomfulProvider()
Function: useActivity()
Function: useAgentApprovals()
Function: useAwareness()
Function: useComments()
Function: useConnectionStatus()
Function: useCursors()
Function: useEvent()
Function: useFieldPresence()
Function: useHistory()
Function: useLocks()
Function: useLockState()
Function: usePeers()
Function: usePointer()
Function: usePresence()
Function: useRecording()
Function: useRoom()
Function: useSessionSummarizer()
Function: useSharedState()
Function: useViewport()
interfaces
Interface: RoomfulProviderProps\<TPresence\>
Interface: UseActivityResult
Interface: UseAgentApprovalsResult
Interface: UseAwarenessResult
Interface: UseCommentsResult
Interface: UseCursorsResult\<TCursor\>
Interface: UseFieldPresenceResult
Interface: UseHistoryResult
Interface: UseLocksResult
Interface: UsePointerResult
Interface: UsePresenceResult\<TPresence\>
Interface: UseRecordingResult
Interface: UseViewportResult
vue
@roomful/vue
functions
Function: useActivity()
Function: useAgentApprovals()
Function: useAwareness()
Function: useComments()
Function: useConnectionStatus()
Function: useCursors()
Function: useEvent()
Function: useFieldPresence()
Function: useHistory()
Function: useLocks()
Function: useLockState()
Function: usePointer()
Function: usePresence()
Function: useRecording()
Function: useSharedState()
Function: useViewport()
interfaces
Interface: ActivityEngine
Interface: ActivityEntry
Interface: ActivityOptions
Interface: Comment
Interface: CommentsOptions
Interface: CommentThread
Interface: FieldPresenceEngine
Interface: FieldPresenceState
Interface: HistoryEngine
Interface: HistoryOptions
Interface: RecordingEngine
Interface: RecordingState
Interface: RoomfulPluginOptions\<TPresence\>
Interface: RoomfulRecording
Interface: TimelineEntry
Interface: UseActivityResult
Interface: UseAgentApprovalsResult
Interface: UseAwarenessResult
Interface: UseCommentsResult
Interface: UseCursorsResult\<TCursor\>
Interface: UseFieldPresenceResult
Interface: UseHistoryResult
Interface: UseLocksResult
Interface: UsePointerResult
Interface: UsePresenceResult\<TPresence\>
Interface: UseRecordingResult
Interface: UseViewportResult
type-aliases
Type Alias: CommentAnchor
Type Alias: ReadonlyRef\<T\>
Type Alias: RoomfulCursorsDirective
Type Alias: SharedStateSetter()\<T\>
Type Alias: SharedStateUpdater\<T\>
variables
Variable: RoomfulPlugin
svelte
@roomful/svelte
functions
Function: roomful()
interfaces
Interface: ActivityEngine
Interface: ActivityEntry
Interface: ActivityOptions
Interface: ActivityStore
Interface: AgentApprovalEngine
Interface: AgentApprovalOptions
Interface: AgentApprovalsStore
Interface: AgentProposal
Interface: AwarenessStore
Interface: AwarenessStoreValue
Interface: Comment
Interface: CommentsOptions
Interface: CommentsStore
Interface: CommentThread
Interface: CursorStore\<TCursor\>
Interface: EventChannelStore\<TPayload, TPresence\>
Interface: EventChannelValue\<TPayload, TPresence\>
Interface: EventsNamespace\<TPresence\>
Interface: FieldPresenceEngine
Interface: FieldPresenceState
Interface: FieldPresenceStore
Interface: HistoryEngine
Interface: HistoryOptions
Interface: HistoryStore
Interface: LocksStore
Interface: PointerStore
Interface: PresenceStore\<TPresence\>
Interface: PresenceStoreValue\<TPresence\>
Interface: RecordingEngine
Interface: RecordingState
Interface: RecordingStore
Interface: ReplaySession
Interface: RoomfulAdapter\<TPresence, TCursor\>
Interface: RoomfulOptions\<TPresence\>
Interface: RoomfulRecording
Interface: StateNamespace
Interface: TimelineEntry
Interface: ViewportStore
type-aliases
Type Alias: CommentAnchor
Type Alias: LockStateStore
cursors
@roomful/cursors
functions
Function: CollaborationBadge()
Function: FloatingReaction()
Function: LiveIndicator()
Function: PeerCursor()
Function: PresenceAvatars()
Function: PresenceBar()
Function: SelectionHighlight()
Function: TypingIndicator()
interfaces
Interface: CollaborationBadgePosition
Interface: CollaborationBadgeProps\<TPresence\>
Interface: FloatingReactionProps
Interface: LiveIndicatorProps
Interface: PeerCursorProps
Interface: PresenceBarProps\<TPresence\>
Interface: SelectionHighlightProps\<TPresence\>
Interface: SelectionRange
Interface: TypingIndicatorProps\<TPresence\>
type-aliases
Type Alias: PeerCursorStyle
Type Alias: PresenceAvatarsProps\<TPresence\>
Type Alias: PresenceSize
relay
@roomful/relay
classes
Class: EdgeRelayJwtVerificationError
Class: EdgeRoom
Class: InMemoryManagementStore
Class: RelayJwtVerificationError
functions
Function: createManagementApi()
Function: createRelayServer()
Function: resolveEffectiveQuota()
Function: verifyJWT()
Function: verifyRelayJwtEdge()
interfaces
Interface: EdgeConnection
Interface: EdgeRoomOptions
Interface: ManagementApiOptions
Interface: ManagementStore
Interface: Project
Interface: ProjectQuota
Interface: ProjectUsage
Interface: RelayAuthorizeContext
Interface: RelayDefaults
Interface: RelayJwtPayload
Interface: RelayServer
Interface: RelayServerOptions
Interface: RoomRecord
type-aliases
Type Alias: CreateProjectInput
Type Alias: CreateRoomInput
Type Alias: EdgeRoomAuthorize()
Type Alias: RelayAuthHandler()
Type Alias: RelayJwtClaims
Type Alias: UpdateProjectInput
Type Alias: UpdateQuotaInput
devtools
@roomful/devtools
functions
Function: diffSerializedState()
Function: isDevtoolsRoomSnapshot()
Function: isDevtoolsRoomSummary()
Function: serializeDevtoolsValue()
interfaces
Interface: DevtoolsBridge
Interface: DevtoolsCommandResult
Interface: DevtoolsDiffOptions
Interface: DevtoolsEventLogEntry
Interface: DevtoolsPeerSnapshot
Interface: DevtoolsRoomSnapshot
Interface: DevtoolsRoomSummary
Interface: DevtoolsSerializationOptions
Interface: DevtoolsSerializedRecord
Interface: DevtoolsStateDiffEntry
Interface: DevtoolsStateSnapshot
type-aliases
Type Alias: DevtoolsDiffKind
Type Alias: DevtoolsEventDirection
Type Alias: DevtoolsRoomStatus
Type Alias: DevtoolsSerializedScalar
Type Alias: DevtoolsSerializedValue
Type Alias: DevtoolsStateReason
Type Alias: DevtoolsStateStrategy
Type Alias: DevtoolsTransportKind
variables
Variable: DEVTOOLS\_BRIDGE\_GLOBAL
Variable: DEVTOOLS\_BRIDGE\_VERSION
Variable: DEVTOOLS\_MAX\_EVENT\_LOG\_ENTRIES
solid
@roomful/solid
functions
Function: RoomfulProvider()
Function: useActivity()
Function: useAgentApprovals()
Function: useAwareness()
Function: useComments()
Function: useConnectionStatus()
Function: useCursors()
Function: useEvent()
Function: useFieldPresence()
Function: useHistory()
Function: useLocks()
Function: useLockState()
Function: usePeers()
Function: usePointer()
Function: usePresence()
Function: useRecording()
Function: useRoom()
Function: useSharedState()
Function: useViewport()
interfaces
Interface: ActivityEngine
Interface: ActivityEntry
Interface: ActivityOptions
Interface: Comment
Interface: CommentsOptions
Interface: CommentThread
Interface: FieldPresenceEngine
Interface: FieldPresenceState
Interface: HistoryEngine
Interface: HistoryOptions
Interface: RecordingEngine
Interface: RecordingState
Interface: ReplaySession
Interface: RoomfulProviderProps\<TPresence\>
Interface: RoomfulRecording
Interface: TimelineEntry
Interface: UseActivityResult
Interface: UseAgentApprovalsResult
Interface: UseAwarenessResult
Interface: UseCommentsResult
Interface: UseCursorsResult\<TCursor\>
Interface: UseFieldPresenceResult
Interface: UseHistoryResult
Interface: UseLocksResult
Interface: UsePointerResult
Interface: UsePresenceResult\<TPresence\>
Interface: UseRecordingResult
Interface: UseViewportResult
type-aliases
Type Alias: CommentAnchor
Type Alias: SetStateAction\<T\>
Type Alias: SharedStateSetter()\<T\>
angular
@roomful/angular
functions
Function: injectActivity()
Function: injectAgentApprovals()
Function: injectAwareness()
Function: injectComments()
Function: injectConnectionStatus()
Function: injectCursors()
Function: injectEvent()
Function: injectFieldPresence()
Function: injectHistory()
Function: injectLocks()
Function: injectLockState()
Function: injectPeers()
Function: injectPointer()
Function: injectPresence()
Function: injectRecording()
Function: injectRoom()
Function: injectSharedState()
Function: injectViewport()
Function: provideRoomful()
interfaces
Interface: ActivityEngine
Interface: ActivityEntry
Interface: ActivityOptions
Interface: Comment
Interface: CommentsOptions
Interface: CommentThread
Interface: FieldPresenceEngine
Interface: FieldPresenceState
Interface: HistoryEngine
Interface: HistoryOptions
Interface: InjectActivityResult
Interface: InjectAgentApprovalsResult
Interface: InjectAwarenessResult
Interface: InjectCommentsResult
Interface: InjectCursorsResult\<TCursor\>
Interface: InjectFieldPresenceResult
Interface: InjectHistoryResult
Interface: InjectLocksResult
Interface: InjectPointerResult
Interface: InjectPresenceResult\<TPresence\>
Interface: InjectRecordingResult
Interface: InjectViewportResult
Interface: RoomfulProviderOptions\<TPresence\>
Interface: TimelineEntry
type-aliases
Type Alias: CommentAnchor
Type Alias: SetStateAction\<T\>
Type Alias: SharedStateSetter()\<T\>
variables
Variable: ROOMFUL\_ROOM
next
@roomful/next
classes
Class: RoomfulTokenError
functions
Function: createRoomfulTokenRoute()
Function: fetchRoomfulToken()
Function: issueRoomfulToken()
interfaces
Interface: IssueRoomfulTokenOptions
Interface: RoomfulTokenAuthorizeResult
Interface: RoomfulTokenRouteOptions
Recipes
Recipe: Collaborative Editor
Recipe: Multiplayer Canvas
Recipe: Live Voting
Recipe: Presence-Aware Navigation
Deployment
Self-Host Deployment Checklist
Project
Repository Structure
Development Setup
Code Conventions
Code Quality Guidelines
WebRTC Validation
Release Process
Labeling and Triage
Execution Plan
Documentation Style Guide
Roomful Cloud Architecture (EP-23)
CRDT Bridge Decision
Hosted Relay Beta — Architecture
Innovation & Moat
Launch Kit
Post-v3 Operating Roadmap
Publish Readiness Roadmap
Release Completion Audit
SDD Plan — EP-23 Cloud / Open-Core
v2 → v3 Backlog
ZK Rooms Feasibility RFC
Playground
Community
Overview
Discussions
Issues
GitHub
Version
Latest
v1.0
@roomful/next
@roomful/next
@roomful/next
Section titled “@roomful/next”
Classes
Section titled “Classes”
RoomfulTokenError
Interfaces
Section titled “Interfaces”
IssueRoomfulTokenOptions
RoomfulTokenAuthorizeResult
RoomfulTokenRouteOptions
Functions
Section titled “Functions”
createRoomfulTokenRoute
fetchRoomfulToken
issueRoomfulToken