Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Settings Schema

This page is a typed, structured listing of every key in the caliban settings file. For a narrative explanation of how scopes interact, how to locate each file, and how to edit settings interactively, see Settings Reference and Settings Layering.

Settings files are TOML by primary convention (settings.toml / settings.local.toml); JSON is accepted on import only. Unknown top-level keys are tolerated for forward-compat.


Model / Agent

KeyTypeDefaultDescription
agentstringAgent profile name (sub-agent dispatch hint).
modelstring | { provider, name }Primary model. Bare string (e.g. "claude-sonnet-4-6") or qualified object { provider = "anthropic", name = "..." }.
fallback_modelstring | { provider, name }Fallback model when the primary errors. Same shapes as model.
model_overrides{ string → string }{}Per-route model overrides. Keys are router route names (e.g. "fast-classifier"); values are model ids.
effort"low" | "medium" | "high" | "max" | "auto"Default reasoning effort level.

Permissions

Nested under the [permissions] table.

KeyTypeDefaultDescription
permissions.allowstring[][]Patterns that auto-allow (legacy bucket form).
permissions.askstring[][]Patterns that prompt the user (legacy bucket form).
permissions.denystring[][]Patterns that hard-deny (legacy bucket form).
permissions.rulesRuleSpec[][]Ordered v2 rule array. When non-empty, takes precedence over the three buckets above. Source order is preserved (first match wins).
permissions.enforcebooleanWhen true, refuse --no-permissions / bypass mode at startup.
permissions.default_modestringInitial permission mode at session start. Values: default, acceptEdits, plan, auto, dontAsk, bypassPermissions.
permissions.audit_logbooleantrueAppend-only permission-decision log toggle.

RuleSpec fields (used in permissions.rules entries):

FieldTypeDescription
patternstringGlob matching Tool or Tool:first-arg-glob (e.g. "Bash:git *").
action"allow" | "ask" | "deny"Decision for matching calls.
commentstring (optional)Human-readable comment shown in /permissions.
reasonstring (optional)Deny reason shown to the operator and logged.
expires_atISO 8601 timestamp (optional)Rule is skipped after this time.
[permissions]
# v2 ordered rules (preferred)
[[permissions.rules]]
pattern = "Bash:git *"
action  = "allow"
comment = "git commands OK"

[[permissions.rules]]
pattern = "Bash:rm *"
action  = "deny"
reason  = "use git revert"

[[permissions.rules]]
pattern = "*"
action  = "ask"

Hooks

KeyTypeDefaultDescription
hooks{ string → … }{}Raw hook event → handler list map (passed to caliban_agent_core::HooksConfig).
disable_all_hooksbooleanfalseKill-switch: disable every external hook handler.
allow_managed_hooks_onlybooleanfalseWhen true, only managed-scope hooks fire.
allowed_http_hook_urlsstring[][]HTTP-hook URL allowlist (glob patterns).
http_hook_allowed_env_varsstring[][]Environment variable names that HTTP hooks are permitted to read.

MCP Servers

Under [mcp_servers.<name>]. Each entry configures one MCP server.

KeyTypeDefaultDescription
type"stdio" | "http" | "sse""stdio"Transport selector. Also accepted as transport (TOML alias).
commandstring""Executable command (stdio only).
argsstring[][]Argv after the command (stdio only).
env{ string → string }{}Environment variables injected for the server process (stdio only).
cwdstringWorking directory override (stdio only).
urlstringAbsolute http:// or https:// URL (http/sse transports).
headers{ string → string }{}Static request headers (http/sse only).
oauth"off" | "auto" | "manual""off"OAuth mode (http/sse only).
disabledbooleanfalseMark this server disabled without removing the entry.
permissionsobjectPer-server permission scoping (composes with global rules).
[mcp_servers.linear]
command = "npx"
args    = ["-y", "@linear/mcp-server"]

Router

KeyTypeDefaultDescription
routerobjectRouter config (opaque; schema owned by caliban-model-router). Use caliban.toml [router] for the primary router config.

Memory

Nested under [memory].

KeyTypeDefaultDescription
memory.auto_memory_enabledbooleanEnable / disable auto-memory topic files.
memory.auto_memory_directorystringPlatform defaultDirectory for auto-memory topic files.
memory.cap_tokens_autointegerToken budget cap for the auto-memory tier.
memory.cap_tokens_claude_mdintegerToken budget cap for the CLAUDE.md tier.
memory.cap_tokens_combinedintegerCombined token budget cap across all tiers.

Plugins

KeyTypeDefaultDescription
pluginsobjectPlugin manager knobs (schema owned by caliban-plugins).

UI

KeyTypeDefaultDescription
output_stylestringActive output-style name (see Output Styles).
editor_modestringInput editing mode: "vim" or "emacs".
view_modestringTUI layout mode: "compact" or "expanded".
statusLine.commandstringRequired when statusLine is set. Shell command whose stdout prefixes the status bar.
statusLine.timeout_msinteger (50–5000)Maximum ms to wait for the status-line script.
statusLine.paddinginteger (0–8)Spaces of padding around the custom segment.
tuiobjectTUI knobs. Known sub-key: showCostInStatusline (boolean).

statusLine casing

statusLine uses camelCase on disk for Claude Code compatibility. The TOML alias status_line is also accepted.


Auth

KeyTypeDefaultDescription
api_key_helperstring | object | object[]Provider API-key supplier(s). Bare string = command path; object = { command, provider?, refreshIntervalMs?, slowHelperWarningMs? }; array = per-provider list.

Observability

KeyTypeDefaultDescription
enable_telemetrybooleanOTel / cost emitter toggle.

Context-Window Management

KeyTypeDefaultDescription
auto_compact_thresholdnumber (0–1) or null0.75Pre-turn autocompaction threshold (context utilization fraction). null disables autocompact.
micro_compact_enabledbooleantrueEnable the per-turn microcompact (LLM-free supersession) pass.
tool_result_cap_charsinteger (≥ 0)50000Global per-tool-result cap in characters. 0 disables.
min_cache_block_tokensinteger (≥ 0)1024Minimum estimated tokens on the last user message to merit the conversation-level cache marker.

Enterprise (Managed Scope)

KeyTypeDefaultDescription
parent_settings_behavior"block" | "augment""augment"When "block" in the managed scope, the managed layer flips to the top of the merge chain (enterprise lockdown).

Miscellaneous

KeyTypeDefaultDescription
additional_directoriesstring[][]Extra workspace roots to consult for CLAUDE.md and skills.
claude_md_excludesstring[][]Glob patterns to exclude from CLAUDE.md discovery (claudeMdExcludes).
env{ string → string }{}Environment-variable overrides applied to child processes spawned by caliban.