v1.4.0next

Configuration

Where Kraft's configuration files live and which file controls what.

Kraft's configuration is a set of YAML files under $KRAFT_HOME/templates/ (default ~/.kraft/templates/); this page maps each file to its reference page.

Kraft seeds the directory from the packaged defaults on first run and never overwrites it afterwards, so an upgrade cannot clobber an edited policy. The Settings screens in the UI edit these same files, and editing them by hand is equally supported.

  • kraft admin doctor reports anything that does not parse.
  • kraft admin reload picks up an on-disk edit without a restart.
  • kraft admin templates lint checks the whole library and every chain at once, and writes nothing.

KRAFT_HOME and KRAFT_TEMPLATES_DIR move this directory. See Environment variables for those and every other variable Kraft reads.

Kraft validates each file when it loads it, and reports a file that fails with the offending key named. A chain component may only extends a library component of its own kind, and a reject_to may only name a node before the gate that declares it.

registry.yaml, hook names and gate_after do not exist in the current template format (V1). Kraft refuses a home that still holds them until you run kraft admin update. See Migrating a pre-V1 template configuration.

Files

FileWhat it configuresPage
repos.yamlConnected repos: setup command, env, steering, workspaces.Repos
policy.yamlCaps, budget, archiving, defaults and maxima, triggers.Policy
library.yaml and chains/*.yamlReusable components and the chain templates built from them.Library and chains
harnesses.yamlHarness profiles and agent profiles.Harnesses file
access.yamlBind address, password, remote access.Access
intake.yamlAutonomous pickup of issues.Intake
sandbox.yamlWhich container CLI runs sandboxed tasks, SELinux, and an extra CA.Sandbox host
notify.yaml, theme.yamlNotification webhook and UI appearance.Settings-only files

Settings-only files

notify.yaml and theme.yaml are written by the Settings screens, and Kraft rereads notify.yaml after each save. You can edit them by hand, but nothing else in this section depends on them.

FileFields
notify.yamlenabled; url, the webhook Kraft posts to, which is a secret and is never shown back; base_url, the address links in a notification use; and events, the event types that send one. See Notifications for the payload and every event type.
theme.yamlpalette (nocturne, rose, forest, amber or slate; default nocturne); mode (light, dark or system; default dark); density (compact or comfortable; default compact); and board with group_by (status, repo or template), show_done (default 5) and open_in (peek or full). The new interface also reads surface (graphite, slate, ink, sand or moss), accent (none, blue, violet, green, amber or rose) and colour_amount (mono, subtle or full; mono takes only accent: none); left unset, they follow palette. code_scheme (light: auto, none or solarized-light; dark: auto, none, solarized-dark, monokai or dracula) and diff (layout, colours, show_whitespace, word_highlight, wrap_lines, one_file_at_a_time) are accepted but not used yet. A save changes only the keys it sends.
Copyright © 2026