nextv1.4.0
Configuration

Harnesses file

Every field in harnesses.yaml: harness profiles.

harnesses.yaml declares the harness profiles that agent tasks select.

A harness profile is a configured instance of an agent-runtime provider: the executable to run and the runtime options to start from. A profile selects only from what its provider supports. Kraft refuses, when it reads the file, a defaults key the provider does not declare or a value it does not accept.

Every agent task's harness: names a profile here, never a provider directly. Kraft reads the file again at each agent launch, so an edit reaches the next launch without a restart. A task whose profile is missing or disabled, or whose harnesses.yaml cannot be read, stops for a human with the reason in its session log. Kraft never falls back to another profile unless the task declares a fallback: list.

harnesses:
  codex:
    provider: codex
    enabled: true
    executable: codex
    defaults:
      effort: medium

  claude:
    provider: claude
    enabled: true
    executable: claude
    defaults:
      model: sonnet
KeyTypeEffect
<profile id>stringThe name a task's harness: selects; lowercase letters, digits, _ and -.
providerstringThe harness this profile configures: claude, codex, cursor, opencode, gemini, antigravity or amp (see Agent harnesses).
enabledbooleanfalse takes the profile out of service, and a task selecting it stops for a human; defaults to true.
executablestringThe command to launch when it differs from the provider's default; the provider's own subcommand (codex exec) is kept after it.
defaultsmappingThe lowest-precedence runtime options (model, effort, permission_mode); any other key stops the task for a human.

The optional profiles: section holds agent profiles, the model tiers a task selects with profile:.

profiles:
  strong:
    effort: high
    model: { claude: sonnet, codex: gpt-5.6-terra }
KeyTypeEffect
<profile id>stringThe name a task's profile: selects; lowercase letters, digits, _ and -.
modelmappingRequired; maps a provider ID to a model ID, and a provider left out cannot run this profile.
effortstringOptional; one effort for every provider, and at least one named provider must accept it.
fallbacklistOptional; the tier's default fallback list for a task that sets none.

kraft admin harnesses lists every profile with its provider and the library tasks that select it, then each agent profile. kraft admin harnesses ID shows one profile. Settings, Harnesses shows the same beside each provider's capabilities, and edits one profile at a time. Kraft refuses a save, with the reason and nothing written, if it would stop an agent task of a chain that resolves now from launching. Agent profiles are read-only in Settings; edit them in the file. A save rewrites the file, so it drops your comments.

Copyright © 2026