[{"data":1,"prerenderedAt":771},["ShallowReactive",2],{"navigation_docs":3,"-reference-configuration-harnesses-file":270,"-reference-configuration-harnesses-file-surround":766},[4,28,51,110,243],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"Troubleshooting and FAQ","\u002Fget-started\u002Ftroubleshooting","1.get-started\u002F3.troubleshooting",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F1.vocabulary",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F2.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F3.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F4.permission-gate",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,62,66,70,74,78,82,86,90,94,98,102,106],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61},"Use Kraft from your agent","\u002Fguides\u002Fagent-integration","3.guides\u002F01.agent-integration",{"title":63,"path":64,"stem":65},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F02.kraft-lite",{"title":67,"path":68,"stem":69},"Remote access","\u002Fguides\u002Fremote-access","3.guides\u002F03.remote-access",{"title":71,"path":72,"stem":73},"Add or override a harness","\u002Fguides\u002Fadding-a-harness","3.guides\u002F04.adding-a-harness",{"title":75,"path":76,"stem":77},"Schedule or webhook work","\u002Fguides\u002Fschedule-and-webhook-work","3.guides\u002F05.schedule-and-webhook-work",{"title":79,"path":80,"stem":81},"Add a security review or a gate reviewer","\u002Fguides\u002Fadd-review-agents","3.guides\u002F06.add-review-agents",{"title":83,"path":84,"stem":85},"Kraft for VS Code","\u002Fguides\u002Fvscode","3.guides\u002F07.vscode",{"title":87,"path":88,"stem":89},"Reviewing a change","\u002Fguides\u002Freview-a-change","3.guides\u002F08.review-a-change",{"title":91,"path":92,"stem":93},"Write your own chain","\u002Fguides\u002Fwrite-your-own-chain","3.guides\u002F09.write-your-own-chain",{"title":95,"path":96,"stem":97},"Switch a harness","\u002Fguides\u002Fswitch-harness","3.guides\u002F10.switch-harness",{"title":99,"path":100,"stem":101},"Upgrade your templates","\u002Fguides\u002Fupgrading-templates","3.guides\u002F11.upgrading-templates",{"title":103,"path":104,"stem":105},"Operations","\u002Fguides\u002Foperations","3.guides\u002F12.operations",{"title":107,"path":108,"stem":109},"Worker Kit","\u002Fguides\u002Fworker-kit","3.guides\u002F13.worker-kit",{"title":111,"path":112,"stem":113,"children":114},"Reference","\u002Freference","4.reference",[115,117,139,183,201,205,227,231,235,239],{"title":10,"path":112,"stem":116},"4.reference\u002Findex",{"title":118,"path":119,"stem":120,"children":121},"CLI","\u002Freference\u002Fcli","4.reference\u002F1.cli\u002Findex",[122,123,127,131,135],{"title":10,"path":119,"stem":120},{"title":124,"path":125,"stem":126},"Item verbs","\u002Freference\u002Fcli\u002Fitem","4.reference\u002F1.cli\u002F2.item",{"title":128,"path":129,"stem":130},"View verbs","\u002Freference\u002Fcli\u002Fview","4.reference\u002F1.cli\u002F3.view",{"title":132,"path":133,"stem":134},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","4.reference\u002F1.cli\u002F4.repo",{"title":136,"path":137,"stem":138},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","4.reference\u002F1.cli\u002F5.admin",{"title":140,"path":141,"stem":142,"children":143},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F2.configuration\u002Findex",[144,145,155,159,163,167,171,175,179],{"title":10,"path":141,"stem":142},{"title":146,"path":147,"stem":148,"children":149},"Repos","\u002Freference\u002Fconfiguration\u002Frepos","4.reference\u002F2.configuration\u002F2.repos\u002Findex",[150,151],{"title":10,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","4.reference\u002F2.configuration\u002F2.repos\u002F3.workspaces",{"title":156,"path":157,"stem":158},"Policy","\u002Freference\u002Fconfiguration\u002Fpolicy","4.reference\u002F2.configuration\u002F3.policy",{"title":160,"path":161,"stem":162},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","4.reference\u002F2.configuration\u002F4.library-and-chains",{"title":164,"path":165,"stem":166},"Harnesses file","\u002Freference\u002Fconfiguration\u002Fharnesses-file","4.reference\u002F2.configuration\u002F5.harnesses-file",{"title":168,"path":169,"stem":170},"Access","\u002Freference\u002Fconfiguration\u002Faccess","4.reference\u002F2.configuration\u002F6.access",{"title":172,"path":173,"stem":174},"Intake","\u002Freference\u002Fconfiguration\u002Fintake","4.reference\u002F2.configuration\u002F7.intake",{"title":176,"path":177,"stem":178},"Sandbox host","\u002Freference\u002Fconfiguration\u002Fsandbox","4.reference\u002F2.configuration\u002F8.sandbox",{"title":180,"path":181,"stem":182},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","4.reference\u002F2.configuration\u002F9.environment-variables",{"title":184,"path":185,"stem":186,"children":187},"Chain nodes","\u002Freference\u002Fchain-nodes","4.reference\u002F3.chain-nodes\u002Findex",[188,189,193,197],{"title":10,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","4.reference\u002F3.chain-nodes\u002F2.subprocess-tasks",{"title":194,"path":195,"stem":196},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","4.reference\u002F3.chain-nodes\u002F3.fix-loop",{"title":198,"path":199,"stem":200},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","4.reference\u002F3.chain-nodes\u002F4.result-file",{"title":202,"path":203,"stem":204},"Permission gate","\u002Freference\u002Fpermissions","4.reference\u002F4.permissions",{"title":206,"path":207,"stem":208,"children":209},"Agent harnesses","\u002Freference\u002Fharnesses","4.reference\u002F5.harnesses\u002Findex",[210,211,215,219,223],{"title":10,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","4.reference\u002F5.harnesses\u002F2.unattended-runs",{"title":216,"path":217,"stem":218},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","4.reference\u002F5.harnesses\u002F3.agent-profiles",{"title":220,"path":221,"stem":222},"Harness files","\u002Freference\u002Fharnesses\u002Fharness-files","4.reference\u002F5.harnesses\u002F4.harness-files",{"title":224,"path":225,"stem":226},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","4.reference\u002F5.harnesses\u002F5.fallback-and-escalation",{"title":228,"path":229,"stem":230},"Inbound triggers","\u002Freference\u002Ftriggers","4.reference\u002F6.triggers",{"title":232,"path":233,"stem":234},"HTTP API","\u002Freference\u002Fhttp-api","4.reference\u002F7.http-api",{"title":236,"path":237,"stem":238},"MCP tools","\u002Freference\u002Fmcp-tools","4.reference\u002F8.mcp-tools",{"title":240,"path":241,"stem":242},"Events","\u002Freference\u002Fevents","4.reference\u002F9.events",{"title":244,"path":245,"stem":246,"children":247},"Project","\u002Fproject","5.project",[248,250,254,258,262,266],{"title":10,"path":245,"stem":249},"5.project\u002Findex",{"title":251,"path":252,"stem":253},"Architecture","\u002Fproject\u002Farchitecture","5.project\u002F1.architecture",{"title":255,"path":256,"stem":257},"Contributing","\u002Fproject\u002Fcontributing","5.project\u002F2.contributing",{"title":259,"path":260,"stem":261},"Security","\u002Fproject\u002Fsecurity","5.project\u002F3.security",{"title":263,"path":264,"stem":265},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","5.project\u002F4.data-and-privacy",{"title":267,"path":268,"stem":269},"Status and support","\u002Fproject\u002Fstatus-and-support","5.project\u002F5.status-and-support",{"id":271,"title":164,"body":272,"description":760,"extension":761,"links":762,"meta":763,"navigation":401,"path":165,"seo":764,"stem":166,"__hash__":765},"docs\u002F4.reference\u002F2.configuration\u002F5.harnesses-file.md",{"type":273,"value":274,"toc":758},"minimark",[275,283,295,312,457,600,614,675,744,754],[276,277,278,282],"p",{},[279,280,281],"code",{},"harnesses.yaml"," declares the harness profiles that agent tasks select.",[276,284,285,286,290,291,294],{},"A harness ",[287,288,289],"em",{},"profile"," is a configured instance of an agent-runtime provider: the\nexecutable to run and the runtime options to start from. A profile selects\nonly from what its provider supports. Kraft refuses, when it reads the file, a\n",[279,292,293],{},"defaults"," key the provider does not declare or a value it does not accept.",[276,296,297,298,301,302,304,305,311],{},"Every agent task's ",[279,299,300],{},"harness:"," names a profile here, never a provider directly.\nKraft reads the file again at each agent launch, so an edit reaches the next\nlaunch without a restart. A task whose profile is missing or disabled, or\nwhose ",[279,303,281],{}," cannot be read, stops for a human with the reason in\nits session log. Kraft never falls back to another profile unless the task\ndeclares a ",[306,307,308],"a",{"href":225},[279,309,310],{},"fallback:"," list.",[313,314,319],"pre",{"className":315,"code":316,"language":317,"meta":318,"style":318},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","harnesses:\n  codex:\n    provider: codex\n    enabled: true\n    executable: codex\n    defaults:\n      effort: medium\n\n  claude:\n    provider: claude\n    enabled: true\n    executable: claude\n    defaults:\n      model: sonnet\n","yaml","",[279,320,321,334,342,355,367,377,385,396,403,411,421,430,439,446],{"__ignoreMap":318},[322,323,326,330],"span",{"class":324,"line":325},"line",1,[322,327,329],{"class":328},"swJcz","harnesses",[322,331,333],{"class":332},"sMK4o",":\n",[322,335,337,340],{"class":324,"line":336},2,[322,338,339],{"class":328},"  codex",[322,341,333],{"class":332},[322,343,345,348,351],{"class":324,"line":344},3,[322,346,347],{"class":328},"    provider",[322,349,350],{"class":332},":",[322,352,354],{"class":353},"sfazB"," codex\n",[322,356,358,361,363],{"class":324,"line":357},4,[322,359,360],{"class":328},"    enabled",[322,362,350],{"class":332},[322,364,366],{"class":365},"sfNiH"," true\n",[322,368,370,373,375],{"class":324,"line":369},5,[322,371,372],{"class":328},"    executable",[322,374,350],{"class":332},[322,376,354],{"class":353},[322,378,380,383],{"class":324,"line":379},6,[322,381,382],{"class":328},"    defaults",[322,384,333],{"class":332},[322,386,388,391,393],{"class":324,"line":387},7,[322,389,390],{"class":328},"      effort",[322,392,350],{"class":332},[322,394,395],{"class":353}," medium\n",[322,397,399],{"class":324,"line":398},8,[322,400,402],{"emptyLinePlaceholder":401},true,"\n",[322,404,406,409],{"class":324,"line":405},9,[322,407,408],{"class":328},"  claude",[322,410,333],{"class":332},[322,412,414,416,418],{"class":324,"line":413},10,[322,415,347],{"class":328},[322,417,350],{"class":332},[322,419,420],{"class":353}," claude\n",[322,422,424,426,428],{"class":324,"line":423},11,[322,425,360],{"class":328},[322,427,350],{"class":332},[322,429,366],{"class":365},[322,431,433,435,437],{"class":324,"line":432},12,[322,434,372],{"class":328},[322,436,350],{"class":332},[322,438,420],{"class":353},[322,440,442,444],{"class":324,"line":441},13,[322,443,382],{"class":328},[322,445,333],{"class":332},[322,447,449,452,454],{"class":324,"line":448},14,[322,450,451],{"class":328},"      model",[322,453,350],{"class":332},[322,455,456],{"class":353}," sonnet\n",[458,459,460,476],"table",{},[461,462,463],"thead",{},[464,465,466,470,473],"tr",{},[467,468,469],"th",{},"Key",[467,471,472],{},"Type",[467,474,475],{},"Effect",[477,478,479,504,543,562,578],"tbody",{},[464,480,481,487,490],{},[482,483,484],"td",{},[279,485,486],{},"\u003Cprofile id>",[482,488,489],{},"string",[482,491,492,493,495,496,499,500,503],{},"The name a task's ",[279,494,300],{}," selects; lowercase letters, digits, ",[279,497,498],{},"_"," and ",[279,501,502],{},"-",".",[464,505,506,511,513],{},[482,507,508],{},[279,509,510],{},"provider",[482,512,489],{},[482,514,515,516,519,520,519,523,519,526,519,529,519,532,535,536,539,540,542],{},"The harness this profile configures: ",[279,517,518],{},"claude",", ",[279,521,522],{},"codex",[279,524,525],{},"cursor",[279,527,528],{},"opencode",[279,530,531],{},"gemini",[279,533,534],{},"antigravity"," or ",[279,537,538],{},"amp"," (see ",[306,541,206],{"href":207},").",[464,544,545,550,553],{},[482,546,547],{},[279,548,549],{},"enabled",[482,551,552],{},"boolean",[482,554,555,558,559,503],{},[279,556,557],{},"false"," takes the profile out of service, and a task selecting it stops for a human; defaults to ",[279,560,561],{},"true",[464,563,564,569,571],{},[482,565,566],{},[279,567,568],{},"executable",[482,570,489],{},[482,572,573,574,577],{},"The command to launch when it differs from the provider's default; the provider's own subcommand (",[279,575,576],{},"codex exec",") is kept after it.",[464,579,580,584,587],{},[482,581,582],{},[279,583,293],{},[482,585,586],{},"mapping",[482,588,589,590,519,593,519,596,599],{},"The lowest-precedence runtime options (",[279,591,592],{},"model",[279,594,595],{},"effort",[279,597,598],{},"permission_mode","); any other key stops the task for a human.",[276,601,602,603,606,607,610,611,503],{},"The optional ",[279,604,605],{},"profiles:"," section holds ",[306,608,609],{"href":217},"agent profiles",",\nthe model tiers a task selects with ",[279,612,613],{},"profile:",[313,615,617],{"className":315,"code":616,"language":317,"meta":318,"style":318},"profiles:\n  strong:\n    effort: high\n    model: { claude: sonnet, codex: gpt-5.6-terra }\n",[279,618,619,626,633,643],{"__ignoreMap":318},[322,620,621,624],{"class":324,"line":325},[322,622,623],{"class":328},"profiles",[322,625,333],{"class":332},[322,627,628,631],{"class":324,"line":336},[322,629,630],{"class":328},"  strong",[322,632,333],{"class":332},[322,634,635,638,640],{"class":324,"line":344},[322,636,637],{"class":328},"    effort",[322,639,350],{"class":332},[322,641,642],{"class":353}," high\n",[322,644,645,648,650,653,656,658,661,664,667,669,672],{"class":324,"line":357},[322,646,647],{"class":328},"    model",[322,649,350],{"class":332},[322,651,652],{"class":332}," {",[322,654,655],{"class":328}," claude",[322,657,350],{"class":332},[322,659,660],{"class":353}," sonnet",[322,662,663],{"class":332},",",[322,665,666],{"class":328}," codex",[322,668,350],{"class":332},[322,670,671],{"class":353}," gpt-5.6-terra",[322,673,674],{"class":332}," }\n",[458,676,677,687],{},[461,678,679],{},[464,680,681,683,685],{},[467,682,469],{},[467,684,472],{},[467,686,475],{},[477,688,689,705,716,727],{},[464,690,691,695,697],{},[482,692,693],{},[279,694,486],{},[482,696,489],{},[482,698,492,699,495,701,499,703,503],{},[279,700,613],{},[279,702,498],{},[279,704,502],{},[464,706,707,711,713],{},[482,708,709],{},[279,710,592],{},[482,712,586],{},[482,714,715],{},"Required; maps a provider ID to a model ID, and a provider left out cannot run this profile.",[464,717,718,722,724],{},[482,719,720],{},[279,721,595],{},[482,723,489],{},[482,725,726],{},"Optional; one effort for every provider, and at least one named provider must accept it.",[464,728,729,734,737],{},[482,730,731],{},[279,732,733],{},"fallback",[482,735,736],{},"list",[482,738,739,740,743],{},"Optional; the tier's default ",[306,741,742],{"href":225},"fallback list"," for a task that sets none.",[276,745,746,749,750,753],{},[279,747,748],{},"kraft admin harnesses"," lists every profile with its provider and the library\ntasks that select it, then each agent profile. ",[279,751,752],{},"kraft admin harnesses ID"," shows\none profile. Settings, Harnesses shows the same beside each provider's\ncapabilities, and edits one profile at a time. Kraft refuses a save, with the\nreason and nothing written, if it would stop an agent task of a chain that\nresolves now from launching. Agent profiles are read-only in Settings; edit\nthem in the file. A save rewrites the file, so it drops your comments.",[755,756,757],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":318,"searchDepth":336,"depth":336,"links":759},[],"Every field in harnesses.yaml: harness profiles.","md",null,{},{"title":164,"description":760},"3vaOkV6wR7dOSRgbVWD4ySdp_FIedRkN49fMRx7zo8A",[767,769],{"title":160,"path":161,"stem":162,"description":768,"children":-1},"Every field in library.yaml and chains\u002F*.yaml: reusable components and chain templates.",{"title":168,"path":169,"stem":170,"description":770,"children":-1},"Every field in access.yaml: bind address, password, and remote access.",1790824509487]