Settings

dynamic values override the static openrun.toml value; clear a field and save to reset
api.external_url

canonical https origin (https://host[:port]) for API tokens and the OAuth metadata; defaults to security.callback_url. Required by an enabled surface, along with an HTTPS listener (or security.trusted_proxies) and RBAC enforcement

Additional settings
api.access_token_ttl

OAuth access token lifetime (Go duration, default 1h)

api.refresh_token_ttl

OAuth refresh token lifetime per rotation (default 720h)

api.grant_max_ttl

absolute OAuth grant lifetime, after which a new interactive login is required (default 2160h)

api.federated_identity_ttl

provider-derived group snapshot max age (default 720h)

api.pat_default_ttl

default API key lifetime (default 2160h); --expires=never is required for non-expiring keys

MCP

the Model Context Protocol endpoint at <external url>/_openrun/mcp for AI clients
api.mcp.enable

serve the MCP endpoint; needs an HTTPS listener (or trusted proxies), the external URL and RBAC enforcement

api.mcp.auth

browser login mechanisms for MCP OAuth clients (API keys minted with --resource mcp work regardless); at least one is required, admin by default

Additional settings
api.mcp.enable_apis

dangerous operations disabled for MCP by default, opted back in (logged at startup)

api.mcp.disable_apis

operations turned off for MCP on top of the defaults; secret_create is on by default, disable it if secret values must never pass through an AI client

api.mcp.skip_destructive_confirm

disable the dry-run preview + confirmation prompt on destructive MCP tools (headless automation)

Remote management (REST)

the management REST API over HTTPS, used by the OpenRun CLI on other machines
api.rest.enable

serve the management API over HTTPS; needs an HTTPS listener (or trusted proxies), the external URL and RBAC enforcement

api.rest.auth

login mechanisms for openrun login (API keys work regardless); at least one is required, admin by default

Additional settings
api.rest.enable_apis
no options available

operations disabled for the remote API by default, opted back in (none currently)

api.rest.disable_apis

operations turned off for remote CLI callers (the local unix socket CLI is never affected)