[{"data":1,"prerenderedAt":1193},["ShallowReactive",2],{"navigation_docs":3,"-reference-cli-repo":504,"-reference-cli-repo-surround":1188},[4,28,51,187,214,469],{"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},"FAQ","\u002Fget-started\u002Ffaq","1.get-started\u002F3.faq",{"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},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F1.how-a-work-item-runs",{"title":40,"path":41,"stem":42},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F2.caps-and-budgets",{"title":44,"path":45,"stem":46},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F3.permission-gate",{"title":48,"path":49,"stem":50},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F4.vocabulary",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,96,113,134,183],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61,"children":62,"page":95},"Day to day","\u002Fguides\u002Fday-to-day","3.guides\u002F1.day-to-day",[63,67,71,75,79,83,87,91],{"title":64,"path":65,"stem":66},"The setup wizard on first start","\u002Fguides\u002Fday-to-day\u002Ffirst-run","3.guides\u002F1.day-to-day\u002F2.first-run",{"title":68,"path":69,"stem":70},"File a work item","\u002Fguides\u002Fday-to-day\u002Ffile-a-work-item","3.guides\u002F1.day-to-day\u002F3.file-a-work-item",{"title":72,"path":73,"stem":74},"Use Kraft from your agent","\u002Fguides\u002Fday-to-day\u002Fagent-integration","3.guides\u002F1.day-to-day\u002F4.agent-integration",{"title":76,"path":77,"stem":78},"Reviewing a change","\u002Fguides\u002Fday-to-day\u002Freview-a-change","3.guides\u002F1.day-to-day\u002F5.review-a-change",{"title":80,"path":81,"stem":82},"Raise a cap on a stopped item","\u002Fguides\u002Fday-to-day\u002Fraise-a-cap","3.guides\u002F1.day-to-day\u002F6.raise-a-cap",{"title":84,"path":85,"stem":86},"Kraft for VS Code","\u002Fguides\u002Fday-to-day\u002Fvscode","3.guides\u002F1.day-to-day\u002F7.vscode",{"title":88,"path":89,"stem":90},"Kraft on a phone","\u002Fguides\u002Fday-to-day\u002Fkraft-on-a-phone","3.guides\u002F1.day-to-day\u002F8.kraft-on-a-phone",{"title":92,"path":93,"stem":94},"Get notified when an item needs you","\u002Fguides\u002Fday-to-day\u002Fnotifications","3.guides\u002F1.day-to-day\u002F9.notifications",false,{"title":97,"path":98,"stem":99,"children":100,"page":95},"Customize and automate","\u002Fguides\u002Fcustomize","3.guides\u002F2.customize",[101,105,109],{"title":102,"path":103,"stem":104},"Write your own chain","\u002Fguides\u002Fcustomize\u002Fwrite-your-own-chain","3.guides\u002F2.customize\u002F1.write-your-own-chain",{"title":106,"path":107,"stem":108},"Add a security review or a gate reviewer","\u002Fguides\u002Fcustomize\u002Fadd-review-agents","3.guides\u002F2.customize\u002F2.add-review-agents",{"title":110,"path":111,"stem":112},"Schedule or webhook work","\u002Fguides\u002Fcustomize\u002Fschedule-and-webhook-work","3.guides\u002F2.customize\u002F3.schedule-and-webhook-work",{"title":114,"path":115,"stem":116,"children":117,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[118,122,126,130],{"title":119,"path":120,"stem":121},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":123,"path":124,"stem":125},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":127,"path":128,"stem":129},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":131,"path":132,"stem":133},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":135,"path":136,"stem":137,"children":138,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[139,143,147,151,155,159,163,167,171,175,179],{"title":140,"path":141,"stem":142},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":144,"path":145,"stem":146},"Put a proxy in front of Kraft","\u002Fguides\u002Frun\u002Fput-a-proxy-in-front-of-kraft","3.guides\u002F4.run\u002F02.put-a-proxy-in-front-of-kraft",{"title":148,"path":149,"stem":150},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":152,"path":153,"stem":154},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":156,"path":157,"stem":158},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":160,"path":161,"stem":162},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":164,"path":165,"stem":166},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":168,"path":169,"stem":170},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":172,"path":173,"stem":174},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":176,"path":177,"stem":178},"Upgrade from 0.x or a release candidate","\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate","3.guides\u002F4.run\u002F10.upgrade-from-0-x-or-a-release-candidate",{"title":180,"path":181,"stem":182},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":184,"path":185,"stem":186},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":188,"path":189,"stem":190,"children":191},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[192,194,198,202,206,210],{"title":10,"path":189,"stem":193},"4.troubleshooting\u002Findex",{"title":195,"path":196,"stem":197},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":199,"path":200,"stem":201},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":203,"path":204,"stem":205},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":207,"path":208,"stem":209},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":211,"path":212,"stem":213},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":215,"path":216,"stem":217,"children":218},"Reference","\u002Freference","5.reference",[219,221,259,281,285,375,393,419,423,427,461,465],{"title":10,"path":216,"stem":220},"5.reference\u002Findex",{"title":222,"path":223,"stem":224,"children":225},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[226,227,231,235,239,243,247,251,255],{"title":10,"path":223,"stem":224},{"title":228,"path":229,"stem":230},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":232,"path":233,"stem":234},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":236,"path":237,"stem":238},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":240,"path":241,"stem":242},"Fix loops and test scopes","\u002Freference\u002Fweb-ui\u002Ffix-loops-and-test-scopes","5.reference\u002F00.web-ui\u002F3.fix-loops-and-test-scopes",{"title":244,"path":245,"stem":246},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":248,"path":249,"stem":250},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":252,"path":253,"stem":254},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":256,"path":257,"stem":258},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":260,"path":261,"stem":262,"children":263},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[264,265,269,273,277],{"title":10,"path":261,"stem":262},{"title":266,"path":267,"stem":268},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":270,"path":271,"stem":272},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":274,"path":275,"stem":276},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":278,"path":279,"stem":280},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":282,"path":283,"stem":284},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":286,"path":287,"stem":288,"children":289},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[290,291,309,313,317,321,325,329,333,337,371],{"title":10,"path":287,"stem":288},{"title":292,"path":293,"stem":294,"children":295},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[296,297,301,305],{"title":10,"path":293,"stem":294},{"title":298,"path":299,"stem":300},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":302,"path":303,"stem":304},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":306,"path":307,"stem":308},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":310,"path":311,"stem":312},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":314,"path":315,"stem":316},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":318,"path":319,"stem":320},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":322,"path":323,"stem":324},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":326,"path":327,"stem":328},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":330,"path":331,"stem":332},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":334,"path":335,"stem":336},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":338,"path":339,"stem":340,"children":341},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[342,343,347,351,355,359,363,367],{"title":10,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":348,"path":349,"stem":350},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":352,"path":353,"stem":354},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":356,"path":357,"stem":358},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":360,"path":361,"stem":362},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":364,"path":365,"stem":366},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":368,"path":369,"stem":370},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":372,"path":373,"stem":374},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":376,"path":377,"stem":378,"children":379},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[380,381,385,389],{"title":10,"path":377,"stem":378},{"title":382,"path":383,"stem":384},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":386,"path":387,"stem":388},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":390,"path":391,"stem":392},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":394,"path":395,"stem":396,"children":397},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[398,399,403,407,411,415],{"title":10,"path":395,"stem":396},{"title":400,"path":401,"stem":402},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":404,"path":405,"stem":406},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":408,"path":409,"stem":410},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":412,"path":413,"stem":414},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":416,"path":417,"stem":418},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":420,"path":421,"stem":422},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":424,"path":425,"stem":426},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":428,"path":429,"stem":430,"children":431},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[432,433,437,441,445,449,453,457],{"title":10,"path":429,"stem":430},{"title":434,"path":435,"stem":436},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":438,"path":439,"stem":440},"Gates, run control, ending and retry","\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending","5.reference\u002F08.http-api\u002F3.gates-run-control-and-ending",{"title":442,"path":443,"stem":444},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":446,"path":447,"stem":448},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":450,"path":451,"stem":452},"Repos, chains, harnesses and the server","\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server","5.reference\u002F08.http-api\u002F6.repos-chains-harnesses-and-server",{"title":454,"path":455,"stem":456},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":458,"path":459,"stem":460},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":462,"path":463,"stem":464},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":466,"path":467,"stem":468},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":470,"path":471,"stem":472,"children":473},"Security and project","\u002Fproject","6.project",[474,476,480,484,488,492,496,500],{"title":10,"path":471,"stem":475},"6.project\u002Findex",{"title":477,"path":478,"stem":479},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":481,"path":482,"stem":483},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":485,"path":486,"stem":487},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":489,"path":490,"stem":491},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":493,"path":494,"stem":495},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":497,"path":498,"stem":499},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":501,"path":502,"stem":503},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":505,"title":274,"body":506,"description":1181,"extension":1182,"links":1183,"meta":1184,"navigation":1185,"path":275,"seo":1186,"stem":276,"__hash__":1187},"docs\u002F5.reference\u002F01.cli\u002F4.repo.md",{"type":507,"value":508,"toc":1170},"minimark",[509,523,689,816,824,866,886,890,904,1038,1053,1057,1066,1069,1079,1086,1098,1102,1105,1114,1117,1131,1135,1166],[510,511,512,516,517,522],"p",{},[513,514,515],"code",{},"kraft repo"," manages the repositories Kraft works in and their ",[518,519,521],"a",{"href":520},"\u002Fconcepts\u002Fvocabulary#worktree","worktrees",".",[524,525,530],"pre",{"className":526,"code":527,"language":528,"meta":529,"style":529},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","kraft repo list\nkraft repo connect\nkraft repo connect --verify\nkraft repo connect --test-command \"make check\" --setup-command \".\u002Fconfigure\"\nkraft repo disconnect\ncd \"$(kraft repo path \u003Cid>)\"\nkraft repo path --shell\nkraft repo open \u003Cid>\nkraft repo open \u003Cid> --editor cursor\n","bash","",[513,531,532,548,558,572,593,603,630,643,666],{"__ignoreMap":529},[533,534,537,541,545],"span",{"class":535,"line":536},"line",1,[533,538,540],{"class":539},"szw1H","kraft",[533,542,544],{"class":543},"semJd"," repo",[533,546,547],{"class":543}," list\n",[533,549,551,553,555],{"class":535,"line":550},2,[533,552,540],{"class":539},[533,554,544],{"class":543},[533,556,557],{"class":543}," connect\n",[533,559,561,563,565,568],{"class":535,"line":560},3,[533,562,540],{"class":539},[533,564,544],{"class":543},[533,566,567],{"class":543}," connect",[533,569,571],{"class":570},"ssYy9"," --verify\n",[533,573,575,577,579,581,584,587,590],{"class":535,"line":574},4,[533,576,540],{"class":539},[533,578,544],{"class":543},[533,580,567],{"class":543},[533,582,583],{"class":570}," --test-command",[533,585,586],{"class":543}," \"make check\"",[533,588,589],{"class":570}," --setup-command",[533,591,592],{"class":543}," \".\u002Fconfigure\"\n",[533,594,596,598,600],{"class":535,"line":595},5,[533,597,540],{"class":539},[533,599,544],{"class":543},[533,601,602],{"class":543}," disconnect\n",[533,604,606,609,612,614,617,621,624,627],{"class":535,"line":605},6,[533,607,608],{"class":570},"cd",[533,610,611],{"class":543}," \"$(",[533,613,540],{"class":539},[533,615,616],{"class":543}," repo path ",[533,618,620],{"class":619},"sklAV","\u003C",[533,622,623],{"class":543},"id",[533,625,626],{"class":619},">",[533,628,629],{"class":543},")\"\n",[533,631,633,635,637,640],{"class":535,"line":632},7,[533,634,540],{"class":539},[533,636,544],{"class":543},[533,638,639],{"class":543}," path",[533,641,642],{"class":570}," --shell\n",[533,644,646,648,650,653,656,659,663],{"class":535,"line":645},8,[533,647,540],{"class":539},[533,649,544],{"class":543},[533,651,652],{"class":543}," open",[533,654,655],{"class":619}," \u003C",[533,657,658],{"class":543},"i",[533,660,662],{"class":661},"s7iLA","d",[533,664,665],{"class":619},">\n",[533,667,669,671,673,675,677,679,681,683,686],{"class":535,"line":668},9,[533,670,540],{"class":539},[533,672,544],{"class":543},[533,674,652],{"class":543},[533,676,655],{"class":619},[533,678,658],{"class":543},[533,680,662],{"class":661},[533,682,626],{"class":619},[533,684,685],{"class":570}," --editor",[533,687,688],{"class":543}," cursor\n",[690,691,692,705],"table",{},[693,694,695],"thead",{},[696,697,698,702],"tr",{},[699,700,701],"th",{},"Command",[699,703,704],{},"Effect",[706,707,708,727,741,755,776],"tbody",{},[696,709,710,716],{},[711,712,713],"td",{},[513,714,715],{},"repo list",[711,717,718,719,722,723,726],{},"The connected repos. ",[513,720,721],{},"*"," marks the one you are in. ",[513,724,725],{},"--all"," also lists auto-connected repos nobody has touched yet.",[696,728,729,734],{},[711,730,731],{},[513,732,733],{},"repo connect [PATH]",[711,735,736,737,522],{},"Connects a repo (safe to repeat). See ",[518,738,740],{"href":739},"#connect-a-repo","Connect a repo",[696,742,743,748],{},[711,744,745],{},[513,746,747],{},"repo disconnect [PATH]",[711,749,750,751,522],{},"Forgets the repo. Refused (exit 1) while it has an item that has not ended. See ",[518,752,754],{"href":753},"#disconnect-a-repo","Disconnect a repo",[696,756,757,762],{},[711,758,759],{},[513,760,761],{},"repo path [ID]",[711,763,764,765,768,769,772,773,775],{},"Prints the item's worktree path. ",[513,766,767],{},"repo cd"," is an alias. ",[513,770,771],{},"--shell"," prints a shell function that does the ",[513,774,608],{}," for you.",[696,777,778,783],{},[711,779,780],{},[513,781,782],{},"repo open [ID]",[711,784,785,786,789,790,792,793,792,796,792,799,802,803,806,807,811,812,815],{},"Opens the worktree in an editor. ",[513,787,788],{},"--editor"," picks ",[513,791,513],{},", ",[513,794,795],{},"cursor",[513,797,798],{},"zed",[513,800,801],{},"obsidian"," or ",[513,804,805],{},"system"," (the OS opener). With none named, it is the ",[808,809,810],"strong",{},"Default editor"," in Settings, else ",[513,813,814],{},"KRAFT_EDITOR",", else the OS opener.",[817,818,820,821,823],"h3",{"id":819},"what-repo-list-prints","What ",[513,822,715],{}," prints",[510,825,826,828,829,792,832,792,835,838,839,842,843,845,846,848,849,802,852,855,856,858,859,862,863,865],{},[513,827,715],{}," prints a table with the columns ",[513,830,831],{},"NAME",[513,833,834],{},"STATE",[513,836,837],{},"CHAIN"," and ",[513,840,841],{},"PATH",". The first column holds ",[513,844,721],{}," for the repo you are in. ",[513,847,834],{}," is ",[513,850,851],{},"enabled",[513,853,854],{},"disabled",", and ",[513,857,837],{}," is the repo's ",[513,860,861],{},"default_chain",". A line after the table counts the repos left out, and names ",[513,864,725],{},", when it hides any.",[524,867,872],{"className":868,"code":870,"language":871,"meta":529},[869],"language-text","   NAME  STATE    CHAIN       PATH\n*  app   enabled  default     \u002FUsers\u002Fyou\u002Fcode\u002Fapp\n   api   enabled  quick-task  \u002FUsers\u002Fyou\u002Fcode\u002Fapi\n","text",[513,873,874,878,882],{"__ignoreMap":529},[533,875,877],{"className":876},[535],"   NAME  STATE    CHAIN       PATH\n",[533,879,881],{"className":880},[535],"*  app   enabled  default     \u002FUsers\u002Fyou\u002Fcode\u002Fapp\n",[533,883,885],{"className":884},[535],"   api   enabled  quick-task  \u002FUsers\u002Fyou\u002Fcode\u002Fapi\n",[887,888,740],"h2",{"id":889},"connect-a-repo",[510,891,892,895,896,898,899,792,901,903],{},[513,893,894],{},"kraft repo connect [PATH]"," connects the repo at ",[513,897,841],{},", by default the current directory. A relative ",[513,900,841],{},[513,902,522],{}," included, is read from where you stand. A repo with no commit yet is refused: commit its files first.",[690,905,906,916],{},[693,907,908],{},[696,909,910,913],{},[699,911,912],{},"Flag",[699,914,915],{},"What it does",[706,917,918,931,945,957,975,989,1005,1022],{},[696,919,920,928],{},[711,921,922,792,925],{},[513,923,924],{},"-y",[513,926,927],{},"--yes",[711,929,930],{},"Takes the proposal without asking, even in a terminal.",[696,932,933,938],{},[711,934,935],{},[513,936,937],{},"--test-command CMD",[711,939,940,941,944],{},"Replaces the proposed test command (",[513,942,943],{},"\"\""," for none).",[696,946,947,952],{},[711,948,949],{},[513,950,951],{},"--setup-command CMD",[711,953,954,955,944],{},"Replaces the proposed setup command (",[513,956,943],{},[696,958,959,964],{},[711,960,961],{},[513,962,963],{},"--no-tests",[711,965,966,967,971,972,522],{},"Declares a repo with no tests, and saves it enabled: its ",[518,968,970],{"href":969},"\u002Fconcepts\u002Fvocabulary#work-item","work items"," pass verification without running a test. Cannot be combined with ",[513,973,974],{},"--test-command",[696,976,977,982],{},[711,978,979],{},[513,980,981],{},"--verify",[711,983,984,985,522],{},"After connecting, runs the setup and test commands once. See ",[518,986,988],{"href":987},"#verify-a-repos-commands","Verify a repo's commands",[696,990,991,996],{},[711,992,993],{},[513,994,995],{},"--timeout MIN",[711,997,998,999,1001,1002,522],{},"With ",[513,1000,981],{},", the minutes each command may take. Default ",[513,1003,1004],{},"30",[696,1006,1007,1012],{},[711,1008,1009],{},[513,1010,1011],{},"--on-host",[711,1013,998,1014,1016,1017,1021],{},[513,1015,981],{},", runs a ",[518,1018,1020],{"href":1019},"\u002Fconcepts\u002Fvocabulary#sandbox","sandboxed"," repo's commands on this machine.",[696,1023,1024,1029],{},[711,1025,1026],{},[513,1027,1028],{},"--json",[711,1030,1031,1032,1034,1035,522],{},"Prints the answer as JSON. With ",[513,1033,981],{},", its lines are in ",[513,1036,1037],{},"verify.output",[510,1039,998,1040,1042,1043,1046,1047,1049,1050,1052],{},[513,1041,963],{},", and nothing found to prepare either, ",[513,1044,1045],{},"setup_command"," is saved as ",[513,1048,943],{}," too. Nested and area scopes still run. ",[518,1051,298],{"href":299}," has the rest.",[817,1054,1056],{"id":1055},"what-connect-proposes","What connect proposes",[510,1058,1059,1062,1063,1065],{},[513,1060,1061],{},"repo connect"," proposes a setup command and a test command from the repo's task runner, CI and lockfiles (",[518,1064,298],{"href":299},"). It prints each with the file it came from, lists what else it found, and says when it found none. In a terminal it asks which candidate to use.",[817,1067,988],{"id":1068},"verify-a-repos-commands",[510,1070,1071,1073,1074,1078],{},[513,1072,981],{}," runs the setup command, then each test command, in a throwaway worktree of the commit a work item starts from. It runs them as a work item would, with a ",[518,1075,1077],{"href":1076},"\u002Fconcepts\u002Fvocabulary#worker","worker","'s environment.",[510,1080,1081,1082,1085],{},"It exits 1 when a command fails, when one runs past ",[513,1083,1084],{},"--timeout"," minutes, or when a command leaves files a work item would commit.",[510,1087,1088,1089,1091,1092,1094,1095,522],{},"A sandboxed repo's commands run in its sandbox when a work item runs them, so ",[513,1090,981],{}," refuses the repo unless you pass ",[513,1093,1011],{},". It prints ",[513,1096,1097],{},"verify: this repo runs sandboxed, and --verify would run its commands on this machine instead; pass --on-host to do that anyway",[817,1099,1101],{"id":1100},"connecting-a-repo-that-is-already-connected","Connecting a repo that is already connected",[510,1103,1104],{},"On a repo already connected, connect probes again for what its entry leaves undecided: a test command where it has none and no test scopes, and a setup command where none is declared. It says what it found and saves only that, after a yes in a terminal. A repo saved disabled for want of a test command is enabled once it has one.",[510,1106,1107,1108,1110,1111,1113],{},"Anything already decided stays as it is: change it in ",[513,1109,292],{},". ",[513,1112,981],{}," rehearses what it then declares.",[887,1115,754],{"id":1116},"disconnect-a-repo",[510,1118,1119,1120,792,1123,1126,1127,1130],{},"Refused (exit 1) while the repo has an item that has not ended, paused and never-started ones included: complete, cancel or abandon them first (",[513,1121,1122],{},"kraft item complete",[513,1124,1125],{},"cancel",", or ",[513,1128,1129],{},"abandon --yes","). Ended items are untouched, and no file in the repo is.",[887,1132,1134],{"id":1133},"related","Related",[1136,1137,1138,1156,1161],"ul",{},[1139,1140,1141,1143,1144,792,1146,838,1149,1152,1153,1155],"li",{},[518,1142,292],{"href":293},": each repo's settings, such as ",[513,1145,1045],{},[513,1147,1148],{},"env",[513,1150,1151],{},"test_scopes",". Past connecting, you edit them in Settings › Repos or in ",[513,1154,292],{},", not with the CLI.",[1139,1157,1158,1160],{},[518,1159,298],{"href":299},": where the proposed setup and test commands come from.",[1139,1162,1163,1165],{},[518,1164,266],{"href":267},": file work in a repo you connected.",[1167,1168,1169],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .sklAV, html code.shiki .sklAV{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}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":529,"searchDepth":550,"depth":550,"links":1171},[1172,1174,1179,1180],{"id":819,"depth":560,"text":1173},"What repo list prints",{"id":889,"depth":550,"text":740,"children":1175},[1176,1177,1178],{"id":1055,"depth":560,"text":1056},{"id":1068,"depth":560,"text":988},{"id":1100,"depth":560,"text":1101},{"id":1116,"depth":550,"text":754},{"id":1133,"depth":550,"text":1134},"The kraft repo verbs: list, connect, and disconnect repositories, and reach their worktrees.","md",null,{},true,{"title":274,"description":1181},"h8OEeDV3LLiLaGDxWq-gT8nO7T_AEtGDYfNzw-fZUTA",[1189,1191],{"title":270,"path":271,"stem":272,"description":1190,"children":-1},"The kraft view verbs: read the board, follow a running item, and review its diff and documents.",{"title":278,"path":279,"stem":280,"description":1192,"children":-1},"The kraft admin verbs: start, stop, check, update, and configure this machine's server.",1791801255191]