Full reference for talond.yaml. All top-level sections are optional — defaults apply when omitted. Validated at startup using Zod; the daemon refuses to start with an invalid config.
Field Type Default Description logLeveltrace | debug | info | warn | error | fatalinfoPino log level dataDirstring dataRoot directory for runtime data (DB, IPC sockets, artifacts) backgroundProviderstring — Default provider for background agents (overrides backgroundAgent.defaultProvider) backgroundModelstring — Default model for background agents executionEnvobject — Execution environment configuration (see below)
Field Type Default Description typesqlitesqliteDatabase backend pathstring data/talond.sqliteSQLite file path (relative to cwd)
Field Type Default Description namestring required Unique persona identifier modelstring claude-sonnet-4-6Model ID passed to the provider providerstring — Override the default agent runner provider systemPromptFilestring — Path to system prompt Markdown file skillsstring[] []Skill names to attach subagentsstring[] []Sub-agent names the persona can invoke capabilities.allowstring[] []Granted capability labels capabilities.requireApprovalstring[] []Capability labels requiring user confirmation mountsmount[] []Filesystem mounts for sandboxed execution queryTimeoutMinutesinteger 1–480 10Max minutes the agent runner waits for a single query to complete. Increase for personas running long Codex tasks or deep research maxConcurrentinteger ≥ 1 — Max parallel agent runs for this persona
Field Type Default Description sourcestring required Host path targetstring required Mount target path modero | rwroMount mode
Field Type Default Description namestring required Unique channel identifier typeenum required telegram, slack, discord, whatsappBaileys, email, terminalenabledboolean trueEnable/disable at startup showToolCallsboolean falseSend tool-call status messages to the channel tokenRefstring — Optional token reference configobject {}Connector-specific config (see Channels guide)
Field Type Default Description personastring required Persona name channelstring required Channel name isDefaultboolean falseMark as default binding for this channel
Field Type Default Description maxAttemptsinteger ≥ 1 3Max delivery attempts before dead-letter backoffBaseMsinteger 1000Initial retry delay in ms backoffMaxMsinteger 60000Maximum retry delay in ms concurrencyLimitinteger ≥ 1 5Max simultaneous message processing
Field Type Default Description defaultProviderstring claude-codeDefault provider name providersrecord see below Provider configurations
Field Type Default Description enabledboolean falseEnable this provider commandstring required CLI command (e.g. claude) contextWindowTokensinteger 200000Context window size optionsobject — Provider-specific options contextManagement.enabledboolean falseEnable session rotation contextManagement.triggerMetricstring — Required when enabled. input_tokens, cache_read_input_tokens, cache_creation_input_tokens, or cache_total_input_tokens contextManagement.thresholdRatiofloat 0–1 — Required when enabled. Fraction of contextWindowTokens that triggers rotation contextManagement.recentMessageCountinteger 10Verbatim messages to include after rotation contextManagement.summarizerstring — Required when enabled. Sub-agent name for history compression (session-summarizer or session-observer) contextManagement.reflectionThresholdCharsinteger 12000Character threshold for observational memory reflection
Default provider config:
defaultProvider : claude-code
contextWindowTokens : 200000
triggerMetric : cache_read_input_tokens
summarizer : session-summarizer
contextWindowTokens : 256000
triggerMetric : input_tokens
summarizer : session-observer
baseUrl : ${OLLAMA_BASE_URL}
Field Type Default Description enabledboolean trueEnable background workers globally maxConcurrentinteger 1–10 3Max simultaneous workers defaultTimeoutMinutesinteger 15–480 30Default wall-clock timeout defaultProviderstring claude-codeProvider for workers providersrecord see below Provider configs (same structure as agentRunner, no contextManagement) claudePathstring — Explicit path to Claude Code binary
Field Type Default Description enabledboolean trueEnable sub-agent invocation globally profilesobject[] []Sub-agent profile definitions profiles[].namestring required Unique profile identifier profiles[].descriptionstring — Human-readable purpose profiles[].modelstring — Model ID for this sub-agent profiles[].providerstring — Provider name for this sub-agent
description : Fast code generation
Field Type Default Description modesubscription | api_keysubscriptionAuthentication mode apiKeystring — API key for api_key mode providers.<name>.apiKeystring — Per-provider API key providers.<name>.baseURLstring — Per-provider base URL (for Ollama, proxies)
For openai-compatible, Talon resolves credentials from auth.providers.<options.providerId> first and falls back to auth.providers.openai-compatible.
Field Type Default Description tickIntervalMsinteger ≥ 1000 5000Scheduler tick interval in ms
Field Type Default Description pollIntervalMsinteger ≥ 100 500IPC poll interval in ms daemonSocketDirstring data/ipc/daemonUnix socket directory
Field Type Default Description maxConcurrentPersonaTasksinteger 3Max parallel A2A tasks per persona defaultTimeoutMsinteger 300000Default A2A task timeout in ms maxHistoryEntriesinteger 50Max history entries kept per A2A task
maxConcurrentPersonaTasks : 3
Controls agent execution sandboxing (Docker or Apple Container).
Field Type Default Description runtimedocker | apple-containerdockerContainer runtime imagestring talon-sandbox:latestSandbox container image maxConcurrentinteger ≥ 1 3Max concurrent sandboxed agent processes networkDefaultoff | onoffDefault network access for sandboxed agents idleTimeoutMsinteger 1800000Idle container timeout (30 min) hardTimeoutMsinteger 3600000Hard container timeout (60 min) resourceLimits.memoryMbinteger 1024Memory limit per container in MB resourceLimits.cpusfloat 1CPU limit per container resourceLimits.pidsLimitinteger 256PID limit per container
Field Type Default Description enabledboolean falseEnable Sprite execution environments defaultImagestring — Default container image for sprites registrystring — Container registry base URL
defaultImage : talon-sprite:latest
registry : ghcr.io/ivo-toby
Field Type Default Description enabledboolean falseEnable isolated execution environments defaultProfilestring — Default profile name profilesrecord {}Named execution profiles
image : talon-sandbox:latest
Field Type Default Description enabledboolean falseEnable Langfuse tracing publicKeystring — Required when enabled secretKeystring — Required when enabled hoststring https://cloud.langfuse.comLangfuse instance URL exportModebatched | immediatebatchedExport strategy flushAtinteger ≥ 1 20Batch size before flush flushIntervalSecondsinteger ≥ 1 5Max seconds between flushes
Runtime guardrails: spending caps, rate limiting, and loop detection. All sub-sections are optional. Omit the block to disable.
Field Type Default Description daily_token_capinteger > 0 — Max tokens per persona per 24h rolling window hourly_token_capinteger > 0 — Max tokens per persona per 1h rolling window warn_at_percentnumber 1–100 80Log a warning when usage exceeds this percentage per_personarecord — Per-persona cap overrides (keys are persona names) per_persona.<name>.daily_token_capinteger > 0 — Persona-specific daily cap per_persona.<name>.hourly_token_capinteger > 0 — Persona-specific hourly cap
Field Type Default Description inbound_per_minuteinteger > 0 30Max inbound messages per channel per minute inbound_per_user_per_minuteinteger > 0 10Max inbound messages per sender per minute api_calls_per_minuteinteger > 0 60Reserved for future API rate limiting
Field Type Default Description max_turns_per_runinteger > 0 50Hard turn limit per agent run duplicate_call_thresholdinteger > 0 5Consecutive identical tool calls before blocking max_queue_depth_per_threadinteger > 0 100Max queued messages per thread before rejecting