Back to Eliza

Configuration Schema Reference

packages/docs/config-schema.mdx

2.0.167.2 KB
Original Source

Eliza is configured through a eliza.json file stored in the state directory (default: ~/.eliza/eliza.json). All sections are optional; Eliza uses sensible defaults when fields are omitted.

Canonical runtime routing is persisted separately from legacy compatibility fields. The top-level runtime source of truth is:

  • deploymentTarget
  • linkedAccounts
  • serviceRouting

The configuration is validated against Zod schemas at load time. Invalid fields produce warnings but do not block startup.


Top-Level Structure

The ElizaConfig type defines every section available in eliza.json. Below is the complete list of top-level keys:

SectionTypeDescription
metaobjectConfig file metadata (last touched version/timestamp)
authAuthConfigAuthentication profiles, provider ordering, and cooldowns
envobjectEnvironment variable injection and shell env import
wizardobjectOnboarding wizard state
diagnosticsDiagnosticsConfigDiagnostics flags, OpenTelemetry, and cache tracing
loggingLoggingConfigLog levels, file output, and console style
updateUpdateConfigSelf-update channel and check intervals
browserBrowserConfigBrowser/CDP configuration and profiles
uiobjectUI theme, accent color, and assistant appearance
skillsSkillsConfigSkill management, loading, and per-skill config
pluginsPluginsConfigPlugin loading, allow/deny lists, and install records
modelsModelsConfigCustom model providers, Bedrock discovery, model selection
nodeHostNodeHostConfigNode host browser proxy settings
agentsAgentsConfigAgent list, defaults, and per-agent configuration
deploymentTargetDeploymentTargetConfigCanonical hosting target for the active server
linkedAccountsLinkedAccountsConfigCanonical linked-account inventory
serviceRoutingServiceRoutingConfigCanonical per-capability routing
toolsToolsConfigTool profiles, exec, web, media, links, sandbox policies
bindingsAgentBinding[]Agent-to-channel routing bindings
broadcastBroadcastConfigBroadcast peer routing strategy
audioAudioConfigAudio settings (placeholder for future use)
messagesMessagesConfigMessage queue, TTS, response prefix, ack reactions
commandsCommandsConfigCommand registration and access control
approvalsApprovalsConfigExec approval forwarding to chat channels
sessionSessionConfigSession scoping, idle timeout, reset triggers
webWebConfigWhatsApp web provider settings
connectorsRecord<string, ConnectorConfig>Messaging connectors (Telegram, Discord, Slack, etc.)
channelsRecord<string, ConnectorConfig>Deprecated -- use connectors instead
cronCronConfigScheduled job configuration
hooksHooksConfigWebhook hooks, Gmail integration, internal event hooks
discoveryDiscoveryConfigmDNS and wide-area DNS-SD network discovery
talkTalkConfigElevenLabs Talk mode voice settings
gatewayGatewayConfigGateway server: port, bind, TLS, auth, HTTP, nodes
memoryMemoryConfigMemory backend (builtin or QMD)
embeddingEmbeddingConfigLocal embedding model (GGUF, GPU layers, idle unload)
databaseDatabaseConfigDatabase provider and connection settings
cloudCloudConfigEliza Cloud integration, bridge, backup, containers
x402X402Configx402 HTTP payment protocol
mediaMediaConfigMedia generation providers (image, video, audio, vision)
mcpobjectMCP (Model Context Protocol) server definitions
registryobjectERC-8004 agent registry and ElizaMaker NFT config
featuresRecord<string, boolean | object>Feature flags for plugin auto-enable
customActionsCustomActionDef[]User-defined custom actions
json
{
  "meta": {},
  "auth": {},
  "env": {},
  "wizard": {},
  "diagnostics": {},
  "logging": {},
  "update": {},
  "browser": {},
  "ui": {},
  "skills": {},
  "plugins": {},
  "models": {},
  "nodeHost": {},
  "agents": {},
  "deploymentTarget": {},
  "linkedAccounts": {},
  "serviceRouting": {},
  "tools": {},
  "bindings": [],
  "broadcast": {},
  "audio": {},
  "messages": {},
  "commands": {},
  "approvals": {},
  "session": {},
  "web": {},
  "connectors": {},
  "cron": {},
  "hooks": {},
  "discovery": {},
  "talk": {},
  "gateway": {},
  "memory": {},
  "embedding": {},
  "database": {},
  "cloud": {},
  "x402": {},
  "media": {},
  "mcp": {},
  "registry": {},
  "features": {},
  "customActions": []
}

Canonical Runtime Routing

These three fields define the active runtime topology:

FieldDescription
deploymentTargetWhere the active server runs: local, cloud, or remote
linkedAccountsWhich provider or cloud accounts are linked
serviceRoutingWhich backend handles llmText, tts, media, embeddings, and rpc
json5
{
  deploymentTarget: {
    runtime: "remote",
    provider: "remote",
    remoteApiBase: "https://eliza.example.com",
  },
  linkedAccounts: {
    elizacloud: {
      status: "linked",
      source: "oauth",
    },
  },
  serviceRouting: {
    llmText: {
      backend: "openrouter",
      transport: "direct",
      primaryModel: "openrouter/anthropic/claude-sonnet-4.6",
    },
  },
}

meta

Metadata about the config file itself.

FieldTypeDefaultDescription
lastTouchedVersionstring--Last Eliza version that wrote this config
lastTouchedAtstring--ISO timestamp when config was last written

auth

Authentication profiles and provider ordering for multi-account setups.

FieldTypeDefaultDescription
profilesRecord<string, AuthProfileConfig>--Named auth profiles (see sub-table)
orderRecord<string, string[]>--Provider-to-profile ordering for profile selection
cooldowns.billingBackoffHoursnumber5Default billing backoff (hours)
cooldowns.billingBackoffHoursByProviderRecord<string, number>--Per-provider billing backoff overrides (hours)
cooldowns.billingMaxHoursnumber24Billing backoff cap (hours)
cooldowns.failureWindowHoursnumber24Failure window for backoff counter reset (hours)

AuthProfileConfig

FieldTypeDescription
providerstringProvider identifier
mode"api_key" | "oauth" | "token"Credential type: static API key, refreshable OAuth, or static bearer token
emailstringOptional email associated with the profile

env

Environment variable injection and shell env import.

FieldTypeDefaultDescription
shellEnv.enabledboolean--Import missing secrets from a login shell ($SHELL -l -c 'env -0')
shellEnv.timeoutMsnumber15000Timeout for the login shell exec (ms)
varsRecord<string, string>--Inline env vars applied when not already present in the process env
[key]string--Sugar: string values placed directly under env are treated as env var overrides
<Info> String values placed directly under the `env` key are treated as environment variable overrides. For example, `"env": { "OPENAI_API_KEY": "<OPENAI_API_KEY>" }` sets the key when not already present in the process environment. </Info>

wizard

Onboarding wizard state tracking.

FieldTypeDefaultDescription
lastRunAtstring--ISO timestamp of last wizard run
lastRunVersionstring--Eliza version of last wizard run
lastRunCommitstring--Git commit of last wizard run
lastRunCommandstring--Command used in last wizard run
lastRunMode"local" | "remote"--Whether the wizard ran locally or remotely

diagnostics

Runtime diagnostics, OpenTelemetry, and cache tracing.

FieldTypeDefaultDescription
enabledboolean--Enable diagnostics subsystem
flagsstring[]--Ad-hoc diagnostics flags (e.g. "telegram.http")

diagnostics.otel

OpenTelemetry export configuration.

FieldTypeDefaultDescription
enabledboolean--Enable OTEL export
endpointstring--OTEL collector endpoint URL
protocol"http/protobuf" | "grpc"--Transport protocol
headersRecord<string, string>--Headers sent with OTEL requests
serviceNamestring--Service name for OTEL spans
tracesboolean--Export traces
metricsboolean--Export metrics
logsboolean--Export logs
sampleRatenumber--Trace sample rate (0.0 -- 1.0)
flushIntervalMsnumber--Metric export interval (ms)

diagnostics.cacheTrace

FieldTypeDefaultDescription
enabledboolean--Enable cache trace logging
filePathstring--Cache trace output file
includeMessagesboolean--Include messages in trace
includePromptboolean--Include prompt in trace
includeSystemboolean--Include system prompt in trace

logging

Logging level, file output, and console styling.

FieldTypeDefaultDescription
level"silent" | "fatal" | "error" | "warn" | "info" | "debug" | "trace"--File log level
filestring--Log file path
consoleLevel"silent" | "fatal" | "error" | "warn" | "info" | "debug" | "trace"--Console log level
consoleStyle"pretty" | "compact" | "json"--Console output format
redactSensitive"off" | "tools""tools"Redact sensitive tokens in tool summaries
redactPatternsstring[]--Regex patterns used to redact sensitive tokens (defaults apply when unset)

update

Self-update configuration.

FieldTypeDefaultDescription
channel"stable" | "beta" | "nightly""stable"Release channel
checkOnStartbooleantrueCheck for updates on startup
checkIntervalSecondsnumber14400 (4h)Seconds between automatic checks
lastCheckAtstring--ISO timestamp of last check
lastCheckVersionstring--Version found at last check

browser

Browser automation and Chrome DevTools Protocol (CDP) configuration.

FieldTypeDefaultDescription
enabledboolean--Enable browser integration
evaluateEnabledbooleantrueAllow act:evaluate (arbitrary JS execution)
cdpUrlstring--Base CDP endpoint URL (for remote browsers)
remoteCdpTimeoutMsnumber1500Remote CDP HTTP timeout (ms)
remoteCdpHandshakeTimeoutMsnumbermax(remoteCdpTimeoutMs * 2, 2000)Remote CDP WebSocket handshake timeout (ms)
colorstring#FF4500Accent color for the Eliza browser profile (hex)
executablePathstring--Override the browser executable path (all platforms)
headlessbooleanfalseStart Chrome headless
noSandboxbooleanfalsePass --no-sandbox to Chrome (Linux containers)
attachOnlybooleanfalseNever launch; only attach to an existing browser
defaultProfilestring"chrome"Default profile when profile param is omitted
profilesRecord<string, BrowserProfileConfig>--Named browser profiles (see sub-table)
snapshotDefaults.mode"efficient"--Default snapshot mode

BrowserProfileConfig

FieldTypeDefaultDescription
cdpPortnumber--CDP port for this profile (allocated once, persisted)
cdpUrlstring--CDP URL for this profile (for remote Chrome)
driver"eliza" | "extension""eliza"Profile driver
colorstring--Profile color (hex, auto-assigned at creation)

ui

UI appearance configuration.

FieldTypeDefaultDescription
seamColorstring--Accent color for Eliza UI chrome (hex)
theme"eliza" | "qt314" | "web2000" | "programmer" | "haxor" | "psycho"--User's preferred UI theme (set during onboarding)
assistant.namestring--Assistant display name for UI surfaces
assistant.avatarstring--Avatar emoji, short text, or image URL/data URI

skills

Skill management, loading, and per-skill configuration.

FieldTypeDefaultDescription
allowBundledstring[]--Bundled skill allowlist (only these load; omit for all)
denyBundledstring[]--Bundled skill denylist (takes priority over allow)
load.extraDirsstring[]--Additional skill directories to scan (lowest precedence)
load.watchboolean--Watch skill folders for changes and refresh snapshot
load.watchDebounceMsnumber--Debounce for the skills watcher (ms)
install.preferBrewboolean--Prefer Homebrew for skill installation
install.nodeManager"npm" | "yarn" | "bun"--Package manager for skill installation
entriesRecord<string, SkillConfig>--Per-skill configuration (see sub-table)

SkillConfig (per entry)

FieldTypeDefaultDescription
enabledboolean--Enable or disable this skill
apiKeystring--API key for this skill
envRecord<string, string>--Environment variables for this skill
configRecord<string, unknown>--Arbitrary config passed to this skill

plugins

Plugin loading, allow/deny lists, and install records.

FieldTypeDefaultDescription
enabledboolean--Enable or disable plugin loading
allowstring[]--Plugin allowlist (plugin IDs)
denystring[]--Plugin denylist (plugin IDs)
load.pathsstring[]--Additional plugin/extension paths to load
slots.memorystring--Select which plugin owns the memory slot ("none" disables)
entriesRecord<string, PluginEntryConfig>--Per-plugin configuration overrides
installsRecord<string, PluginInstallRecord>--Installed plugin records

PluginEntryConfig

FieldTypeDescription
enabledbooleanEnable or disable this plugin
configRecord<string, unknown>Arbitrary config passed to this plugin

PluginInstallRecord

FieldTypeDescription
source"npm" | "archive" | "path"Installation source
specstringnpm spec or archive URL
sourcePathstringOriginal source path
installPathstringLocal install path
versionstringInstalled version
installedAtstringISO timestamp of installation

models

Custom model provider configuration.

FieldTypeDefaultDescription
mode"merge" | "replace"--How custom providers interact with built-in defaults
smallstring--Selected small model ID for fast tasks (set during onboarding)
largestring--Selected large model ID for complex reasoning (set during onboarding)
providersRecord<string, ModelProviderConfig>--Named model providers
bedrockDiscoveryBedrockDiscoveryConfig--AWS Bedrock auto-discovery settings

ModelProviderConfig

FieldTypeDefaultDescription
baseUrlstring--Provider API base URL
apiKeystring--API key
auth"api-key" | "aws-sdk" | "oauth" | "token"--Authentication mode
apiModelApi--API format: openai-completions, openai-responses, anthropic-messages, google-generative-ai, bedrock-converse-stream
headersRecord<string, string>--Extra request headers
authHeaderboolean--Include auth header
modelsModelDefinitionConfig[]--Model definitions for this provider

ModelDefinitionConfig

FieldTypeDefaultDescription
idstring--Model identifier
namestring--Display name
apiModelApi--API format override
reasoningboolean--Whether this model supports reasoning
inputArray<"text" | "image">--Supported input modalities
cost.inputnumber--Input cost per token
cost.outputnumber--Output cost per token
cost.cacheReadnumber--Cache read cost per token
cost.cacheWritenumber--Cache write cost per token
contextWindownumber--Context window size (tokens)
maxTokensnumber--Max output tokens
headersRecord<string, string>--Extra headers for this model
compatModelCompatConfig--Compatibility flags (supportsStore, supportsDeveloperRole, supportsReasoningEffort, maxTokensField)

BedrockDiscoveryConfig

FieldTypeDefaultDescription
enabledboolean--Enable Bedrock model auto-discovery
regionstring--AWS region
providerFilterstring[]--Filter by provider names
refreshIntervalnumber--Refresh interval (ms)
defaultContextWindownumber--Default context window for discovered models
defaultMaxTokensnumber--Default max tokens for discovered models

nodeHost

Node host configuration for remote browser proxy routing.

FieldTypeDefaultDescription
browserProxy.enabledbooleantrueEnable the browser proxy on the node host
browserProxy.allowProfilesstring[]--Allowlist of profile names exposed via the proxy

agents

Multi-agent configuration.

FieldTypeDescription
defaultsAgentDefaultsConfigDefault settings applied to all agents unless overridden per-agent
listAgentConfig[]Array of individual agent configurations

agents.defaults

Global agent defaults. Every agent inherits these unless overridden.

FieldTypeDefaultDescription
model.primarystring--Primary model (provider/model)
model.fallbacksstring[]--Model fallback chain
imageModel.primarystring--Image-capable model
imageModel.fallbacksstring[]--Image model fallback chain
modelsRecord<string, AgentModelEntryConfig>--Model catalog with optional aliases
workspacestring--Default working directory for agent runs
adminEntityIdstring--Stable owner/admin entity ID for control-chat ownership
repoRootstring--Repository root override for system prompt
userTimezonestring--IANA timezone for the user (defaults to host timezone)
timeFormat"auto" | "12" | "24"--Time format in system prompt
envelopeTimezonestring"utc"Envelope timestamp timezone ("utc", "local", "user", or IANA TZ)
envelopeTimestamp"on" | "off""on"Include absolute timestamps in message envelopes
envelopeElapsed"on" | "off""on"Include elapsed time in message envelopes
contextTokensnumber--Context window cap (for runtime estimates)
cliBackendsRecord<string, CliBackendConfig>--CLI backends for text-only fallback (claude-cli, etc.)
contextPruningAgentContextPruningConfig--Prune old tool results from LLM context
compactionAgentCompactionConfig--Compaction tuning and pre-compaction memory flush
memorySearchMemorySearchConfig--Vector memory search configuration
thinkingDefault"off" | "minimal" | "low" | "medium" | "high" | "xhigh"--Default thinking level
verboseDefault"off" | "on" | "full"--Default verbose level
elevatedDefault"off" | "on" | "ask" | "full"--Default elevated level
blockStreamingDefault"off" | "on"--Default block streaming level
blockStreamingBreak"text_end" | "message_end"--Block streaming boundary
blockStreamingChunkobject--Soft block chunking for streamed replies
blockStreamingCoalesceobject--Block reply coalescing (merge streamed chunks)
humanDelayHumanDelayConfig--Human-like delay between block replies
timeoutSecondsnumber--Agent run timeout
mediaMaxMbnumber--Max inbound media size in MB
typingIntervalSecondsnumber--Typing indicator interval
typingModeTypingMode--Typing indicator start mode (never, instant, thinking, message)
maxConcurrentnumber1Max concurrent agent runs across all conversations

agents.defaults.heartbeat

FieldTypeDefaultDescription
everystring"30m"Heartbeat interval (duration string, default unit: minutes)
activeHours.startstring--Start time (24h HH:MM, inclusive)
activeHours.endstring--End time (24h HH:MM, exclusive; use "24:00" for end-of-day)
activeHours.timezonestring"user"Timezone ("user", "local", or IANA TZ)
modelstring--Model override for heartbeat runs (provider/model)
sessionstring--Session key ("main" or explicit)
target"last" | "none" | string--Delivery target
tostring--Delivery override (E.164 for WhatsApp, chat ID for Telegram)
promptstring--Override the heartbeat prompt body
ackMaxCharsnumber30Max chars after HEARTBEAT_OK before delivery
includeReasoningbooleanfalseDeliver the model's reasoning payload for heartbeat runs

agents.defaults.subagents

FieldTypeDefaultDescription
maxConcurrentnumber1Max concurrent sub-agent runs
archiveAfterMinutesnumber60Auto-archive sub-agent sessions after N minutes
modelstring | { primary?, fallbacks? }--Default model for spawned sub-agents
thinkingstring--Default thinking level for spawned sub-agents

agents.defaults.sandbox

FieldTypeDefaultDescription
mode"off" | "non-main" | "all"--Sandbox mode for sessions
workspaceAccess"none" | "ro" | "rw"--Agent workspace access inside sandbox
sessionToolsVisibility"spawned" | "all""spawned"Session tools visibility for sandboxed sessions
scope"session" | "agent" | "shared"--Container/workspace scope
perSessionboolean--Legacy alias for scope
workspaceRootstring--Root directory for sandbox workspaces
dockerSandboxDockerSettings--Docker-specific sandbox settings
browserSandboxBrowserSettings--Sandboxed browser settings
pruneSandboxPruneSettings--Auto-prune settings

agents.list[]

Array of individual agent configurations:

FieldTypeDefaultDescription
idstring--Required. Unique agent identifier
defaultboolean--Whether this is the default agent
namestring--Agent display name
workspacestring--Agent workspace directory
agentDirstring--Agent-specific data directory
modelstring | { primary?, fallbacks? }--Model selection
skillsstring[]--Allowlist of skills (omit = all, empty = none)
memorySearchMemorySearchConfig--Per-agent memory search overrides
humanDelayHumanDelayConfig--Human-like delay between block replies
heartbeatobject--Per-agent heartbeat overrides (same shape as agents.defaults.heartbeat)
identityIdentityConfig--Agent identity configuration
groupChatGroupChatConfig--Group chat behavior
biostring[]--Agent bio lines (set during onboarding from style preset)
systemstring--System prompt
style{ all?, chat?, post? }--Communication style rules (arrays of strings)
adjectivesstring[]--Personality adjectives
topicsstring[]--Topics the agent engages with
postExamplesstring[]--Example social media posts demonstrating the agent's voice
messageExamplesarray--Example conversations demonstrating the agent's voice
subagents.allowAgentsstring[]--Allow spawning sub-agents under other agent IDs ("*" = any)
subagents.modelstring | { primary?, fallbacks? }--Per-agent default model for spawned sub-agents
sandboxobject--Per-agent sandbox isolation settings (same shape as agents.defaults.sandbox)
toolsAgentToolsConfig--Per-agent tool policy (see tools section for fields)
cloud.cloudAgentIdstring--Eliza Cloud agent record ID
cloud.lastStatusstring--Last known sandbox status
cloud.lastProvisionedAtstring--ISO timestamp of last provisioning

tools

Tool profiles, exec, web search/fetch, media understanding, links, and sandbox policies.

FieldTypeDefaultDescription
profileToolProfileId--Base tool profile applied before allow/deny lists
allowstring[]--Tool allowlist
alsoAllowstring[]--Additional allowlist entries merged with profile
denystring[]--Tool denylist
byProviderRecord<string, ToolPolicyConfig>--Per-provider or per-model tool policy overrides

tools.exec

Shell command execution tool configuration.

FieldTypeDefaultDescription
host"sandbox" | "gateway" | "node""sandbox"Exec host routing
security"deny" | "allowlist" | "full""deny"Exec security mode
ask"off" | "on-miss" | "always""on-miss"Approval prompting
nodestring--Default node binding for host=node
pathPrependstring[]--Directories prepended to PATH
safeBinsstring[]--Safe stdin-only binaries that run without allowlist entries
backgroundMsnumber--Default time (ms) before auto-backgrounding
timeoutSecnumber--Default timeout (seconds) before auto-killing
approvalRunningNoticeMsnumber10000Running notice interval for approval-backed exec (0 = off)
cleanupMsnumber--How long to keep finished sessions in memory (ms)
notifyOnExitboolean--Emit system event + heartbeat when backgrounded exec exits
applyPatch.enabledbooleanfalseEnable apply_patch for OpenAI models
applyPatch.allowModelsstring[]--Allowlist of model IDs that can use apply_patch

tools.web

Web search and fetch tool configuration.

tools.web.search

FieldTypeDefaultDescription
enabledboolean--Enable web search tool (default: true when API key present)
provider"brave" | "perplexity"--Search provider
apiKeystring--Brave Search API key (defaults to BRAVE_API_KEY env var)
maxResultsnumber--Default search results count (1--10)
timeoutSecondsnumber--Search request timeout
cacheTtlMinutesnumber--Cache TTL for search results
perplexity.apiKeystring--Perplexity/OpenRouter API key
perplexity.baseUrlstringhttps://openrouter.ai/api/v1Base URL for API requests
perplexity.modelstring"perplexity/sonar-pro"Model to use

tools.web.fetch

FieldTypeDefaultDescription
enabledbooleantrueEnable web fetch tool
maxCharsnumber--Max characters returned from fetched content
maxCharsCapnumber50000Hard cap for maxChars
timeoutSecondsnumber--Fetch request timeout
cacheTtlMinutesnumber--Cache TTL for fetched content
maxRedirectsnumber3Maximum redirects to follow
userAgentstring--Override User-Agent header
readabilitybooleantrueUse Readability to extract main content
firecrawl.enabledboolean--Enable Firecrawl fallback (default: true when apiKey set)
firecrawl.apiKeystring--Firecrawl API key
firecrawl.baseUrlstringhttps://api.firecrawl.devFirecrawl base URL
firecrawl.onlyMainContentbooleantrueKeep only main content
firecrawl.maxAgeMsnumber--Max age for cached Firecrawl content (ms)
firecrawl.timeoutSecondsnumber--Firecrawl request timeout

tools.media

Media understanding tools (image, audio, video) with model fallback chains and scope gating.

FieldTypeDefaultDescription
modelsMediaUnderstandingModelConfig[]--Shared model list applied across image/audio/video
concurrencynumber--Max concurrent media understanding runs
imageMediaUnderstandingConfig--Image understanding configuration
audioMediaUnderstandingConfig--Audio understanding configuration
videoMediaUnderstandingConfig--Video understanding configuration

MediaUnderstandingConfig (per modality)

FieldTypeDefaultDescription
enabledboolean--Enable understanding for this modality
scopeMediaUnderstandingScopeConfig--Scope gating (default action + rules)
maxBytesnumber--Max bytes to send
maxCharsnumber--Max output characters
promptstring--Default prompt
timeoutSecondsnumber--Timeout (seconds)
languagestring--Language hint (audio)
providerOptionsRecord<string, Record<string, string | number | boolean>>--Provider-specific query params
baseUrlstring--Base URL override
headersRecord<string, string>--Headers merged into requests
attachments.mode"first" | "all"--Select first or process multiple attachments
attachments.maxAttachmentsnumber1Max attachments to process
attachments.prefer"first" | "last" | "path" | "url"--Attachment ordering preference
modelsMediaUnderstandingModelConfig[]--Ordered model list (fallbacks in order)

Link understanding tool configuration.

FieldTypeDefaultDescription
enabledboolean--Enable link understanding
scopeMediaUnderstandingScopeConfig--Scope gating
maxLinksnumber--Max links to process per message
timeoutSecondsnumber--Default timeout (seconds)
modelsLinkModelConfig[]--Ordered model list (fallbacks in order)

tools.message

Message tool configuration for cross-context sends and broadcast.

FieldTypeDefaultDescription
crossContext.allowWithinProviderbooleantrueAllow sends to other channels within the same provider
crossContext.allowAcrossProvidersbooleanfalseAllow sends across different providers
crossContext.marker.enabledbooleantrueEnable origin markers for cross-context sends
crossContext.marker.prefixstring--Text prefix template (supports {channel})
crossContext.marker.suffixstring--Text suffix template (supports {channel})
broadcast.enabledbooleantrueEnable broadcast action

tools.agentToAgent

FieldTypeDefaultDescription
enabledbooleanfalseEnable agent-to-agent messaging tools
allowstring[]--Allowlist of agent IDs or patterns

tools.elevated

Elevated exec permissions for the host machine.

FieldTypeDefaultDescription
enabledbooleantrueEnable or disable elevated mode
allowFromAgentElevatedAllowFromConfig--Approved senders for /elevated (per-provider allowlists)

tools.subagents

Sub-agent tool policy defaults.

FieldTypeDefaultDescription
modelstring | { primary?, fallbacks? }--Default model for spawned sub-agents
tools.allowstring[]--Tool allowlist for sub-agents
tools.denystring[]--Tool denylist for sub-agents

tools.sandbox

Sandbox tool policy defaults (deny wins).

FieldTypeDefaultDescription
tools.allowstring[]--Tool allowlist for sandboxed sessions
tools.denystring[]--Tool denylist for sandboxed sessions

bindings

Agent-to-channel routing bindings. Array of AgentBinding objects.

FieldTypeDescription
agentIdstringAgent ID to route to
match.channelstringChannel identifier (e.g. "telegram", "discord")
match.accountIdstringOptional account ID
match.peer.kind"dm" | "group" | "channel"Peer type
match.peer.idstringPeer identifier
match.guildIdstringOptional Discord guild ID
match.teamIdstringOptional Slack team ID

broadcast

Broadcast peer routing strategy.

FieldTypeDefaultDescription
strategy"parallel" | "sequential"--Default processing strategy for broadcast peers
[peerId]string[]--Map peer IDs to arrays of agent IDs that should all process messages

audio

Audio configuration. Currently a placeholder for future audio-specific settings. Accepts arbitrary key-value pairs.


messages

Message processing configuration.

FieldTypeDefaultDescription
responsePrefixstring--Prefix for all outbound replies. "auto" derives [{identity.name}]. Supports {model}, {modelFull}, {provider}, {thinkingLevel}, {identity.name} templates
groupChatGroupChatConfig--Group chat behavior configuration
ackReactionstring--Emoji reaction for acknowledging inbound messages (empty disables)
ackReactionScope"group-mentions" | "group-all" | "direct" | "all""group-mentions"When to send ack reactions
removeAckAfterReplybooleanfalseRemove ack reaction after reply is sent

messages.queue

FieldTypeDefaultDescription
modeQueueMode--Queue mode: steer, followup, collect, steer-backlog, steer+backlog, queue, interrupt
byChannelRecord<string, QueueMode>--Per-channel queue mode overrides (keys: whatsapp, telegram, discord, googlechat, slack, signal, imessage, msteams, webchat)
debounceMsnumber--Debounce delay for rapid messages
debounceMsByChannelRecord<string, number>--Per-channel debounce overrides (ms)
capnumber--Max queue size
drop"old" | "new" | "summarize"--Drop policy when cap is reached

messages.inbound

FieldTypeDefaultDescription
debounceMsnumber--Debounce rapid inbound messages per sender
byChannelRecord<string, number>--Per-channel debounce overrides

messages.tts

Text-to-speech configuration.

FieldTypeDefaultDescription
auto"off" | "always" | "inbound" | "tagged"--Auto-TTS mode (preferred over enabled)
enabledboolean--Legacy: enable auto-TTS when auto is not set
mode"final" | "all"--Apply TTS to final replies only or all replies
provider"elevenlabs" | "openai" | "edge"--Primary TTS provider
summaryModelstring--Model override for TTS auto-summary (provider/model or alias)
maxTextLengthnumber--Hard cap for text sent to TTS (chars)
timeoutMsnumber--API request timeout (ms)
prefsPathstring--Path for local TTS user preferences JSON

messages.tts.modelOverrides

FieldTypeDefaultDescription
enabledboolean--Enable model-provided overrides for TTS
allowTextboolean--Allow model-provided TTS text blocks
allowProviderboolean--Allow model-provided provider override
allowVoiceboolean--Allow model-provided voice/voiceId override
allowModelIdboolean--Allow model-provided modelId override
allowVoiceSettingsboolean--Allow model-provided voice settings override
allowNormalizationboolean--Allow model-provided normalization or language overrides
allowSeedboolean--Allow model-provided seed override

messages.tts.elevenlabs

FieldTypeDefaultDescription
apiKeystring--ElevenLabs API key
baseUrlstring--ElevenLabs base URL
voiceIdstring--Voice ID
modelIdstring--Model ID
seednumber--Seed for deterministic generation
applyTextNormalization"auto" | "on" | "off"--Text normalization
languageCodestring--Language code
voiceSettings.stabilitynumber--Voice stability
voiceSettings.similarityBoostnumber--Similarity boost
voiceSettings.stylenumber--Style
voiceSettings.useSpeakerBoostboolean--Use speaker boost
voiceSettings.speednumber--Speed

messages.tts.openai

FieldTypeDefaultDescription
apiKeystring--OpenAI API key
modelstring--TTS model
voicestring--Voice identifier

messages.tts.edge

FieldTypeDefaultDescription
enabledboolean--Explicitly allow Edge TTS (no API key required)
voicestring--Voice identifier
langstring--Language
outputFormatstring--Output format
pitchstring--Pitch
ratestring--Rate
volumestring--Volume
saveSubtitlesboolean--Save subtitles
proxystring--Proxy URL
timeoutMsnumber--Timeout (ms)

commands

Command registration and access control.

FieldTypeDefaultDescription
nativeNativeCommandsSetting"auto"Enable native command registration
nativeSkillsNativeCommandsSetting"auto"Enable native skill command registration
textbooleantrueEnable text command parsing
bashbooleanfalseAllow bash chat command (! / /bash alias)
bashForegroundMsnumber2000How long bash waits before backgrounding (0 = immediately)
configbooleanfalseAllow /config command
debugbooleanfalseAllow /debug command
restartbooleanfalseAllow restart commands/tools
useAccessGroupsbooleantrueEnforce access-group allowlists/policies for commands

approvals

Exec approval forwarding to chat channels.

approvals.exec

FieldTypeDefaultDescription
enabledbooleanfalseEnable forwarding exec approvals to chat channels
mode"session" | "targets" | "both""session"Delivery mode
agentFilterstring[]--Only forward for these agent IDs (omit = all)
sessionFilterstring[]--Only forward for these session key patterns (substring or regex)
targetsExecApprovalForwardTarget[]--Explicit delivery targets (used when mode includes "targets")

ExecApprovalForwardTarget

FieldTypeDescription
channelstringChannel ID (e.g. "discord", "slack")
tostringDestination ID (channel/user ID depending on channel)
accountIdstringOptional account ID for multi-account channels
threadIdstring | numberOptional thread ID

session

Session scoping, idle timeout, and reset configuration.

FieldTypeDefaultDescription
scopeSessionScope--Session scoping strategy
dmScopeDmScope"main"DM session scoping
identityLinksRecord<string, string[]>--Map platform-prefixed identities to canonical DM peers
resetTriggersstring[]--Message patterns that trigger a session reset
idleMinutesnumber--Minutes of idle before session reset
resetSessionResetConfig--Global session reset configuration
resetByTypeSessionResetByTypeConfig--Per-type reset overrides (dm, group, thread)
resetByChannelRecord<string, SessionResetConfig>--Per-channel reset overrides
storestring--Session store path
typingIntervalSecondsnumber--Typing indicator interval
typingModeTypingMode--Typing indicator mode
mainKeystring--Main session key
sendPolicySessionSendPolicyConfig--Session send policy
agentToAgent.maxPingPongTurnsnumber5Max ping-pong turns between requester/target (0--5)

web

WhatsApp web provider configuration.

FieldTypeDefaultDescription
enabledbooleantrueEnable the WhatsApp web provider
heartbeatSecondsnumber--Heartbeat interval
reconnect.initialMsnumber--Initial reconnect delay (ms)
reconnect.maxMsnumber--Max reconnect delay (ms)
reconnect.factornumber--Backoff factor
reconnect.jitternumber--Jitter factor
reconnect.maxAttemptsnumber--Max reconnect attempts (0 = unlimited)

connectors

Messaging connector configuration. Each key is a connector ID (e.g. telegram, discord, slack). The channels key is deprecated in favor of connectors.

json
{
  "connectors": {
    "telegram": {
      "enabled": true,
      "botToken": "123456:ABC..."
    },
    "discord": {
      "enabled": true,
      "botToken": "Bot ..."
    }
  }
}

Common fields per connector:

FieldTypeDescription
enabledbooleanEnable/disable without removing config
botToken / token / apiKeystringAuthentication credential
dmPolicy"open" | "pairing" | "closed"DM access control
configWritesbooleanAllow the connector to write config on events
<Warning> The `channels` key is deprecated. Migrate to `connectors` for forward compatibility. </Warning>

cron

Scheduled job configuration.

FieldTypeDefaultDescription
enabledboolean--Enable cron jobs
storestring--Cron state persistence path
maxConcurrentRunsnumber--Max concurrent cron runs

hooks

Event-driven hook system: webhooks, Gmail integration, and internal agent event hooks.

FieldTypeDefaultDescription
enabledboolean--Enable the hooks system
pathstring--Webhook endpoint path
tokenstring--Webhook auth token
maxBodyBytesnumber--Max webhook body size
presetsstring[]--Hook presets to load
transformsDirstring--Directory for hook transform modules
mappingsHookMappingConfig[]--Array of hook mapping rules

Hook Mapping Config (hooks.mappings[])

FieldTypeDefaultDescription
idstring--Mapping identifier
match.pathstring--URL path pattern to match
match.sourcestring--Source filter
action"wake" | "agent"--Hook action type
wakeMode"now" | "next-heartbeat"--When to wake the agent
namestring--Hook name
sessionKeystring--Session key override
messageTemplatestring--Template for message content
textTemplatestring--Template for text content
deliverboolean--Whether to deliver the result
allowUnsafeExternalContentboolean--Dangerous: Disable external content safety wrapping
channelstring--Target channel: "last", "whatsapp", "telegram", "discord", "googlechat", "slack", "signal", "imessage", "msteams"
tostring--Destination ID
modelstring--Override model for this hook (provider/model)
thinkingstring--Thinking level override
timeoutSecondsnumber--Hook processing timeout
transform.modulestring--Transform module path
transform.exportstring--Export name from transform module

hooks.gmail

Gmail webhook integration via Google Pub/Sub.

FieldTypeDefaultDescription
accountstring--Gmail account
labelstring--Gmail label to watch
topicstring--Pub/Sub topic
subscriptionstring--Pub/Sub subscription
pushTokenstring--Push notification token
hookUrlstring--Webhook URL
includeBodyboolean--Include email body
maxBytesnumber--Max email body bytes
renewEveryMinutesnumber--Watch renewal interval (minutes)
allowUnsafeExternalContentboolean--Dangerous: Disable external content safety wrapping
serve.bindstring--Local server bind address
serve.portnumber--Local server port
serve.pathstring--Local server path
tailscale.mode"off" | "serve" | "funnel"--Tailscale exposure mode
tailscale.pathstring--Tailscale path
tailscale.targetstring--Tailscale serve/funnel target (port, host:port, or full URL)
modelstring--Model override for Gmail hook processing
thinking"off" | "minimal" | "low" | "medium" | "high"--Thinking level override

hooks.internal

Internal agent event hooks.

FieldTypeDefaultDescription
enabledboolean--Enable internal hooks system
handlersInternalHookHandlerConfig[]--Legacy handler list
entriesRecord<string, HookConfig>--Per-hook config overrides (enabled, env, and arbitrary keys)
load.extraDirsstring[]--Additional hook directories to scan
installsRecord<string, HookInstallRecord>--Installed hook packs

InternalHookHandlerConfig

FieldTypeDescription
eventstringEvent key to listen for (e.g. "command:new", "session:start")
modulestringPath to handler module
exportstringExport name from module (default: "default")

HookInstallRecord

FieldTypeDescription
source"npm" | "archive" | "path"Installation source
specstringnpm spec or archive URL
sourcePathstringOriginal source path
installPathstringLocal install path
versionstringInstalled version
installedAtstringISO timestamp of installation
hooksstring[]Hook names provided by this pack

discovery

Network discovery configuration (mDNS and wide-area DNS-SD).

FieldTypeDefaultDescription
wideArea.enabledboolean--Enable wide-area DNS-SD discovery
wideArea.domainstring--Unicast DNS-SD domain (e.g. "eliza.internal")
mdns.mode"off" | "minimal" | "full""minimal"mDNS broadcast mode (off = disabled, minimal = omit cliPath/sshPort, full = include all)

talk

ElevenLabs Talk mode voice settings.

FieldTypeDefaultDescription
voiceIdstring--Default ElevenLabs voice ID
voiceAliasesRecord<string, string>--Voice name to ElevenLabs voice ID map
modelIdstring--Default ElevenLabs model ID
outputFormatstring--Default output format (e.g. mp3_44100_128)
apiKeystring--ElevenLabs API key (falls back to ELEVENLABS_API_KEY)
interruptOnSpeechbooleantrueStop speaking when user starts talking

gateway

Gateway server configuration: port, bind address, TLS, auth, HTTP endpoints, and node routing.

FieldTypeDefaultDescription
portnumber18789Gateway WS + HTTP port
mode"local" | "remote"--Gateway mode ("remote" disables local start)
bind"auto" | "lan" | "loopback" | "tailnet" | "custom""loopback"Bind address policy
customBindHoststring--Custom IP for bind="custom" (fallback: 0.0.0.0)
trustedProxiesstring[]--IPs of trusted reverse proxies for x-forwarded-for

gateway.tls

FieldTypeDefaultDescription
enabledboolean--Enable TLS for the gateway server
autoGeneratebooleantrueAuto-generate self-signed cert if cert/key are missing
certPathstring--PEM certificate path
keyPathstring--PEM private key path
caPathstring--CA bundle path for mTLS or custom roots

gateway.auth

FieldTypeDefaultDescription
mode"token" | "password""token"Authentication mode
tokenstring--Shared token for token mode
passwordstring--Shared password for password mode
allowTailscaleboolean--Allow Tailscale identity headers when serve mode is enabled

gateway.controlUi

FieldTypeDefaultDescription
enabledboolean--Serve the Control UI (default: /)
basePathstring--Base path prefix (e.g. "/eliza")
rootstring--Filesystem root for Control UI assets (defaults to dist/control-ui)
allowedOriginsstring[]--Allowed browser origins for WebSocket connections
allowInsecureAuthbooleanfalseAllow token-only auth over insecure HTTP
dangerouslyDisableDeviceAuthbooleanfalseDangerous: Disable device identity checks

gateway.tailscale

FieldTypeDefaultDescription
mode"off" | "serve" | "funnel"--Tailscale exposure mode
resetOnExitboolean--Reset serve/funnel configuration on shutdown

gateway.remote

Remote gateway connection settings.

FieldTypeDefaultDescription
urlstring--Remote Gateway WebSocket URL (ws:// or wss://)
transport"ssh" | "direct"--Transport for macOS remote connections
tokenstring--Token for remote auth
passwordstring--Password for remote auth
tlsFingerprintstring--Expected TLS certificate fingerprint (SHA-256)
sshTargetstring--SSH target for tunneling (user@host)
sshIdentitystring--SSH identity file path

gateway.reload

FieldTypeDefaultDescription
mode"off" | "restart" | "hot" | "hybrid""hybrid"Reload strategy for config changes
debounceMsnumber300Debounce window for config reloads (ms)

gateway.http

HTTP API endpoint configuration.

gateway.http.endpoints.chatCompletions

FieldTypeDefaultDescription
enabledbooleanfalseServe POST /v1/chat/completions

gateway.http.endpoints.responses

FieldTypeDefaultDescription
enabledbooleanfalseServe POST /v1/responses (OpenResponses API)
maxBodyBytesnumber20MBMax request body size (bytes)
files.allowUrlbooleantrueAllow URL fetches for input_file
files.allowedMimesstring[]--Allowed MIME types (case-insensitive)
files.maxBytesnumber5MBMax bytes per file
files.maxCharsnumber200kMax decoded characters per file
files.maxRedirectsnumber3Max redirects when fetching a URL
files.timeoutMsnumber10sFetch timeout (ms)
files.pdf.maxPagesnumber4Max pages to parse/render
files.pdf.maxPixelsnumber4MMax pixels per rendered page
files.pdf.minTextCharsnumber200Min text length to skip rasterization (chars)
images.allowUrlbooleantrueAllow URL fetches for input_image
images.allowedMimesstring[]--Allowed MIME types (case-insensitive)
images.maxBytesnumber10MBMax bytes per image
images.maxRedirectsnumber3Max redirects
images.timeoutMsnumber10sFetch timeout (ms)

gateway.nodes

Node routing configuration.

FieldTypeDefaultDescription
browser.mode"auto" | "manual" | "off""auto"Browser routing policy for node-hosted browser proxies
browser.nodestring--Pin to a specific node ID/name
allowCommandsstring[]--Additional node.invoke commands to allow
denyCommandsstring[]--Commands to deny even if in defaults or node claims

memory

Memory backend configuration.

FieldTypeDefaultDescription
backend"builtin" | "qmd""builtin"Memory backend
citations"auto" | "on" | "off"--Citation mode
qmdMemoryQmdConfig--QMD memory backend configuration

memory.qmd

FieldTypeDefaultDescription
commandstring--QMD binary command
includeDefaultMemoryboolean--Include default memory path
pathsMemoryQmdIndexPath[]--Index paths (each: { path, name?, pattern? })
sessions.enabledboolean--Enable session indexing
sessions.exportDirstring--Session export directory
sessions.retentionDaysnumber--Session retention (days)
update.intervalstring--Update interval
update.debounceMsnumber--Update debounce (ms)
update.onBootboolean--Run update on boot
update.embedIntervalstring--Embedding update interval
limits.maxResultsnumber--Max search results
limits.maxSnippetCharsnumber--Max snippet characters
limits.maxInjectedCharsnumber--Max injected characters
limits.timeoutMsnumber--Search timeout (ms)
scopeSessionSendPolicyConfig--Scope policy

embedding

Local embedding model configuration (GGUF models with Metal GPU support).

FieldTypeDefaultDescription
modelstring--GGUF model filename (e.g. "nomic-embed-text-v1.5.Q5_K_M.gguf")
modelRepostring--Hugging Face repo/source for model resolution
dimensionsnumber768Embedding vector dimension
contextSizenumber--Embedding context window size (must match model)
gpuLayersnumber | "auto" | "max"--GPU layers for model loading
idleTimeoutMinutesnumber30Minutes of inactivity before unloading model from memory (0 = never)

database

Database provider and connection configuration.

FieldTypeDefaultDescription
provider"pglite" | "postgres""pglite"Active database provider

database.pglite

FieldTypeDefaultDescription
dataDirstring~/.eliza/workspace/.eliza/.elizadbPGLite data directory

database.postgres

FieldTypeDefaultDescription
connectionStringstring--Full PostgreSQL connection string (takes precedence over individual fields)
hoststringlocalhostPostgreSQL host
portnumber5432PostgreSQL port
databasestring--Database name
userstring--Database user
passwordstring--Database password
sslbooleanfalseEnable SSL connection

cloud

Eliza Cloud integration for remote agent provisioning, inference proxying, and state backup.

FieldTypeDefaultDescription
enabledbooleanfalseEnable Eliza Cloud integration
providerstring--Cloud provider ID (e.g. "elizacloud"; set during onboarding)
baseUrlstringhttps://elizacloud.ai/api/v1API base URL
apiKeystring--Cached API key (stored encrypted via gateway auth)
inferenceMode"cloud" | "byok" | "local"--Inference routing: cloud (proxied), byok (user keys), local (no cloud)
autoProvisionbooleanfalseAuto-deploy agents to cloud on creation

cloud.bridge

WebSocket communication settings for cloud agents.

FieldTypeDefaultDescription
reconnectIntervalMsnumber3000Reconnection interval base (ms)
maxReconnectAttemptsnumber20Max reconnection attempts
heartbeatIntervalMsnumber30000Heartbeat interval (ms)

cloud.backup

Agent state snapshot settings.

FieldTypeDefaultDescription
autoBackupIntervalMsnumber3600000 (1 hour)Auto-backup interval (ms)
maxSnapshotsnumber10Maximum auto-snapshots to retain

cloud.container

Default container settings for new cloud deployments.

FieldTypeDefaultDescription
defaultImagestring--Default ECR image URI for agent containers
defaultArchitecture"arm64" | "x86_64""arm64"Default CPU architecture
defaultCpunumber1792Default CPU units
defaultMemorynumber1792Default memory (MB)
defaultPortnumber2138Default container port

x402

x402 HTTP payment protocol configuration.

FieldTypeDefaultDescription
enabledboolean--Enable x402 payments
privateKeystring--Wallet private key
networkstring--Network identifier (base, base-sepolia, bsc, bsc-testnet, solana, etc.)
payTostring--Payment recipient address
facilitatorUrlstring--Facilitator service URL
maxPaymentUsdnumber--Max single payment (USD)
maxTotalUsdnumber--Max total payments (USD)
dbPathstring--Payment database path

media

Media generation configuration (image, video, audio, vision providers).

media.image

FieldTypeDefaultDescription
enabledboolean--Enable image generation
mode"cloud" | "own-key"--Cloud (proxied) or own API key
provider"cloud" | "fal" | "openai" | "google" | "xai"--Image provider
defaultSizestring--Default image size
fal{ apiKey?, model?, baseUrl? }--Fal.ai configuration
openai{ apiKey?, model?, quality?, style? }--OpenAI configuration (quality: "standard" or "hd", style: "natural" or "vivid")
google{ apiKey?, model?, aspectRatio? }--Google configuration
xai{ apiKey?, model? }--xAI configuration

media.video

FieldTypeDefaultDescription
enabledboolean--Enable video generation
mode"cloud" | "own-key"--Cloud (proxied) or own API key
provider"cloud" | "fal" | "openai" | "google"--Video provider
defaultDurationnumber--Default video duration
fal{ apiKey?, model?, baseUrl? }--Fal.ai configuration
openai{ apiKey?, model? }--OpenAI configuration
google{ apiKey?, model? }--Google configuration

media.audio

FieldTypeDefaultDescription
enabledboolean--Enable audio generation
mode"cloud" | "own-key"--Cloud (proxied) or own API key
provider"cloud" | "suno" | "elevenlabs"--Audio provider
suno{ apiKey?, model?, baseUrl? }--Suno configuration
elevenlabs{ apiKey?, duration? }--ElevenLabs SFX configuration

media.vision

FieldTypeDefaultDescription
enabledboolean--Enable vision (image understanding)
mode"cloud" | "own-key"--Cloud (proxied) or own API key
provider"cloud" | "openai" | "google" | "anthropic" | "xai" | "ollama"--Vision provider
openai{ apiKey?, model?, maxTokens? }--OpenAI configuration
google{ apiKey?, model? }--Google configuration
anthropic{ apiKey?, model? }--Anthropic configuration
xai{ apiKey?, model? }--xAI configuration
ollama{ baseUrl?, model?, maxTokens?, autoDownload? }--Ollama configuration

mcp

MCP (Model Context Protocol) server definitions.

json
{
  "mcp": {
    "servers": {
      "my-server": {
        "type": "stdio",
        "command": "bunx",
        "args": ["-y", "@some/mcp-server"],
        "env": { "API_KEY": "..." }
      },
      "remote-server": {
        "type": "sse",
        "url": "https://mcp.example.com/sse",
        "headers": { "Authorization": "Bearer ..." }
      }
    }
  }
}

MCP Server Entry

FieldTypeDefaultDescription
typestring--Server type (e.g. "stdio", "sse")
commandstring--Command to execute (for stdio type)
argsstring[]--Command arguments
urlstring--Server URL (for sse or remote types)
envRecord<string, string>--Environment variables for the server process
headersRecord<string, string>--HTTP headers for remote connections
cwdstring--Working directory for the server process
timeoutInMillisnumber--Connection timeout (ms)

registry

ERC-8004 agent registry and ElizaMaker NFT collection configuration.

FieldTypeDefaultDescription
mainnetRpcstring--Ethereum mainnet (or local Anvil) RPC URL
registryAddressstring--ElizaAgentRegistry contract address
collectionAddressstring--ElizaMaker collection contract address

features

Feature flags for plugin auto-enable and feature toggles. Each key maps to either a boolean or an object with enabled and additional options.

json
{
  "features": {
    "shell": true,
    "browser": true,
    "cron": true,
    "someFeature": { "enabled": true, "option": "value" }
  }
}

customActions

User-defined custom actions for the agent. Array of CustomActionDef objects.

FieldTypeDefaultDescription
idstring--Required. Unique action identifier
namestring--Required. Action display name
descriptionstring--Required. Action description
similesstring[]--Alternative trigger phrases
parametersArray<{ name, description, required }>--Required. Action parameters
handlerCustomActionHandler--Required. Handler definition (see sub-table)
enabledboolean--Required. Whether action is enabled
createdAtstring--Required. ISO creation timestamp
updatedAtstring--Required. ISO last-updated timestamp

CustomActionHandler

The handler is one of three types:

HTTP handler:

FieldTypeDescription
type"http"Handler type
methodstringHTTP method
urlstringRequest URL
headersRecord<string, string>Optional request headers
bodyTemplatestringOptional request body template

Shell handler:

FieldTypeDescription
type"shell"Handler type
commandstringShell command to execute

Code handler:

FieldTypeDescription
type"code"Handler type
codestringJavaScript code to execute