Skip to content

Generated config reference

This page is generated from the same config field registries that power mono-agent config, recipe output, and the JSON Schema. Do not edit this table by hand; run pnpm run generate:config-reference.

Schema: https://raw.githubusercontent.com/robertsreberski/mono-agent/main/packages/agent-app/schema/mono-agent.config.schema.json

JSON keyTypeEnv overrideDefaultExampleNotes
agent.namestringMONO_AGENT_NAMEunsetResearch PartnerPublic display identity used for trace labels and default A2A metadata; never used in paths or service ids.
artifacts.dirstringMONO_AGENT_ARTIFACT_DIR.mono-agent/artifacts.mono-agent/artifactsConfigures dir for the artifacts section.
artifacts.memoryRetention.dryRunbooleanMONO_AGENT_ARTIFACT_MEMORY_RETENTION_DRY_RUNfalsetrueConfigures memoryRetention.dryRun for the artifacts section.
artifacts.memoryRetention.maxAgeDaysintegerMONO_AGENT_ARTIFACT_MEMORY_RETENTION_MAX_AGE_DAYS77Configures memoryRetention.maxAgeDays for the artifacts section.
artifacts.memoryRetention.maxCountintegerMONO_AGENT_ARTIFACT_MEMORY_RETENTION_MAX_COUNT50005000Configures memoryRetention.maxCount for the artifacts section.
artifacts.retention.dryRunbooleanMONO_AGENT_ARTIFACT_RETENTION_DRY_RUNfalsetrueConfigures retention.dryRun for the artifacts section.
artifacts.retention.maxAgeDaysintegerMONO_AGENT_ARTIFACT_RETENTION_MAX_AGE_DAYS365365Configures retention.maxAgeDays for the artifacts section.
artifacts.retention.maxCountintegerMONO_AGENT_ARTIFACT_RETENTION_MAX_COUNT5000050000Configures retention.maxCount for the artifacts section.
channels.pluginsarray--[][{"package":"@mono-agent/whatsapp-adapter","config":{"enabled":true}}]External channel plugin envelopes loaded by package name.
concurrency.maxConcurrentRunsintegerMONO_AGENT_CONCURRENCY_MAX_CONCURRENT_RUNSunset1Configures maxConcurrentRuns for the concurrency section.
concurrency.maxPendingRunsintegerMONO_AGENT_CONCURRENCY_MAX_PENDING_RUNSunset1Configures maxPendingRuns for the concurrency section.
context.identityPathstringMONO_AGENT_IDENTITY_PATHrequired./IDENTITY.mdConfigures identityPath for the context section.
context.selectedSkillsstring[]MONO_AGENT_SELECTED_SKILLS[]["example"]Configures selectedSkills for the context section.
context.skillDisclosurestringMONO_AGENT_SKILL_DISCLOSUREfullfullConfigures skillDisclosure for the context section.
context.skillMaxBytesintegerMONO_AGENT_SKILL_MAX_BYTES4800048000Configures skillMaxBytes for the context section.
context.skillsRootstringMONO_AGENT_SKILLS_ROOTunsetexampleConfigures skillsRoot for the context section.
context.soulPathstringMONO_AGENT_SOUL_PATHunsetexampleConfigures soulPath for the context section.
continuations.detachedServicesarray--[][{"name":"work-control","tokenEnv":"WORK_CONTROL_CONTINUATION_TOKEN"}]Detached service names and the environment variable holding each bearer; raw tokens never belong in config.
continuations.enabledboolean--truetrueEnables the host-owned durable continuation service when the block is configured.
continuations.hoststring--127.0.0.1127.0.0.1Loopback bind host; non-loopback values are rejected.
continuations.limits.deliveryTimeoutMsinteger--120000120000Hard native-delivery and history-only commit timeout; ambiguous sends are never replayed automatically.
continuations.limits.maxActivePerOrigininteger--500500Admission ceiling for one immutable run or detached-route claim origin.
continuations.limits.maxActiveRecordsinteger--1000010000Global admission ceiling for non-terminal durable continuations.
continuations.limits.maxConcurrentinteger--1616Maximum independently tracked continuation workers; one hung provider cannot occupy the whole service.
continuations.limits.operatorPageSizeinteger--100100Maximum keyset-paginated records returned by one operator list request.
continuations.limits.synthesisTimeoutMsinteger--600000600000Hard synthesis timeout; an ambiguous timeout is dead-lettered and never synthesized twice.
continuations.namedRoutesobject--{}{"verification":{"mode":"capture","conversationId":"slack:D123"}}Host-owned detached delivery policies: notify_if_actionable, capture, or silent.
continuations.portinteger--43194319Fixed loopback continuation service port (1-65535); persisted result/status URLs and the operator CLI remain valid across restarts.
continuations.retention.capturedTextMaxAgeMsinteger--25920000002592000000Maximum age in milliseconds for retained captured synthesis text.
continuations.retention.capturedTextMaxRecordsinteger--10001000Maximum delivered capture continuations whose synthesized text remains retrievable.
continuations.retention.terminalMaxAgeMsinteger--3153600000031536000000Maximum age in milliseconds for terminal continuation tombstones.
continuations.retention.terminalMaxRecordsinteger--5000050000Maximum retained terminal metadata/idempotency tombstones after payload compaction.
continuations.stateDirstring--.mono-agent/continuations.mono-agent/continuationsOwner-only per-record continuation store and token-derivation secret.
cron.conversationIdstringMONO_AGENT_CRON_CONVERSATION_IDunsetexampleConfigures conversationId for the cron section.
cron.dirstringMONO_AGENT_CRON_DIRcroncronConfigures dir for the cron section.
cron.effortstringMONO_AGENT_CRON_EFFORTunsetexampleConfigures effort for the cron section.
cron.enabledbooleanMONO_AGENT_CRON_ENABLEDfalsetrueEnables the cron capability.
cron.expressionstringMONO_AGENT_CRON_EXPRESSIONunsetexampleConfigures expression for the cron section.
cron.jobsarrayMONO_AGENT_CRON_JOBS_JSON[][{"id":"daily","expression":"0 8 * * *","prompt":"Summarize the overnight queue."}]Inline scheduled jobs. Folder-based cron jobs still merge from cron.dir.
cron.modelstringMONO_AGENT_CRON_MODELunsetexampleConfigures model for the cron section.
cron.notifybooleanMONO_AGENT_CRON_NOTIFYfalsefalseConfigures notify for the cron section.
cron.notifyConversationIdstringMONO_AGENT_CRON_NOTIFY_CONVERSATION_IDunsetexampleConfigures notifyConversationId for the cron section.
cron.notifyFailureCooldownHoursintegerMONO_AGENT_CRON_NOTIFY_FAILURE_COOLDOWN_HOURS66Configures notifyFailureCooldownHours for the cron section.
cron.operatorActions.enabledbooleanMONO_AGENT_CRON_OPERATOR_ACTIONS_ENABLEDfalsetrueAllows API-key-authenticated, explicitly confirmed run-now and runtime enable/disable actions. Defaults off and never rewrites cron config sources.
cron.promptstringMONO_AGENT_CRON_PROMPTunsetexampleConfigures prompt for the cron section.
cron.timezonestringMONO_AGENT_CRON_TIMEZONEUTCUTCConfigures timezone for the cron section.
interaction.askUser.timeoutMsintegerMONO_AGENT_ASK_USER_TIMEOUT_MS600000600000Maximum wait for one AskUser interaction (one to five questions); set null to disable automatic expiry.
interaction.bridge.hoststringMONO_AGENT_INTERACTION_BRIDGE_HOST127.0.0.1127.0.0.1Bind host for the app-owned AskUser/tool-progress bridge. Defaults to loopback; keep it local because non-loopback values are not rejected.
interaction.bridge.portintegerMONO_AGENT_INTERACTION_BRIDGE_PORT00Bridge port. 0 chooses an ephemeral port.
interaction.progress.enabledbooleanMONO_AGENT_PROGRESS_ENABLEDtruetrueWhether tool progress posts are relayed to channel status messages.
memory.backendstringMONO_AGENT_MEMORY_BACKENDbujobujoConfigures backend for the memory section.
memory.consolidation.cronstringMONO_AGENT_MEMORY_CONSOLIDATION_CRON0 */2 * * *0 */2 * * *Configures consolidation.cron for the memory section.
memory.consolidation.enabledbooleanMONO_AGENT_MEMORY_CONSOLIDATION_ENABLEDtruetrueEnables the memory capability.
memory.embeddings.apiKeystringMONO_AGENT_MEMORY_EMBEDDINGS_API_KEYunsetexampleSecret value for memory.embeddings.apiKey; prefer the env override.
memory.embeddings.apiKeyEnvstringMONO_AGENT_MEMORY_EMBEDDINGS_API_KEY_ENVunsetexampleEnvironment-variable name containing an optional provider bearer token; an explicitly declared name must resolve before memory starts.
memory.embeddings.circuitBreaker.cooldownMsintegerMONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_COOLDOWN_MS3000030000Configures embeddings.circuitBreaker.cooldownMs for the memory section.
memory.embeddings.circuitBreaker.failureThresholdintegerMONO_AGENT_MEMORY_EMBEDDINGS_CIRCUIT_BREAKER_FAILURE_THRESHOLD33Configures embeddings.circuitBreaker.failureThreshold for the memory section.
memory.embeddings.dimintegerMONO_AGENT_MEMORY_EMBEDDINGS_DIMunset1Configures embeddings.dim for the memory section.
memory.embeddings.endpointstringMONO_AGENT_MEMORY_EMBEDDINGS_ENDPOINTunsetexampleProvider service root. LM Studio uses /v1/embeddings and defaults to http://localhost:1234.
memory.embeddings.modelstringMONO_AGENT_MEMORY_EMBEDDINGS_MODELunsetnomic-embed-text:v1.5Configures embeddings.model for the memory section.
memory.embeddings.providerstringMONO_AGENT_MEMORY_EMBEDDINGS_PROVIDERunsetollamaEmbedding service used by Journal/BuJo memory: ollama, lmstudio, or openai.
memory.embeddings.timeoutMsintegerMONO_AGENT_MEMORY_EMBEDDINGS_TIMEOUT_MS1000010000Configures embeddings.timeoutMs for the memory section.
memory.llm.endpointstringMONO_AGENT_MEMORY_LLM_ENDPOINTunsetexampleConfigures llm.endpoint for the memory section.
memory.llm.modelstringMONO_AGENT_MEMORY_LLM_MODELunsetopenai-codex:gpt-5.6-terraConfigures llm.model for the memory section.
memory.llm.providerstringMONO_AGENT_MEMORY_LLM_PROVIDERunsetagent-hostConfigures llm.provider for the memory section.
memory.llm.timeoutMsintegerMONO_AGENT_MEMORY_LLM_TIMEOUT_MS6000060000Configures llm.timeoutMs for the memory section.
memory.llm.tracebooleanMONO_AGENT_MEMORY_LLM_TRACEtruetrueConfigures llm.trace for the memory section.
memory.maxBytesintegerMONO_AGENT_MEMORY_MAX_BYTES6400064000Configures maxBytes for the memory section.
memory.modestringMONO_AGENT_MEMORY_MODElitejournalConfigures mode for the memory section.
memory.pathstringMONO_AGENT_MEMORY_PATHunset./.mono-agent/memoryConfigures path for the memory section.
memory.recallTool.enabledbooleanMONO_AGENT_MEMORY_RECALL_TOOL_ENABLEDtruetrueEnables explicit memory reads: targeted MemoryRecall for every backend and chronological MemoryJournal when a local store supports it. Automatic recall is unchanged.
memory.rememberTool.enabledbooleanMONO_AGENT_MEMORY_REMEMBER_TOOL_ENABLEDtruetrueEnables the memory capability.
memory.supermemory.apiKeystringMONO_AGENT_MEMORY_SUPERMEMORY_API_KEYunsetexampleSecret value for memory.supermemory.apiKey; prefer the env override.
memory.supermemory.apiKeyEnvstringMONO_AGENT_MEMORY_SUPERMEMORY_API_KEY_ENVunsetexampleSecret value for memory.supermemory.apiKeyEnv; prefer the env override.
memory.supermemory.baseUrlstringMONO_AGENT_MEMORY_SUPERMEMORY_BASE_URLunsetexampleConfigures supermemory.baseUrl for the memory section.
memory.supermemory.containerstringMONO_AGENT_MEMORY_SUPERMEMORY_CONTAINERunsetexampleConfigures supermemory.container for the memory section.
memory.supermemory.exposeMcpServerbooleanMONO_AGENT_MEMORY_SUPERMEMORY_EXPOSE_MCP_SERVERfalsetrueConfigures supermemory.exposeMcpServer for the memory section.
memory.supermemory.timeoutMsintegerMONO_AGENT_MEMORY_SUPERMEMORY_TIMEOUT_MS1000010000Configures supermemory.timeoutMs for the memory section.
memory.writeModestringMONO_AGENT_MEMORY_WRITE_MODEdisableddisabledConfigures writeMode for the memory section.
monitors.coalesceMsinteger--200200Window over which stdout lines are batched into one event wake (compiled cap 5000).
monitors.enabledboolean--falsetrueOpt in to the Pi-native Monitor/MonitorStop tools. Monitors are a streaming class of the process-job substrate and additionally require processJobs.enabled; wake delivery supports Telegram, Slack, and existing web conversations.
monitors.maxActiveinteger--88Maximum simultaneously running monitors across every conversation, counted independently of processJobs.maxConcurrent (compiled cap 32).
monitors.maxActivePerConversationinteger--23Maximum simultaneously running monitors for one conversation (compiled cap 8).
monitors.maxBatchBytesinteger--6553665536Maximum bytes carried by one event batch; older lines are dropped and counted (compiled cap 1 MiB).
monitors.maxBatchLinesinteger--200200Maximum lines carried by one event batch; older lines are dropped and counted (compiled cap 2000).
monitors.maxChainDepthinteger--44Maximum host-owned monitor wake chain depth (compiled cap 64).
monitors.maxLineBytesinteger--40964096Per-event line clamp applied after redaction (compiled cap 64 KiB).
monitors.maxRuntimeMsinteger--36000003600000Ceiling for a timed monitor; Monitor.timeout_ms may lower it, never raise it (compiled cap 1 hour).
monitors.maxWakeIntervalMsinteger--30000060000Ceiling for Monitor.min_wake_interval_ms; the receipt reports the clamped effective interval (compiled cap 300000).
monitors.persistentMaxRuntimeMsinteger--8640000043200000Ceiling for a persistent monitor, which ignores timeout_ms (compiled cap 24 hours).
monitors.rateLimit.maxLinesPerWindowinteger--200200Lines per window above which a window counts as over budget (compiled cap 20000).
monitors.rateLimit.sustainedWindowsinteger--55Consecutive over-budget windows that stop a monitor with rate_limited and one terminal wake (compiled cap 60).
monitors.rateLimit.windowMsinteger--10001000Length of one rate-limit accounting window (compiled cap 60000).
observability.exportersarrayMONO_AGENT_OBSERVABILITY_EXPORTERSunset[]Configures exporters for the observability section.
openaiApi.allowNonLoopbackbooleanMONO_AGENT_OPENAI_API_ALLOW_NON_LOOPBACKfalsetrueConfigures allowNonLoopback for the openaiApi section.
openaiApi.apiKeystringMONO_AGENT_OPENAI_API_KEYunsetenv:MONO_AGENT_OPENAI_API_KEYSecret value for openaiApi.apiKey; prefer the env override.
openaiApi.basePathstringMONO_AGENT_OPENAI_API_BASE_PATH/v1/v1Configures basePath for the openaiApi section.
openaiApi.enabledbooleanMONO_AGENT_OPENAI_API_ENABLEDfalsetrueEnables the openaiApi capability.
openaiApi.hoststringMONO_AGENT_OPENAI_API_HOST127.0.0.1127.0.0.1Configures host for the openaiApi section.
openaiApi.modelIdstringMONO_AGENT_OPENAI_API_MODEL_IDagentagentConfigures modelId for the openaiApi section.
openaiApi.portintegerMONO_AGENT_OPENAI_API_PORT00Configures port for the openaiApi section.
processJobs.enabledboolean--falsetrueOpt in to owner-private Pi-native Exec/Bash background process jobs (unsupported on Windows).
processJobs.maxActivePerConversationinteger--22Maximum non-terminal process jobs admitted from one conversation (compiled cap 8).
processJobs.maxChainDepthinteger--44Maximum host-owned background wake chain depth (compiled cap 64).
processJobs.maxConcurrentinteger--44Maximum simultaneously running process jobs (compiled cap 32).
processJobs.maxOutputBytesinteger--10485761048576Combined retained process-output ceiling (compiled cap 8 MiB).
processJobs.maxQueueAgeMsinteger--300000300000Maximum admission-to-spawn queue age (compiled cap one hour).
processJobs.maxQueuedinteger--88Maximum queued process jobs after running capacity is full (compiled cap 64).
processJobs.maxRuntimeMsinteger--18000001800000Host runtime ceiling per owned process group (compiled cap 24 hours; calls may narrow it).
processJobs.previewCharsinteger--20002000Bound for redacted wake/operator output previews (compiled cap 8000; calls may narrow it).
processJobs.retention.artifactMaxBytesinteger--268435456268435456Aggregate retained terminal output artifact budget (compiled cap 1 GiB).
processJobs.retention.maxAgeMsinteger--604800000604800000Maximum terminal process-job record age (compiled cap 30 days).
processJobs.retention.maxRecordsinteger--10001000Maximum retained terminal process-job records (compiled cap 10000).
processJobs.stateDirstring--.mono-agent/process-jobs.mono-agent/process-jobsAgent-root-confined owner-private process-job records and artifacts; must be disjoint from every restart —clear-sessions purge root.
processJobs.unsafeAllowUnprotectedStateboolean--falsefalseDangerous trusted-host opt-in: with explicit sandbox.mode=off and Pi-only routes, retain ProcessJobs state without synthetic SRT protection; state and the operator secret become model-accessible.
providersobjectMONO_AGENT_PROVIDERS_JSONunset{"openai-codex":{},"ollama":{"baseUrl":"http://localhost:11434"}}Provider-id map that widens or narrows the selectable Pi model catalog; MONO_AGENT_PROVIDERS_JSON projects the whole object because provider ids are dynamic.
providers.piAuthPathstringMONO_AGENT_PI_AUTH_PATHunset~/.pi/agent/auth.jsonConfigures piAuthPath for the providers section.
providers.piNative.maxRetryDelayMsintegerMONO_AGENT_MAX_RETRY_DELAY_MS6000060000Configures piNative.maxRetryDelayMs for the providers section.
providers.piNative.piMaxRetriesintegerMONO_AGENT_PI_MAX_RETRIES22Configures piNative.piMaxRetries for the providers section.
providers.piNative.piSessionsRootstringMONO_AGENT_PI_SESSIONS_ROOTunsetexampleConfigures piNative.piSessionsRoot for the providers section.
providers.piNative.promptCacheDiagnosticsbooleanMONO_AGENT_PI_PROMPT_CACHE_DIAGNOSTICSfalsetrueEmit metadata-only prompt-cache request fingerprints into run artifacts; never prompt text, tool arguments, cache keys, endpoints or credentials.
providers.piNative.transportstringMONO_AGENT_PI_TRANSPORTautossePreferred Pi provider transport: auto, sse, websocket, or websocket-cached. Providers without multiple transports ignore it.
runtime.compaction.contextWindowOverrideintegerMONO_AGENT_COMPACTION_CONTEXT_WINDOW_OVERRIDEauto-detected128000Persistent correction for inaccurate provider context-window metadata; learned overflow ceilings may lower it process-locally.
runtime.compaction.enabledbooleanMONO_AGENT_COMPACTION_ENABLEDtruetrueEnables adaptive proactive compaction and one-shot reactive overflow recovery.
runtime.compaction.fixedOverheadEnabledbooleanMONO_AGENT_COMPACTION_FIXED_OVERHEAD_ENABLEDtruetrueIncludes system instructions, tool schemas, and the current user turn in proactive request-size estimates.
runtime.compaction.keepRecentTokensintegerMONO_AGENT_COMPACTION_KEEP_RECENT_TOKENSadaptive by model12800Explicit recent-context retention override; omitted derives 10% of the effective context window, clamped to 4,000-20,000 tokens.
runtime.compaction.minSavingsTokensintegerMONO_AGENT_COMPACTION_MIN_SAVINGS_TOKENSadaptive by model12800Minimum verified token reduction required for proactive compaction; omitted derives 10% of the effective window, clamped to 4,000-20,000. Reactive recovery accepts any positive reduction.
runtime.compaction.summaryMaxTokensintegerMONO_AGENT_COMPACTION_SUMMARY_MAX_TOKENSadaptive by model5120Explicit combined summary-output budget override; omitted derives 4% of the effective context window, clamped to 2,000-12,000 tokens.
runtime.compaction.triggerRationumberMONO_AGENT_COMPACTION_TRIGGER_RATIO0.70.7Fraction of the effective model context window used for the proactive trigger, additionally capped by adaptive safety headroom.
runtime.effortstringMONO_AGENT_EFFORTunsetmediumRoute-specific effort forwarded through Pi to the selected provider. Doctor warns when a configured value falls outside the model’s advertised ladder but keeps turn-time handling permissive. Ranking above max only prevents keyword downgrade.
runtime.fallbacksarrayMONO_AGENT_FALLBACKS_JSON[][{"model":"openai-codex:gpt-5.6-sol"},{"model":"anthropic:claude-sonnet-4-6","effort":"high"}]Canonical ordered fallback routes. Omitted per-route effort means that provider’s default.
runtime.maxTurnsintegerMONO_AGENT_MAX_TURNSunset1Configures maxTurns for the runtime section.
runtime.modelstringMONO_AGENT_MODELrequiredopenai-codex:gpt-5.6-terraConfigures model for the runtime section.
runtime.permissionModestringMONO_AGENT_PERMISSION_MODEunsetdefaultConfigures permissionMode for the runtime section.
runtime.retry.backoffMsintegerMONO_AGENT_RETRY_BACKOFF_MS10002000Delay before the first same-model retry. Doubles on each further retry, capped by runtime.retry.maxBackoffMs.
runtime.retry.maxBackoffMsintegerMONO_AGENT_RETRY_MAX_BACKOFF_MS1500030000Ceiling for the doubling same-model retry delay.
runtime.retry.primaryAttemptsintegerMONO_AGENT_RETRY_PRIMARY_ATTEMPTS23Total attempts on runtime.model including the first, before the chain advances. Retries fire only for transient provider failures (overloaded, rate-limited, timeout, network, 5xx); context overflow and bad credentials advance immediately. Set 1 to disable.
runtime.session.idleTimeoutMsintegerMONO_AGENT_SESSION_IDLE_TIMEOUT_MS18000001800000Configures session.idleTimeoutMs for the runtime section.
runtime.session.isolateProactivebooleanMONO_AGENT_SESSION_ISOLATE_PROACTIVEfalsetrueConfigures session.isolateProactive for the runtime section.
runtime.session.modestringMONO_AGENT_SESSION_MODEcontinuouscontinuousConfigures session.mode for the runtime section.
runtime.session.rolloverstringMONO_AGENT_SESSION_ROLLOVERnonenoneConfigures session.rollover for the runtime section.
runtime.session.rolloverNoticebooleanMONO_AGENT_SESSION_ROLLOVER_NOTICEfalsetrueConfigures session.rolloverNotice for the runtime section.
runtime.session.rolloverTimezonestringMONO_AGENT_SESSION_ROLLOVER_TIMEZONEunsetexampleConfigures session.rolloverTimezone for the runtime section.
runtime.workspacestringMONO_AGENT_WORKSPACE..Configures workspace for the runtime section.
sandbox.denyWritestring[]MONO_AGENT_SANDBOX_DENY_WRITEunset["example"]Configures denyWrite for the sandbox section.
sandbox.fallbackstringMONO_AGENT_SANDBOX_FALLBACKfail-closedfail-closedConfigures fallback for the sandbox section.
sandbox.modestringMONO_AGENT_SANDBOX_MODEunsetnativeConfigures mode for the sandbox section.
sandbox.network.allowliststring[]MONO_AGENT_SANDBOX_NETWORK_ALLOWLISTunset["example"]Configures network.allowlist for the sandbox section.
sandbox.network.modestringMONO_AGENT_SANDBOX_NETWORKnonenoneConfigures network.mode for the sandbox section.
sandbox.readableRootsstring[]MONO_AGENT_SANDBOX_READABLE_ROOTSunset["example"]Configures readableRoots for the sandbox section.
sandbox.unsafeAllowHostProcessbooleanMONO_AGENT_SANDBOX_UNSAFE_ALLOW_HOST_PROCESSfalsetrueConfigures unsafeAllowHostProcess for the sandbox section.
sandbox.writableRootsstring[]MONO_AGENT_SANDBOX_WRITABLE_ROOTSunset["example"]Configures writableRoots for the sandbox section.
slack.allowAllChannelsbooleanMONO_AGENT_SLACK_ALLOW_ALL_CHANNELSfalsetrueConfigures allowAllChannels for the slack section.
slack.allowedChannelIdsstring[]MONO_AGENT_SLACK_ALLOWED_CHANNEL_IDSunset["example"]Configures allowedChannelIds for the slack section.
slack.appTokenstringMONO_AGENT_SLACK_APP_TOKENunsetenv:MONO_AGENT_SLACK_APP_TOKENSecret value for slack.appToken; prefer the env override.
slack.botTokenstringMONO_AGENT_SLACK_BOT_TOKENunsetenv:MONO_AGENT_SLACK_BOT_TOKENSecret value for slack.botToken; prefer the env override.
slack.botUserIdsstring[]MONO_AGENT_SLACK_BOT_USER_IDSunset["example"]Configures botUserIds for the slack section.
slack.drainDeadlineMsintegerMONO_AGENT_SLACK_DRAIN_DEADLINE_MSunset1Configures drainDeadlineMs for the slack section.
slack.enabledbooleanMONO_AGENT_SLACK_ENABLEDfalsetrueEnables the slack capability.
slack.heartbeatIntervalMsintegerMONO_AGENT_SLACK_HEARTBEAT_INTERVAL_MSunset1Configures heartbeatIntervalMs for the slack section.
slack.heartbeatTimeoutMsintegerMONO_AGENT_SLACK_HEARTBEAT_TIMEOUT_MSunset1Configures heartbeatTimeoutMs for the slack section.
slack.homeTabobject--unset{"enabled":true,"headerText":"*Quick actions*","buttons":[{"actionId":"triage","label":"Triage","prompt":"Triage today's requests.","channelId":"C0123"}]}JSON-only Slack App Home configuration; enabled is optional (default false), buttons is optional (default []), and there is no environment-variable form.
slack.mentionTextAliasesstring[]MONO_AGENT_SLACK_MENTION_TEXT_ALIASESunset["example"]Configures mentionTextAliases for the slack section.
slack.reconnectInitialBackoffMsintegerMONO_AGENT_SLACK_RECONNECT_INITIAL_BACKOFF_MSunset1Configures reconnectInitialBackoffMs for the slack section.
slack.reconnectMaxBackoffMsintegerMONO_AGENT_SLACK_RECONNECT_MAX_BACKOFF_MSunset1Configures reconnectMaxBackoffMs for the slack section.
slack.reconnectStabilityMsintegerMONO_AGENT_SLACK_RECONNECT_STABILITY_MSunset1Configures reconnectStabilityMs for the slack section.
slack.reconnectStartupGraceMsintegerMONO_AGENT_SLACK_RECONNECT_STARTUP_GRACE_MSunset1Configures reconnectStartupGraceMs for the slack section.
slack.resolveChannelNamesbooleanMONO_AGENT_SLACK_RESOLVE_CHANNEL_NAMEStruetrueResolves the channel’s name via conversations.info so the agent knows WHICH channel it is talking in, not just that it is in one. Requires channels:read (public) / groups:read (private); a missing scope degrades to the surface kind and id alone rather than failing turns.
slack.resolveUserNamesbooleanMONO_AGENT_SLACK_RESOLVE_USER_NAMEStruetrueResolves the speaker’s display name and handle via users.info so the agent knows who is talking. Requires the users:read scope; a missing scope degrades to an unnamed speaker rather than failing turns.
slack.shortcutsarray--[][{"callbackId":"triage","prompt":"Prepare the daily support triage checklist.","channelId":"C0123"}]JSON-only global/message Slack shortcut bindings; there is no environment-variable form.
slack.stripMentionTextbooleanMONO_AGENT_SLACK_STRIP_MENTION_TEXTpreservefalseWhen unset, preserves one readable authenticated self-mention marker; true restores legacy full stripping and false keeps raw mention forms.
slack.threadContext.enabledbooleanMONO_AGENT_SLACK_THREAD_CONTEXT_ENABLEDtruetrueSends what was said in the conversation before the agent was triggered as untrusted background context. Reads the thread for an in-thread trigger and recent channel history otherwise; needs a *:history scope.
slack.threadContext.includeBotMessagesbooleanMONO_AGENT_SLACK_THREAD_CONTEXT_INCLUDE_BOT_MESSAGEStruetrueInclude other apps’ messages (a CI or alert bot) labelled as bots. The agent’s own posts are always excluded.
slack.threadContext.maxMessagesintegerMONO_AGENT_SLACK_THREAD_CONTEXT_MAX_MESSAGES1515Messages of context sent per turn, newest kept. 0 disables the read. Capped at the harness’s own 30-message bound.
slack.threadContext.requestLimitintegerMONO_AGENT_SLACK_THREAD_CONTEXT_REQUEST_LIMIT1515Objects requested from Slack per read. Slack caps this at 15 for non-Marketplace apps; internal apps can raise it.
slack.threadContext.timeoutMsintegerMONO_AGENT_SLACK_THREAD_CONTEXT_TIMEOUT_MS40004000Budget for the whole context phase, including name resolution. Exceeding it submits the turn with less context rather than delaying it. 0 bounds the phase only by the turn itself.
slack.unfurlLinksbooleanMONO_AGENT_SLACK_UNFURL_LINKSunsetfalseControls link previews on native Slack agent chat.postMessage requests. When unset, the request field is omitted and Slack’s current default behavior is preserved.
slack.unfurlMediabooleanMONO_AGENT_SLACK_UNFURL_MEDIAunsetfalseControls media previews on native Slack agent chat.postMessage requests. When unset, the request field is omitted and Slack’s current default behavior is preserved.
subagentsobjectMONO_AGENT_SUBAGENTS_JSON{“enabled”:false}{"enabled":true,"maxConcurrent":5,"definitions":[{"name":"researcher","description":"Reads code and docs to answer a factual question about the codebase. Read-only.","prompt":"You are a codebase researcher. Answer with file:line citations. Never modify files.","allowedTools":["Read","Glob","Grep"]}]}Subagent profiles the Agent tool can deploy, plus its caps. Disabled unless enabled is true, in which case Agent must also appear in tools.allowedTools. Each definition needs exactly one of prompt or promptPath; omitted allowedTools means a read-only default set, and the ”*” wildcard is rejected. The agent may also author a specialized subagent at call time unless inline.enabled is false; inline.allowedTools caps what an authored subagent may request, defaulting to the parent agent’s own built-ins. maxConcurrent is a ceiling, not a scheduling guarantee: Pi 0.85 serializes all tool calls when any stateful/mutating or MCP tool is offered.
telegram.allowAllChatsbooleanMONO_AGENT_TELEGRAM_ALLOW_ALL_CHATSfalsetrueConfigures allowAllChats for the telegram section.
telegram.allowedChatIdsstring[]MONO_AGENT_TELEGRAM_ALLOWED_CHAT_IDSunset["example"]Configures allowedChatIds for the telegram section.
telegram.apiRootstringMONO_AGENT_TELEGRAM_API_ROOTunsetexampleConfigures apiRoot for the telegram section.
telegram.attachments.downloadTimeoutMsintegerMONO_AGENT_TELEGRAM_ATTACHMENT_DOWNLOAD_TIMEOUT_MSunset1Configures attachments.downloadTimeoutMs for the telegram section.
telegram.attachments.maxBytesintegerMONO_AGENT_TELEGRAM_ATTACHMENT_MAX_BYTESunset1Configures attachments.maxBytes for the telegram section.
telegram.attachments.maxUploadBytesintegerMONO_AGENT_TELEGRAM_UPLOAD_MAX_BYTESunset1Configures attachments.maxUploadBytes for the telegram section.
telegram.botTokenstringMONO_AGENT_TELEGRAM_BOT_TOKENunsetenv:MONO_AGENT_TELEGRAM_BOT_TOKENSecret value for telegram.botToken; prefer the env override.
telegram.commandsarray--[][{"command":"status","prompt":"Report current status."}]Telegram command definitions handled by the Telegram adapter.
telegram.enabledbooleanMONO_AGENT_TELEGRAM_ENABLEDfalsetrueEnables the telegram capability.
telegram.groupModestringMONO_AGENT_TELEGRAM_GROUP_MODEanymentionGroup-message trigger rule: any runs every allowed group message; mention runs only native @mentions of the bot and replies to its messages. Direct chats and commands are unaffected.
telegram.pollWatchdogMsintegerMONO_AGENT_TELEGRAM_POLL_WATCHDOG_MSunset1Configures pollWatchdogMs for the telegram section.
telegram.quietHoursobject--unset{"timezone":"Europe/Amsterdam","start":"22:00","end":"07:00"}Quiet-hours rules for Telegram notifications.
telegram.reactionsobjectMONO_AGENT_TELEGRAM_REACTIONSunset{"working":true,"done":true,"error":true}Telegram lifecycle reactions. The env override is boolean and toggles all states.
telegram.sendTools.pathScopestring--unsetrun-outputConfine Telegram path uploads to the current run output directory.
telegram.sendTools.scopestring--unsetproducing-conversationBind Telegram send tools to the chat that produced the current run.
telegram.stripMentionTextbooleanMONO_AGENT_TELEGRAM_STRIP_MENTION_TEXTtruetrueRemoves matching native @mentions from responder text in mention mode; replies without a mention are unchanged.
telegram.transcription.endpointstringMONO_AGENT_TELEGRAM_TRANSCRIPTION_ENDPOINTunsetexampleConfigures transcription.endpoint for the telegram section.
telegram.transcription.languagestringMONO_AGENT_TELEGRAM_TRANSCRIPTION_LANGUAGEunsetexampleConfigures transcription.language for the telegram section.
telegram.transcription.modelstringMONO_AGENT_TELEGRAM_TRANSCRIPTION_MODELunsetexampleConfigures transcription.model for the telegram section.
telegram.transcription.timeoutMsintegerMONO_AGENT_TELEGRAM_TRANSCRIPTION_TIMEOUT_MSunset1Configures transcription.timeoutMs for the telegram section.
telegram.transport.ipFamilyintegerMONO_AGENT_TELEGRAM_IP_FAMILYunsetexampleConfigures transport.ipFamily for the telegram section.
tools.allowedToolsstring[]MONO_AGENT_ALLOWED_TOOLS[”*“]["Read","Grep"]Configures allowedTools for the tools section.
tools.continuationServersstring[]MONO_AGENT_CONTINUATION_SERVERSunset["example"]Configures continuationServers for the tools section.
tools.disallowedToolsstring[]MONO_AGENT_DISALLOWED_TOOLS[]["Read","Grep"]Configures disallowedTools for the tools section.
tools.filesystem.readableRootsstring[]MONO_AGENT_FILE_TOOL_READABLE_ROOTSunset["/srv/shared/reference"]Extra roots for managed Read, Glob, and Grep while sandbox.mode is off. Access requires lexical and realpath containment; native sandbox roots remain authoritative when sandboxing is enabled.
tools.filesystem.writableRootsstring[]MONO_AGENT_FILE_TOOL_WRITABLE_ROOTSunset["/srv/shared/output"]Extra roots for managed Write and Edit while sandbox.mode is off; writable roots are also readable. Access requires lexical and realpath containment; native sandbox roots remain authoritative when sandboxing is enabled.
tools.mcpCallMaxTotalTimeoutMsintegerMONO_AGENT_MCP_CALL_MAX_TOTAL_TIMEOUT_MS27000002700000Configures mcpCallMaxTotalTimeoutMs for the tools section.
tools.mcpCallTimeoutMsintegerMONO_AGENT_MCP_CALL_TIMEOUT_MS120000120000Configures mcpCallTimeoutMs for the tools section.
tools.mcpConfigPathstringMONO_AGENT_MCP_CONFIG_PATHunsetexampleConfigures mcpConfigPath for the tools section.
tools.mcpRequestContextServersstring[]MONO_AGENT_MCP_REQUEST_CONTEXT_SERVERS[]["transcribe"]Configured stdio MCP server names that receive trusted per-request conversation, run, output-directory, and scoped progress context.
tools.web.coordinationstringMONO_AGENT_WEB_COORDINATIONprocessprocessHost mode shares web request budgets and cooldowns across participating local mono-agent processes; process preserves isolated coordination.
tools.web.fetch.browserCommandstringMONO_AGENT_WEB_BROWSER_COMMANDagent-browseragent-browserDirect executable name or path for agent-browser; shell fragments are not evaluated.
tools.web.fetch.renderstringMONO_AGENT_WEB_FETCH_RENDERneverneverBrowser-render capability for sparse JavaScript pages. never forces every call to static extraction; auto permits an isolated agent-browser session when needed.
tools.web.search.backendstringMONO_AGENT_WEB_SEARCH_BACKENDautoautoWebSearch backend: auto uses explicitly configured Ollama, configured local SearXNG, ChatGPT-subscription Codex search, then keyless fallbacks. searxng, ollama, codex, and keyless are strict.
tools.web.search.codex.modelstringMONO_AGENT_WEB_SEARCH_CODEX_MODELgpt-5.6-lunagpt-5.6-lunaCodex app-server model used for ChatGPT-subscription web search. The signed-in account must expose both this model and web search; default gpt-5.6-luna.
tools.web.search.endpointstringMONO_AGENT_WEB_SEARCH_ENDPOINTunsetexampleCompatibility alias for tools.web.search.searxng.endpoint and MONO_AGENT_WEB_SEARCH_SEARXNG_ENDPOINT. Existing configurations remain valid; new configurations should use the provider-specific block.
tools.web.search.maxRequestsPerRunintegerMONO_AGENT_WEB_SEARCH_MAX_REQUESTS_PER_RUN44Hard ceiling from 1 to 20 on actual provider search requests in one logical runtime run; cache hits, coalesced followers, cooldown skips, and quota skips consume no request. Default 4.
tools.web.search.ollama.apiKeyEnvstringMONO_AGENT_WEB_SEARCH_OLLAMA_API_KEY_ENVunsetOLLAMA_API_KEYEnvironment variable containing the hosted Ollama API key. Required only for exact https://ollama.com and rejected for every other origin; the key value is never stored in JSON.
tools.web.search.ollama.baseUrlstringMONO_AGENT_WEB_SEARCH_OLLAMA_BASE_URLhttp://127.0.0.1:11434https://ollama.comOllama origin. Defaults to local http://127.0.0.1:11434 in strict Ollama mode. Hosted search is exactly https://ollama.com; custom public origins require HTTPS and trustPublicUrl=true.
tools.web.search.ollama.trustPublicUrlbooleanMONO_AGENT_WEB_SEARCH_OLLAMA_TRUST_PUBLIC_URLfalsetrueExplicit acknowledgement for an HTTPS custom public Ollama origin. It never permits sending hosted credentials to that origin.
tools.web.search.searxng.endpointstringMONO_AGENT_WEB_SEARCH_SEARXNG_ENDPOINTunsethttp://127.0.0.1:8088Optional unauthenticated loopback HTTP SearXNG base URL. Remote HTTPS, credentials, query strings, and fragments are rejected.
traceability.globalDiscoverybooleanMONO_AGENT_TRACE_GLOBAL_DISCOVERYtruetrueConfigures globalDiscovery for the traceability section.
traceability.heartbeatMsintegerMONO_AGENT_TRACE_HEARTBEAT_MS1000010000Configures heartbeatMs for the traceability section.
traceability.registryDirstringMONO_AGENT_TRACE_REGISTRY_DIR.mono-agent/trace-sources.mono-agent/trace-sourcesConfigures registryDir for the traceability section.
traceability.sourceIdstringMONO_AGENT_TRACE_SOURCE_IDunsetmy-agentConfigures sourceId for the traceability section.
traceability.sourceLabelstringMONO_AGENT_TRACE_SOURCE_LABELunsetMy AgentConfigures sourceLabel for the traceability section.
traceability.staleAfterMsintegerMONO_AGENT_TRACE_STALE_AFTER_MS3000030000Configures staleAfterMs for the traceability section.
tui.allowNonLoopbackbooleanMONO_AGENT_TUI_ALLOW_NON_LOOPBACKfalsetrueConfigures allowNonLoopback for the tui section.
tui.apiKeystringMONO_AGENT_TUI_API_KEYunsetexampleSecret value for tui.apiKey; prefer the env override.
tui.basePathstringMONO_AGENT_TUI_BASE_PATH/gui/guiConfigures basePath for the tui section.
tui.enabledbooleanMONO_AGENT_TUI_ENABLEDtruetrueEnables the tui capability.
tui.hoststringMONO_AGENT_TUI_HOST127.0.0.1127.0.0.1Configures host for the tui section.
tui.portintegerMONO_AGENT_TUI_PORT00Configures port for the tui section.
tui.requestToolEnvironment.allowedKeysstring[]MONO_AGENT_TUI_REQUEST_TOOL_ENVIRONMENT_ALLOWED_KEYS[]["MULTICA_TOKEN","MULTICA_TASK_ID"]Explicit environment-variable names an ACP request may pass to Bash, Exec, and nested subagents for one turn. Disabled when empty; dangerous process-loader, shell-startup, home, temp, and PATH keys are rejected.
tui.requestToolEnvironment.allowPathPrependbooleanMONO_AGENT_TUI_REQUEST_TOOL_ENVIRONMENT_ALLOW_PATH_PREPENDfalsefalseAllows an ACP request to prepend up to four absolute directories to process-tool PATH for one turn. The caller cannot replace PATH.
webhook.allowNonLoopbackbooleanMONO_AGENT_WEBHOOK_ALLOW_NON_LOOPBACKunsettrueConfigures allowNonLoopback for the webhook section.
webhook.apiKeystringMONO_AGENT_WEBHOOK_API_KEYunsetset-via-MONO_AGENT_WEBHOOK_API_KEYSecret value for webhook.apiKey; prefer the env override.
webhook.defaultModestringMONO_AGENT_WEBHOOK_DEFAULT_MODEsyncsyncConfigures defaultMode for the webhook section.
webhook.dirstringMONO_AGENT_WEBHOOK_DIRwebhookwebhookConfigures dir for the webhook section.
webhook.effortstringMONO_AGENT_WEBHOOK_EFFORTunsetexampleConfigures effort for the webhook section.
webhook.enabledbooleanMONO_AGENT_WEBHOOK_ENABLEDfalsetrueEnables the webhook capability.
webhook.endpointsarrayMONO_AGENT_WEBHOOK_ENDPOINTS_JSON[][{"name":"triage","path":"/webhook/triage","prompt":"Triage this payload."}]Named webhook endpoints with per-endpoint prompt, model/effort, and maxRunMs overrides.
webhook.hoststringMONO_AGENT_WEBHOOK_HOST127.0.0.1127.0.0.1Configures host for the webhook section.
webhook.maxRunMsintegerMONO_AGENT_WEBHOOK_MAX_RUN_MSunset1Configures maxRunMs for the webhook section.
webhook.maxStoredRequestsintegerMONO_AGENT_WEBHOOK_MAX_STORED_REQUESTS100100Configures maxStoredRequests for the webhook section.
webhook.modelstringMONO_AGENT_WEBHOOK_MODELunsetexampleConfigures model for the webhook section.
webhook.notifybooleanMONO_AGENT_WEBHOOK_NOTIFYunsetexampleConfigures notify for the webhook section.
webhook.notifyConversationIdstringMONO_AGENT_WEBHOOK_NOTIFY_CONVERSATION_IDunsetexampleConfigures notifyConversationId for the webhook section.
webhook.pathstringMONO_AGENT_WEBHOOK_PATH/webhook/invoke/webhook/invokeConfigures path for the webhook section.
webhook.portintegerMONO_AGENT_WEBHOOK_PORT00Configures port for the webhook section.
webhook.promptstringMONO_AGENT_WEBHOOK_PROMPTunsetexampleConfigures prompt for the webhook section.
webhook.retentionMsintegerMONO_AGENT_WEBHOOK_RETENTION_MS300000300000Configures retentionMs for the webhook section.

channels.plugins[] entries are intentionally open at config: the plugin package owns that nested payload. The host validates the plugin envelope (package, optional id, optional label, and config) and each loaded plugin reports its own config warnings.