Config Fields
Source of truth: assets/config/config.example.yaml.
All keys can be overridden by env vars (MISTER_MORPH_...). See Environment Variables.
Web Settings
Console Settings covers every supported public field on this page. It submits only changed fields and rejects stale file revisions instead of overwriting external edits. Secret values are redacted and can only be replaced or cleared. Environment- and command-line-managed fields are read-only. Each field reports whether it applies immediately, to new tasks, after a runtime restart, or after a process restart. Remote endpoint edits are executed by the selected Morph instance.
Global
user_agent: outbound HTTP user-agent for tools.
LLM
llm.inference_provider(human-facing provider; derives protocol provider and API Base)llm.provider(protocol provider; usually derived, kept for older configs and advanced overrides)llm.modelllm.endpoint(API Base; required only for*_compatibleinference providers)llm.api_keyllm.headers.<name>(optional custom HTTP headers)llm.cache_ttlllm.cache_key_prefixllm.request_timeoutllm.temperature(optional)llm.reasoning_effortllm.reasoning_budget_tokens(optional; ignored with a warning foropenai_resp)llm.pricing_filellm.tools_emulation_mode(off|fallback|force)llm.azure.deploymentllm.bedrock.aws_keyllm.bedrock.aws_secretllm.bedrock.aws_session_tokenllm.bedrock.aws_profilellm.bedrock.regionllm.bedrock.model_arnllm.cloudflare.account_idllm.cloudflare.api_tokenllm.image.providerllm.image.endpointllm.image.api_keyllm.image.modelllm.image.request_timeoutllm.image.options.openaillm.image.options.geminillm.image.options.cloudflarellm.profiles.<profile>.*(named profile overrides, includinginference_provider)llm.profiles.<profile>.supports_image_partsllm.profiles.<profile>.headers.<name>(optional profile-scoped headers)llm.routes.<purpose>(main_loop|addressing|awareness|heartbeat|think|plan_create)llm.routes.<purpose>.profilellm.routes.<purpose>.candidates[].profilellm.routes.<purpose>.candidates[].weightllm.routes.<purpose>.fallback_profiles[]
Logging
logging.levellogging.formatlogging.add_sourcelogging.file.dirlogging.file.max_agelogging.include_thoughtslogging.include_tool_paramslogging.include_skill_contentslogging.max_thought_charslogging.max_json_byteslogging.max_string_value_charslogging.max_skill_content_charslogging.redact_keys
Secrets and Auth Profiles
secrets.allow_profilessecrets.aws_secrets_manager.regionsecrets.aws_secrets_manager.profileauth_profiles.<id>.credential.kindauth_profiles.<id>.credential.secretauth_profiles.<id>.allow.url_prefixesauth_profiles.<id>.allow.methodsauth_profiles.<id>.allow.follow_redirectsauth_profiles.<id>.allow.allow_proxyauth_profiles.<id>.allow.deny_private_ipsauth_profiles.<id>.bindings.url_fetch.inject.locationauth_profiles.<id>.bindings.url_fetch.inject.nameauth_profiles.<id>.bindings.url_fetch.inject.formatauth_profiles.<id>.bindings.url_fetch.allow_user_headersauth_profiles.<id>.bindings.url_fetch.user_header_allowlist
Guard
guard.enabledguard.dir_nameguard.network.url_fetch.allowed_url_prefixesguard.network.url_fetch.deny_private_ipsguard.network.url_fetch.follow_redirectsguard.network.url_fetch.allow_proxyguard.redaction.enabledguard.redaction.patternsguard.audit.jsonl_pathguard.audit.rotate_max_bytesguard.approvals.enabled
Tools
The Console Setup / Settings UI and /api/settings/agent reuse the same nested shape under tools.<name>.enabled.
Shell defaults are platform-specific:
Linux/macOS:
tools.bash.enabled=true,tools.powershell.enabled=falseWindows:
tools.bash.enabled=false,tools.powershell.enabled=trueYou can still override either value explicitly.
tools.read_file.max_bytestools.read_file.deny_pathstools.write_file.enabledtools.write_file.max_bytestools.spawn.enabledtools.coder.enabledtools.coder.path_extratools.contacts_send.enabledtools.todo_update.enabledtools.plan_create.enabledtools.plan_create.max_stepstools.image_generate.enabledtools.image_edit.enabledtools.url_fetch.enabledtools.url_fetch.timeouttools.url_fetch.max_bytestools.url_fetch.max_bytes_downloadtools.web_search.enabledtools.web_search.base_urltools.web_search.timeouttools.web_search.max_resultstools.bash.enabledtools.bash.timeouttools.bash.max_output_bytestools.bash.deny_pathstools.bash.injected_env_vars(string name or{name, value}object; string names are resolved from the parent environment at config load time)tools.powershell.enabledtools.powershell.timeouttools.powershell.max_output_bytestools.powershell.deny_pathstools.powershell.injected_env_vars(same format astools.bash.injected_env_vars)
MCP
mcp.servers[].namemcp.servers[].enablemcp.servers[].type(stdio|http)mcp.servers[].commandmcp.servers[].argsmcp.servers[].envmcp.servers[].urlmcp.servers[].headersmcp.servers[].allowed_tools
ACP
acp.agents[].nameacp.agents[].commandacp.agents[].argsacp.agents[].envacp.agents[].cwdacp.agents[].read_rootsacp.agents[].write_rootsacp.agents[].session_options
Bus, Contacts, Tasks, Skills
bus.max_inflightcontacts.dir_namecontacts.proactive.failure_cooldowntasks.dir_nametasks.persistence_targetstasks.rotate_max_bytesskills.dir_nameskills.enabledskills.load
tasks.persistence_targets only controls which runtime task projections are saved and restored across process restarts. Accepted task and topic changes from every runtime are still written to the unified journal.
Server and Console
server.auth_tokenserver.max_queueconsole.listenconsole.base_pathconsole.static_dirconsole.passwordconsole.password_hashconsole.session_ttlconsole.managed_runtimesconsole.endpoints[].nameconsole.endpoints[].urlconsole.endpoints[].auth_token
Telegram
telegram.bot_tokentelegram.allowed_chat_idstelegram.group_trigger_modetelegram.addressing_confidence_thresholdtelegram.addressing_interject_thresholdtelegram.poll_timeouttelegram.task_timeouttelegram.max_concurrencytelegram.serve_listen
Slack
slack.base_urlslack.bot_tokenslack.app_tokenslack.allowed_team_idsslack.allowed_channel_idsslack.group_trigger_modeslack.addressing_confidence_thresholdslack.addressing_interject_thresholdslack.task_timeoutslack.max_concurrencyslack.serve_listen
LINE
line.base_urlline.channel_access_tokenline.channel_secretline.webhook_listenline.webhook_pathline.allowed_group_idsline.group_trigger_modeline.addressing_confidence_thresholdline.addressing_interject_thresholdline.task_timeoutline.max_concurrencyline.serve_listen
Lark
lark.base_urllark.app_idlark.app_secretlark.allowed_chat_idslark.group_trigger_modelark.addressing_confidence_thresholdlark.addressing_interject_thresholdlark.task_timeoutlark.max_concurrencylark.serve_listen
Mixin Messenger
mixin.keystore_filemixin.allowed_conversation_idsmixin.task_timeoutmixin.max_concurrencymixin.serve_listen
Heartbeat
heartbeat.enabledheartbeat.interval
Heartbeat is scheduled by the cron service. Set cron.enabled: true; otherwise Heartbeat does not run.
Loop Limits and File Storage
For how runtime-provided workspace_dir relates to file_cache_dir and file_state_dir, see Filesystem Roots.
max_stepsparse_retriesmax_token_budgettool_repeat_limittimeoutfile_state_dirfile_cache_dirfile_cache.max_agefile_cache.max_filesfile_cache.max_total_bytes