[{"data":1,"prerenderedAt":565},["ShallowReactive",2],{"navigation_docs":3,"-get-started-why-kraft":270,"-get-started-why-kraft-surround":560},[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":13,"body":272,"description":553,"extension":554,"links":555,"meta":556,"navigation":557,"path":14,"seo":558,"stem":15,"__hash__":559},"docs\u002F1.get-started\u002F0.why-kraft.md",{"type":273,"value":274,"toc":539},"minimark",[275,279,282,287,391,395,400,403,407,418,422,425,452,458,462,465,469,512,515,519],[276,277,278],"p",{},"Kraft is not a coding agent, and it doesn't replace yours. It runs the agent\nyou already use (Claude Code, Codex and others) and adds what a single agent\nsession can't give you.",[276,280,281],{},"Use Kraft when you want agent work to run while you are not watching, and to\nstop only where a person should decide. Use an interactive session for\neverything else. This page explains what Kraft adds, what it does not, and how\nit compares with the tools you already use.",[283,284,286],"h2",{"id":285},"what-your-agent-cant-do-on-its-own","What your agent can't do on its own",[288,289,290,304,315,321,329,337,343,351,373],"ul",{},[291,292,293,297,298,303],"li",{},[294,295,296],"strong",{},"A process written once."," A ",[299,300,302],"a",{"href":301},"\u002Fconcepts\u002Fvocabulary#chain","chain"," is a file\nyou can read and diff: spec, plan, implementation, verification, review, merge\nrequest, merge. The agent does not decide the workflow fresh each time.",[291,305,306,309,310,314],{},[294,307,308],{},"Gates where a human decides."," You approve a spec, a plan, or a merge\nrequest. A rejection carries your note back to the node that wrote it, and\nthat node tries again. See ",[299,311,313],{"href":312},"\u002Fconcepts\u002Fvocabulary#gate","Gate",".",[291,316,317,320],{},[294,318,319],{},"Checks the agent doesn't grade itself on."," An agent that says \"all tests\npass\" is reporting on its own work. Kraft runs your tests in a node of its\nown, waits for your CI itself, and has a separate reviewer or judge decide\nwhether a fix is done. A worker can't approve its own gate.",[291,322,323,326,327,314],{},[294,324,325],{},"Bounded retries and spend."," Time, token, and dollar caps apply per work\nitem, node, step, and task. A defect the agent cannot fix stops the item and\nshows you the full trace. See ",[299,328,44],{"href":45},[291,330,331,334,335,314],{},[294,332,333],{},"Answers to permission prompts."," A worker runs with nobody to click \"allow\".\nKraft answers from a policy you set and records each allow and deny on the\nitem's timeline. See ",[299,336,48],{"href":49},[291,338,339,342],{},[294,340,341],{},"Isolation."," Every work item edits its own git worktree on its own branch,\nso your checkout stays as you left it and items run in parallel.",[291,344,345,348,349,314],{},[294,346,347],{},"One board."," All your repos in one view, grouped by what needs you, what is\nrunning, and what is done. Search and analytics (lead time, cost by node) come\nfrom the same events. You can reach the board from a phone through a tunnel;\nsee ",[299,350,67],{"href":68},[291,352,353,356,357,360,361,365,366,369,370,314],{},[294,354,355],{},"Several agents and models in one work item."," Claude Code, Codex, Cursor,\nGemini, OpenCode, and Amp run as ",[299,358,359],{"href":207},"harnesses",", and each\nagent task picks its own harness and model. One item can have one agent\nwrite the code and another review it, or a strong model plan and a fast one\ntriage. The shipped chains run every agent task on Claude Code; to mix them,\nchange the tasks' ",[362,363,364],"code",{},"harness:"," in ",[362,367,368],{},"library.yaml",". See\n",[299,371,372],{"href":96},"Switch a task to another harness",[291,374,375,378,379,382,383,386,387,390],{},[294,376,377],{},"Several ways in."," File work from the UI, the CLI, an agent over MCP, or a\n",[299,380,381],{"href":229},"trigger"," on a schedule or a webhook. A work item lands paused\nand spends nothing until a person starts it. You can also start it as you\nfile it: the UI's Create and start, or ",[362,384,385],{},"kraft item create --autostart",".\nOnly ",[299,388,389],{"href":173},"auto-intake",", which is off by\ndefault, starts work on its own.",[283,392,394],{"id":393},"how-it-compares","How it compares",[396,397,399],"h3",{"id":398},"an-interactive-session","An interactive session",[276,401,402],{},"In a session you are the scheduler, the reviewer, the test runner, and the\nmemory. Close the terminal and the work stops. Kraft takes over those jobs: items\nrun unattended, several at once, and the board tells you which ones need you.",[396,404,406],{"id":405},"a-loop","A loop",[276,408,409,410,413,414,417],{},"A loop (a ",[362,411,412],{},"while"," loop around an agent, a Ralph-style run, ",[362,415,416],{},"\u002Floop",") repeats\nuntil the agent decides it is done, and nothing bounds that decision. It spends\ntokens on a defect it cannot fix and has no way to ask a person. Kraft's retry\nloops stop at an attempt limit, a wall-clock limit, or a token or dollar budget,\nand then escalate to you.",[396,419,421],{"id":420},"skills-and-plugins-alone","Skills and plugins alone",[276,423,424],{},"A skill tells an agent how to do one step well, and the agent still decides\nwhether to run it, in what order, and when to stop. That has two costs:",[288,426,427,433],{},[291,428,429,432],{},[294,430,431],{},"It is inconsistent."," The process lives in the agent's judgment, so the same\nrequest can skip a review one day and run it the next. Nothing stops at your\napproval unless the agent chooses to, and nothing resumes after a crashed\nsession. In a chain the order, the gates, and the retries are fixed by the\nfile, not decided at run time.",[291,434,435,438,439,442,443,446,447,451],{},[294,436,437],{},"It is expensive."," Every step, tool call, and result stays in one growing\ncontext that is paid for again on each turn. In Kraft the chain, not the\nagent, does the sequencing and bookkeeping. Kraft runs the repo's tests, the\nrebase, and the merge-request steps itself (",[362,440,441],{},"builtin"," and ",[362,444,445],{},"forge"," tasks, see\n",[299,448,450],{"href":449},"\u002Fconcepts\u002Fvocabulary#task","Task","), and each agent task is its own headless\nsession, not another turn in one long conversation.",[276,453,454,455,457],{},"Kraft runs your skills as tasks inside a chain. ",[299,456,63],{"href":64},"\nruns the same chain inside one agent session when you do not want a service. It\nkeeps the fixed order and gates, but not the fresh-session saving, because it\nruns in the one session.",[396,459,461],{"id":460},"ci","CI",[276,463,464],{},"CI runs a fixed script on a fresh runner. Kraft runs an agent on your machine\nthat you can pause, steer, or reject with a note. Kraft does not replace CI. It\nwatches your merge request's pipeline and fixes what fails.",[283,466,468],{"id":467},"when-not-to-use-kraft","When not to use Kraft",[288,470,471,477,483,489,495],{},[291,472,473,476],{},[294,474,475],{},"A quick fix."," Open a session. A chain is overhead you won't earn back.",[291,478,479,482],{},[294,480,481],{},"Exploration."," If you don't yet know what you want, you need a conversation,\nnot a pipeline. Explore first, then hand off a spec.",[291,484,485,488],{},[294,486,487],{},"Work you want to steer every few minutes."," That is what a session is for.",[291,490,491,494],{},[294,492,493],{},"A shared team service."," Kraft runs on one machine and binds loopback by\ndefault. It is not a hosted service.",[291,496,497,500,501,504,505,369,508,314],{},[294,498,499],{},"A repo that isn't set up for it."," Kraft stops a repo's first item rather\nthan guess its ",[362,502,503],{},"test_command"," or ",[362,506,507],{},"setup_command",[299,509,511],{"href":510},"\u002Fget-started\u002Ffirst-work-item#troubleshooting","Troubleshooting",[276,513,514],{},"The usual pattern uses both: think in a session, settle a spec and a plan, hand\nthem to Kraft, and take the next thing.",[283,516,518],{"id":517},"next-steps","Next steps",[288,520,521,526,532],{},[291,522,523,314],{},[299,524,525],{"href":18},"Install Kraft",[291,527,528,531],{},[299,529,530],{"href":22},"Run your first work item"," to a merge-ready diff.",[291,533,534,535,538],{},"Read the ",[299,536,537],{"href":37},"vocabulary"," behind the terms used here.",{"title":540,"searchDepth":541,"depth":541,"links":542},"",2,[543,544,551,552],{"id":285,"depth":541,"text":286},{"id":393,"depth":541,"text":394,"children":545},[546,548,549,550],{"id":398,"depth":547,"text":399},3,{"id":405,"depth":547,"text":406},{"id":420,"depth":547,"text":421},{"id":460,"depth":547,"text":461},{"id":467,"depth":541,"text":468},{"id":517,"depth":541,"text":518},"What Kraft does that an interactive session, a loop, or a skill does not, and when it is the wrong tool.","md",null,{},true,{"title":13,"description":553},"muS-bxYdVR_-B8-gBvDV5gQol0v1cGmv0qK5pPG4wl0",[561,563],{"title":10,"path":6,"stem":11,"description":562,"children":-1},"Install Kraft and run your first work item.",{"title":17,"path":18,"stem":19,"description":564,"children":-1},"Install, verify, upgrade, and uninstall Kraft with uv, Homebrew, the install script, or from source.",1790824538653]