Skip to main content

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):

  1. Defaults baked into the binary.
  2. 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).
  3. Project overrides — a .kenaz/settings.json in 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 toolsread_file, list_dir, path_complete, web_search run 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 levelinfo / 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.
  • Telemetrynone (default). Reserved for a future opt-in.

Updates

  • Update channelstable (release-please tags) or preview (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.
  • Densitycomfortable (default) or compact.
  • 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.