Skip to content

Configuration

OpenMotoko uses a JSON5 config file at ~/.openmotoko/openmotoko.json. All fields are optional and have sensible defaults.

{
"gateway": {
"bind": "loopback",
"port": 3000,
"auth": {
"password": "...",
"sessionMaxAge": 604800000
},
"tailscale": {
"enabled": false,
"trustedProxies": ["127.0.0.1", "::1"]
}
},
"channels": {
"telegram": {
"token": "...",
"enabled": true,
"policy": {
"dmPolicy": "open",
"allowFrom": [],
"requireMention": false
}
}
},
"agents": {
"model": "balanced",
"maxTokens": 4096,
"temperature": 0.7,
"sandbox": {
"mode": "off",
"image": "openmotoko/sandbox:latest",
"networkPolicy": "restricted"
},
"workspace": "~/openmotoko-workspace"
},
"tools": {
"filesystem": {
"allowedPaths": ["~/Documents", "~/Projects"],
"maxFileSize": 10485760
},
"shell": {
"blocked": ["rm -rf /"],
"timeout": 60000,
"elevated": false
}
},
"pulse": {
"enabled": false,
"budget": {
"daily": 200000,
"model": "fast"
},
"activeHours": {
"start": "08:00",
"end": "22:00",
"timezone": "Europe/Berlin"
},
"tasks": []
},
"mcp": {
"servers": [],
"expose": false
},
"llm": {
"providers": [],
"aliases": {
"fast": { "provider": "anthropic", "model": "claude-haiku-4-5" },
"balanced": { "provider": "anthropic", "model": "claude-sonnet-4-6" },
"smart": { "provider": "anthropic", "model": "claude-opus-4-6" }
}
},
"notifications": {
"routing": {
"critical": "telegram",
"important": "telegram",
"informational": "web",
"digest": "web",
"silent": "log"
}
},
"redactSensitive": "off"
}

Controls the HTTP server binding and auth.

FieldDefaultDescription
bindloopbackloopback or 0.0.0.0
port3000Server port
auth.passwordenv varOverride OPENMOTOKO_PASSWORD
auth.sessionMaxAge604800000Session TTL in ms (7 days)

Controls the default agent behavior.

FieldDefaultDescription
modelbalancedDefault model alias
sandbox.modeoffoff, non-main, or all
sandbox.imageopenmotoko/sandbox:latestDocker image for sandbox
sandbox.networkPolicyrestrictednone, restricted, or full

Filesystem and shell security boundaries.

FieldDescription
filesystem.allowedPathsDirectories the agent can access
filesystem.maxFileSizeMax file size in bytes (default 10 MB)
shell.blockedAdditional blocked command patterns
shell.timeoutCommand timeout in ms
shell.elevatedAllow sudo (default false)

Provider configuration and model aliases.

AliasDefault ProviderDefault Model
fastanthropicclaude-haiku-4-5
balancedanthropicclaude-sonnet-4-6
smartanthropicclaude-opus-4-6

You can override aliases to point at any provider:

{
"llm": {
"aliases": {
"fast": { "provider": "openai", "model": "gpt-4o-mini" },
"balanced": { "provider": "google", "model": "gemini-2.5-flash" }
}
}
}

Controls automatic redaction of secrets in tool output.

ValueBehavior
offNo redaction
toolsRedact in tool call results only
allRedact in all LLM context