Skip to main content

Runtime configuration

Kheish exposes live runtime controls through the daemon CLI and HTTP API.

What can change live

Without restarting the daemon, you can change:
  • the daemon default route
  • the learning automation policy
  • the permission mode
  • the system prompt settings
  • the daemon-wide hook configuration
  • the debug capture level

Common commands

./target/debug/kheish-daemon runtime get
./target/debug/kheish-daemon runtime set-model openai/gpt-5.4
./target/debug/kheish-daemon runtime learning-policy get
./target/debug/kheish-daemon runtime set-permission-mode accept-edits
./target/debug/kheish-daemon runtime set-debug-level redacted
./target/debug/kheish-daemon runtime set-system-prompt --mode append "Prefer direct execution when safe."
./target/debug/kheish-daemon runtime hooks get
runtime set-model accepts either a bare model name or a route-aware selector in the form <route_id>/<model>. The CLI normalizes that selector before calling the HTTP API.

Learning automation policy

The daemon-owned learning worker is configured through runtime policy:
  • ./target/debug/kheish-daemon runtime learning-policy get
  • ./target/debug/kheish-daemon runtime learning-policy set --file learning-policy.json
That policy controls:
  • whether the daemon captures run_summary candidates automatically
  • whether the daemon captures semantic fact / preference / decision candidates from completed runs
  • whether candidates stay manual, run in shadow, or can publish automatically
  • which candidates match manual_review, reject, publish_provisional, or publish_active
  • whether API-origin candidates may auto-publish with the active tier
  • which named rules are temporarily quarantined
  • whether the model-backed judge is enabled, and which optional route override it uses
Important operator rules:
  • the daemon replaces the full learning policy on set
  • send mode explicitly when mutating policy
  • publish_active is still gated by daemon-owned verification
  • automatically published learnings are only prompt-visible after verification
  • the judge is bounded by the deterministic policy envelope; it does not write directly to the learning store
Read Runtime API and Learnings API for the exact wire shape and rule semantics.

Operational semantics

These settings are daemon-wide. They affect future execution on that daemon, but they do not retroactively change the pinned route or model of an already active run. On a mixed-provider daemon, runtime set-model should be read as changing the daemon fallback route rather than forcing every session onto one provider immediately. After any runtime mutation, verify the current state with runtime get. Treat live reconfiguration as an operational change with production impact, especially when permissions, hooks, or debug capture are involved.