Settings & dials
The Settings view is where the harness's global behaviour lives. Most of it has reasonable defaults; this page is the reference for when you want to change them.
Where settings live
Three layers, in priority order (later overrides earlier):
- Defaults baked into the binary.
- User config at
$XDG_CONFIG_HOME/kaneaz-harness/settings.json. Edited via the Settings view (or by hand if you like — Kenaz reloads on save). - Project overrides — a
.kenaz/settings.jsonin a project root applies when sessions inside that project are active.
The categories
Provider defaults
- Default provider — the provider new sessions use unless overridden.
- Default model — picked from the default provider's model list.
- Per-task overrides — different defaults for compaction, embedding, and slash commands. Useful when you want chat on Sonnet but compaction on a cheap local Ollama model.
Memory
- Compaction trigger — % of context window at which compaction kicks in. Default 70%.
- Compaction provider — which provider does the summarization. Defaults to the session's active provider; override for cost reasons.
- Recent message buffer — how many message pairs to keep verbatim after compaction (default 6).
- Long-term memory — toggle whether MCP memory tools persist across sessions.
Permissions
Mirrors the Permissions view but lets you bulk-edit defaults, especially for "what new MCP servers default to."
Hooks
List, enable/disable, and edit hooks. Same as the dedicated Hooks view; Settings is just an alternate entry point.
Autonomy
- Auto-approve safe tools —
read_file,list_dir,path_complete,web_searchrun without prompting. Default ON for these specifically. - Tool-loop budget — max consecutive tool calls per turn before the harness pauses and asks if you want to continue. Default 25; higher for autonomous workflows, lower for cautious use.
- Stuck-loop detection — if the model is repeating the same tool call with similar arguments, Kenaz interrupts. ON by default.
Logging
- Log level —
info/debug/trace. Trace is verbose; only useful when filing a bug. - Audit retention — how long audit log entries are kept. Default 365 days; some industries want shorter.
- Telemetry —
none(default). Reserved for a future opt-in.
Updates
- Update channel —
stable(release-please tags) orpreview(rolling main builds). Stable is the default. - Auto-check — daily check for updates. Notifies in-app; doesn't auto-install. Default ON.
- Auto-install minor versions — only patch and minor; never major. Default OFF (off opts you into a manual gate).
Keyboard shortcuts
The full bind map. Shortcuts are remappable; see Settings → Keyboard for the list. A few defaults worth knowing:
⌘N/Ctrl+N— new session⌘B/Ctrl+B— branch from selected message⌘F/Ctrl+F— search⌘K/Ctrl+K— command palette (slash commands + jump to view)⌘,/Ctrl+,— open Settings⌘\/Ctrl+\— toggle left rail
Appearance
- Theme — currently dark-only. Theme selector is reserved for a future light theme.
- Density —
comfortable(default) orcompact. - Font size — small / medium / large.
- Reduce motion — respects the OS preference; explicit toggle here.
Resetting
Settings → ⋯ → Reset to defaults writes a fresh settings.json. Doesn't touch sessions, providers, or audit log — just clears the dial overrides.
You can also delete $XDG_CONFIG_HOME/kaneaz-harness/settings.json while Kenaz is closed; it'll regenerate with defaults on next launch.