Configuration
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 doctorreports anything that does not parse.kraft admin reloadpicks up an on-disk edit without a restart.kraft admin templates lintchecks 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
| File | What it configures | Page |
|---|---|---|
repos.yaml | Connected repos: setup command, env, steering, workspaces. | Repos |
policy.yaml | Caps, budget, archiving, defaults and maxima, triggers. | Policy |
library.yaml and chains/*.yaml | Reusable components and the chain templates built from them. | Library and chains |
harnesses.yaml | Harness profiles and agent profiles. | Harnesses file |
access.yaml | Bind address, password, remote access. | Access |
intake.yaml | Autonomous pickup of issues. | Intake |
sandbox.yaml | Which container CLI runs sandboxed tasks, SELinux, and an extra CA. | Sandbox host |
notify.yaml, theme.yaml | Notification 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.
| File | Fields |
|---|---|
notify.yaml | enabled; 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.yaml | palette (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. |