Skip to main content

Overview

This page documents the core TypeScript types and interfaces used throughout elizaOS. For usage examples, see the relevant feature documentation.
All types are exported from @elizaos/core. Import what you need:

Streaming Types

IStreamExtractor

Interface for extracting content from LLM response streams:
Built-in Extractors: Example:

Task System

TaskWorker

Interface for background task handlers:

Task

TaskMetadata

Example - Recurring Task:

State & Context

State

StateData

Typed cache for frequently accessed data:

ActionPlan

For multi-step action execution:
Example - Multi-step Action:

Messaging Types

ControlMessage

Backend-to-frontend control messages:
Use Case: Disable user input while agent is processing:

MessageStreamChunkPayload

Streaming response chunk data:

TargetInfo

Message routing target:

SOCKET_MESSAGE_TYPE

WebSocket message type enum:

Event Payloads

RunEventPayload

Emitted on run start/end:

ActionEventPayload

Emitted on action start/complete:

EvaluatorEventPayload

ModelEventPayload

Emitted on model usage:

EmbeddingGenerationPayload


Database Types

Log & LogBody

AgentRunSummary

Analytics for agent runs:

Memory Options

Vector Dimensions


TEE Types

TEEMode

Trusted Execution Environment modes:

TeeAgent

TEE agent registration:

RemoteAttestationQuote

TeePluginConfig


ElizaOS Orchestrator

IElizaOS

Multi-agent orchestrator interface:

HandleMessageOptions

HandleMessageResult

HealthStatus


Model Types

TokenUsage

TextStreamResult

Model Settings

isStreamableModelType

Type guard for streaming-capable models:

See Also

Core Runtime

Runtime interface and lifecycle

Events

Event system and payloads

Services

Service types and patterns

Plugin Reference

Plugin interface definitions