v2.0.0next

Configuration

Which file in Kraft's config directory controls what, and how Kraft creates, edits, validates and rereads the directory.

Kraft's configuration is a set of YAML files under $KRAFT_HOME/config/ (default ~/.kraft/config/). This page maps each file to its reference page and says how the directory is created and edited.

Files

FileWhat it configuresCreatedPage
repos.yamlConnected repos: setup command, env, steering, workspaces, and the sandbox field (Sandboxed workers).Seeded, emptyrepos.yaml
policy.yamlCaps, budget, concurrency, archiving, defaults and maxima.Seededpolicy.yaml
library.yaml and chains/*.yamlThe templates: reusable components and the chains built from them, copied onto each work item at intake.Seeded: the default and quick-task chainsLibrary and chains
harnesses.yamlHarness profiles and agent profiles.Seededharnesses.yaml
access.yamlBind address, password, remote access.The first save in Settingsaccess.yaml
intake.yamlAutonomous pickup of issues, and schedules.Seededintake.yaml
notify.yamlThe notification webhook.The first save in Settingsnotify.yaml
theme.yamlUI appearance.The first save in Settingstheme.yaml
sandbox.yamlWhich container CLI runs sandboxed tasks, SELinux, and an extra CA.Yousandbox.yaml
detectors.yamlYour own conventions for the setup and test commands kraft repo connect proposes, layered on the shipped table.Youdetectors.yaml
harnesses/*.yamlYour own harness definitions, which add a harness or override a shipped one.YouHarness definition files

How Kraft treats the directory

  • Seeding. Kraft copies the shipped defaults into config/ on first run and never overwrites it afterwards, so an upgrade cannot clobber an edited policy. Upgrade your configuration takes what a new release ships in library.yaml and chains/. The files marked "You" or "The first save in Settings" are never seeded.
  • Editing. The Templates screens edit library.yaml and chains/. Settings edits the rest, except sandbox.yaml, detectors.yaml and harnesses/, which no screen edits. Editing any file by hand is equally supported.
  • Moving it. KRAFT_HOME and KRAFT_CONFIG_DIR move the directory; see Environment variables.
  • Validation. Kraft validates each file when it loads it, and reports a file that fails with the offending key named. Chain rules such as extends and reject_to are in Chain file keys.
  • An old directory. Before 2.0, the directory was templates/; see Upgrade from 1.4. A home still in the 0.x template format (a registry.yaml, hook names or gate_after) is refused until you run kraft admin update; see Migrating a home from 0.x.

Three commands check and reload the files:

  • kraft admin doctor reports anything that does not parse.
  • kraft admin reload rereads policy.yaml, library.yaml with its chains, and intake.yaml without a restart. A change to access.yaml's bind or port needs a restart, and a hand edit of notify.yaml takes effect at the next save in Settings or a restart.
  • kraft admin templates lint checks the whole library and every chain at once, and writes nothing.

In this section

  • repos.yaml: every field in repos.yaml, and the pages for how connect proposes commands, detectors.yaml and workspaces.
  • policy.yaml: every field in policy.yaml: caps, budget, concurrency, archiving, defaults and maxima.
  • Library and chains: the sections of library.yaml, and how chains/*.yaml files compose them into chains.
  • harnesses.yaml: every field in harnesses.yaml, for harness profiles and agent profiles.
  • access.yaml: every field in access.yaml: bind address, port, password, session expiry and allowed hosts.
  • intake.yaml: every field in intake.yaml: autonomous pickup from beads, and cron schedules.
  • notify.yaml: every field in notify.yaml: the notification webhook and the events that post to it.
  • theme.yaml: every field in theme.yaml: colors, density, the diff and the board.
  • Sandboxed workers: the sandbox key of repos.yaml, and the pages for the container's resource limits, callbacks, network, credentials, Kits, sandbox.yaml and git.
  • Environment variables: the variables that move this directory, every other variable Kraft reads, and the variables a worker gets.
Copyright © 2026