[{"data":1,"prerenderedAt":1362},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fgetting-started":3,"surround-\u002Fdocs\u002Fgetting-started":1329,"docs-nav":1333},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"order":10,"group":11,"body":12,"_type":1323,"_id":1324,"_source":1325,"_file":1326,"_stem":1327,"_extension":1328},"\u002Fdocs\u002Fgetting-started","docs",false,"","Getting started","Install Excalibur and run it — the first run sets itself up and ships your first agent-built change. Two commands, about five minutes.",1,"Get started",{"type":13,"children":14,"toc":1309},"root",[15,31,61,68,139,145,183,188,226,263,269,303,331,337,365,408,468,474,479,484,491,496,620,633,637,657,663,675,815,841,847,852,943,986,992,1041,1047,1154,1160,1186,1226,1232,1303],{"type":16,"tag":17,"props":18,"children":19},"element","p",{},[20,23,29],{"type":21,"value":22},"text","Excalibur Core is the AI coding agent for product engineers. Most agents write code; Excalibur knows the whole product cycle — discover, build, verify, ship — on any model, in any terminal, local-first. It's ",{"type":16,"tag":24,"props":25,"children":26},"strong",{},[27],{"type":21,"value":28},"zero-config",{"type":21,"value":30},": install it, run it, start building.",{"type":16,"tag":32,"props":33,"children":35},"note",{"type":34},"neutral",[36],{"type":16,"tag":17,"props":37,"children":38},{},[39,46,48,54,55],{"type":16,"tag":40,"props":41,"children":43},"code",{"className":42},[],[44],{"type":21,"value":45},"npm i -g @excalibur-oss\u002Fexcalibur",{"type":21,"value":47}," → ",{"type":16,"tag":40,"props":49,"children":51},{"className":50},[],[52],{"type":21,"value":53},"cd your-repo",{"type":21,"value":47},{"type":16,"tag":40,"props":56,"children":58},{"className":57},[],[59],{"type":21,"value":60},"excalibur",{"type":16,"tag":62,"props":63,"children":65},"h2",{"id":64},"prerequisites",[66],{"type":21,"value":67},"Prerequisites",{"type":16,"tag":69,"props":70,"children":71},"ul",{},[72,83,95],{"type":16,"tag":73,"props":74,"children":75},"li",{},[76,81],{"type":16,"tag":24,"props":77,"children":78},{},[79],{"type":21,"value":80},"Node.js ≥ 22",{"type":21,"value":82}," and a package manager (npm, pnpm or yarn).",{"type":16,"tag":73,"props":84,"children":85},{},[86,88,93],{"type":21,"value":87},"A ",{"type":16,"tag":24,"props":89,"children":90},{},[91],{"type":21,"value":92},"git repository",{"type":21,"value":94}," — Excalibur works inside any repo and isolates its work in branches.",{"type":16,"tag":73,"props":96,"children":97},{},[98,100,105,107,114,116,121,123,129,131,137],{"type":21,"value":99},"An ",{"type":16,"tag":24,"props":101,"children":102},{},[103],{"type":21,"value":104},"API key",{"type":21,"value":106}," for one model provider — or run a local model with ",{"type":16,"tag":108,"props":109,"children":111},"a",{"href":110},"\u002Fdocs\u002Fproviders",[112],{"type":21,"value":113},"Ollama",{"type":21,"value":115},", free and offline. You ",{"type":16,"tag":24,"props":117,"children":118},{},[119],{"type":21,"value":120},"paste the key",{"type":21,"value":122}," during setup; Excalibur saves it to a private local file (",{"type":16,"tag":40,"props":124,"children":126},{"className":125},[],[127],{"type":21,"value":128},"~\u002F.config\u002Fexcalibur\u002Fsecrets.env",{"type":21,"value":130},", owner-only ",{"type":16,"tag":40,"props":132,"children":134},{"className":133},[],[135],{"type":21,"value":136},"0600",{"type":21,"value":138},") and loads it automatically. Your committed config never contains the key — only the name of the env var that holds it.",{"type":16,"tag":62,"props":140,"children":142},{"id":141},"_1-install",[143],{"type":21,"value":144},"1. Install",{"type":16,"tag":146,"props":147,"children":151},"pre",{"className":148,"code":149,"language":150,"meta":7,"style":7},"language-bash shiki shiki-themes github-light","npm install -g @excalibur-oss\u002Fexcalibur\n","bash",[152],{"type":16,"tag":40,"props":153,"children":154},{"__ignoreMap":7},[155],{"type":16,"tag":156,"props":157,"children":159},"span",{"class":158,"line":10},"line",[160,166,172,178],{"type":16,"tag":156,"props":161,"children":163},{"style":162},"--shiki-default:#6F42C1",[164],{"type":21,"value":165},"npm",{"type":16,"tag":156,"props":167,"children":169},{"style":168},"--shiki-default:#032F62",[170],{"type":21,"value":171}," install",{"type":16,"tag":156,"props":173,"children":175},{"style":174},"--shiki-default:#005CC5",[176],{"type":21,"value":177}," -g",{"type":16,"tag":156,"props":179,"children":180},{"style":168},[181],{"type":21,"value":182}," @excalibur-oss\u002Fexcalibur\n",{"type":16,"tag":17,"props":184,"children":185},{},[186],{"type":21,"value":187},"One global, self-contained package — no peer resolution. Verify it's on your PATH:",{"type":16,"tag":146,"props":189,"children":191},{"className":148,"code":190,"language":150,"meta":7,"style":7},"excalibur --version\nexcalibur doctor      # checks Node, git, provider config and PATH\n",[192],{"type":16,"tag":40,"props":193,"children":194},{"__ignoreMap":7},[195,207],{"type":16,"tag":156,"props":196,"children":197},{"class":158,"line":10},[198,202],{"type":16,"tag":156,"props":199,"children":200},{"style":162},[201],{"type":21,"value":60},{"type":16,"tag":156,"props":203,"children":204},{"style":174},[205],{"type":21,"value":206}," --version\n",{"type":16,"tag":156,"props":208,"children":210},{"class":158,"line":209},2,[211,215,220],{"type":16,"tag":156,"props":212,"children":213},{"style":162},[214],{"type":21,"value":60},{"type":16,"tag":156,"props":216,"children":217},{"style":168},[218],{"type":21,"value":219}," doctor",{"type":16,"tag":156,"props":221,"children":223},{"style":222},"--shiki-default:#6A737D",[224],{"type":21,"value":225},"      # checks Node, git, provider config and PATH\n",{"type":16,"tag":32,"props":227,"children":228},{},[229],{"type":16,"tag":17,"props":230,"children":231},{},[232,237,239,245,247,253,255,261],{"type":16,"tag":24,"props":233,"children":234},{},[235],{"type":21,"value":236},"Prefer from source?",{"type":21,"value":238}," ",{"type":16,"tag":40,"props":240,"children":242},{"className":241},[],[243],{"type":21,"value":244},"git clone",{"type":21,"value":246}," the repo, ",{"type":16,"tag":40,"props":248,"children":250},{"className":249},[],[251],{"type":21,"value":252},"pnpm install && pnpm -r build",{"type":21,"value":254},", then ",{"type":16,"tag":40,"props":256,"children":258},{"className":257},[],[259],{"type":21,"value":260},"npm link",{"type":21,"value":262}," the CLI. See the repository README.",{"type":16,"tag":62,"props":264,"children":266},{"id":265},"_2-run-it",[267],{"type":21,"value":268},"2. Run it",{"type":16,"tag":17,"props":270,"children":271},{},[272,274,279,281,286,288,294,296,301],{"type":21,"value":273},"Just run ",{"type":16,"tag":40,"props":275,"children":277},{"className":276},[],[278],{"type":21,"value":60},{"type":21,"value":280}," in your repo. There's ",{"type":16,"tag":24,"props":282,"children":283},{},[284],{"type":21,"value":285},"no setup step to remember",{"type":21,"value":287}," — on the first run Excalibur onboards you: detects your stack, connects a model, writes a minimal ",{"type":16,"tag":40,"props":289,"children":291},{"className":290},[],[292],{"type":21,"value":293},".excalibur\u002F",{"type":21,"value":295},", and drops you into the ",{"type":16,"tag":24,"props":297,"children":298},{},[299],{"type":21,"value":300},"m-shell",{"type":21,"value":302}," — its conversational surface.",{"type":16,"tag":146,"props":304,"children":306},{"className":148,"code":305,"language":150,"meta":7,"style":7},"cd your-repo\nexcalibur\n",[307],{"type":16,"tag":40,"props":308,"children":309},{"__ignoreMap":7},[310,323],{"type":16,"tag":156,"props":311,"children":312},{"class":158,"line":10},[313,318],{"type":16,"tag":156,"props":314,"children":315},{"style":174},[316],{"type":21,"value":317},"cd",{"type":16,"tag":156,"props":319,"children":320},{"style":168},[321],{"type":21,"value":322}," your-repo\n",{"type":16,"tag":156,"props":324,"children":325},{"class":158,"line":209},[326],{"type":16,"tag":156,"props":327,"children":328},{"style":162},[329],{"type":21,"value":330},"excalibur\n",{"type":16,"tag":332,"props":333,"children":336},"shell",{":lines":334,"title":335},"[{\"kind\":\"comment\",\"text\":\"setting up Excalibur in this repo…\"},{\"kind\":\"ok\",\"text\":\"detected  TypeScript · pnpm · Vitest · CLAUDE.md, AGENTS.md\"},{\"kind\":\"arrow\",\"text\":\"which model provider?   ↑\u002F↓ · type to filter · enter\"},{\"kind\":\"dim\",\"text\":\"❯ Kimi K2 (Moonshot) — recommended · MiniMax · GLM · Anthropic · OpenAI · …\"},{\"kind\":\"ok\",\"text\":\"paste your API key ›  ••••••••••••\",\"note\":\"saved to ~\u002F.config\u002Fexcalibur\u002Fsecrets.env · 0600\"},{\"kind\":\"ok\",\"text\":\"connected · kimi-k2.7-code responded in 0.8s\",\"tone\":\"success\"},{\"kind\":\"warn\",\"text\":\"standard-safe · approvals on · push & network off\"},{\"kind\":\"blank\"},{\"kind\":\"epigraph\",\"text\":\"The sword is drawn. What shall we build?\"},{\"kind\":\"prompt\",\"text\":\"\"}]","excalibur — first run",[],{"type":16,"tag":32,"props":338,"children":339},{},[340],{"type":16,"tag":17,"props":341,"children":342},{},[343,348,350,356,358,363],{"type":16,"tag":24,"props":344,"children":345},{},[346],{"type":21,"value":347},"Already have a key exported?",{"type":21,"value":349}," If ",{"type":16,"tag":40,"props":351,"children":353},{"className":352},[],[354],{"type":21,"value":355},"ANTHROPIC_API_KEY",{"type":21,"value":357}," (or any provider key) is in your environment, Excalibur detects it and offers that provider in one keystroke — no pasting. The picker is ",{"type":16,"tag":24,"props":359,"children":360},{},[361],{"type":21,"value":362},"arrow-key + type-ahead",{"type":21,"value":364},": start typing (\"deep\" → DeepSeek) to filter the catalog.",{"type":16,"tag":32,"props":366,"children":367},{},[368],{"type":16,"tag":17,"props":369,"children":370},{},[371,376,378,383,385,390,392,398,400,406],{"type":16,"tag":24,"props":372,"children":373},{},[374],{"type":21,"value":375},"Starting from scratch?",{"type":21,"value":377}," Run ",{"type":16,"tag":40,"props":379,"children":381},{"className":380},[],[382],{"type":21,"value":60},{"type":21,"value":384}," in your home directory or an empty folder and it offers to ",{"type":16,"tag":24,"props":386,"children":387},{},[388],{"type":21,"value":389},"create a new project",{"type":21,"value":391}," (",{"type":16,"tag":40,"props":393,"children":395},{"className":394},[],[396],{"type":21,"value":397},"git init",{"type":21,"value":399}," + scaffold) instead of cluttering the current directory — or do it explicitly with ",{"type":16,"tag":40,"props":401,"children":403},{"className":402},[],[404],{"type":21,"value":405},"excalibur new \u003Cname>",{"type":21,"value":407},".",{"type":16,"tag":32,"props":409,"children":410},{},[411],{"type":16,"tag":17,"props":412,"children":413},{},[414,416,421,423,429,431,437,438,444,446,452,454,460,462,467],{"type":21,"value":415},"Excalibur ",{"type":16,"tag":24,"props":417,"children":418},{},[419],{"type":21,"value":420},"respects the AI setup you already have",{"type":21,"value":422}," — ",{"type":16,"tag":40,"props":424,"children":426},{"className":425},[],[427],{"type":21,"value":428},"CLAUDE.md",{"type":21,"value":430},", ",{"type":16,"tag":40,"props":432,"children":434},{"className":433},[],[435],{"type":21,"value":436},"AGENTS.md",{"type":21,"value":430},{"type":16,"tag":40,"props":439,"children":441},{"className":440},[],[442],{"type":21,"value":443},"GEMINI.md",{"type":21,"value":445},", Cursor rules, Copilot instructions, ",{"type":16,"tag":40,"props":447,"children":449},{"className":448},[],[450],{"type":21,"value":451},"README",{"type":21,"value":453},"\u002FADRs and ",{"type":16,"tag":40,"props":455,"children":457},{"className":456},[],[458],{"type":21,"value":459},"SKILL.md",{"type":21,"value":461}," are detected and layered in. Nothing is rewritten, the nearest instructions win, and anything executable (a skill) is ",{"type":16,"tag":24,"props":463,"children":464},{},[465],{"type":21,"value":466},"never enabled without your say-so",{"type":21,"value":407},{"type":16,"tag":62,"props":469,"children":471},{"id":470},"_3-build-something",[472],{"type":21,"value":473},"3. Build something",{"type":16,"tag":17,"props":475,"children":476},{},[477],{"type":21,"value":478},"Describe what you want in plain language. Excalibur routes intent to the right workflow, shows the plan, and works in the open with a live TUI.",{"type":16,"tag":332,"props":480,"children":483},{":lines":481,"title":482},"[{\"kind\":\"prompt\",\"text\":\"add pagination to the orders endpoint\"},{\"kind\":\"head\",\"text\":\"intent: feature · workflow: standard-feature · autonomy: L3\"},{\"kind\":\"arrow\",\"text\":\"plan ready — 4 steps\",\"tone\":\"accent\"},{\"kind\":\"ok\",\"text\":\"edit  api\u002Forders.ts\",\"note\":\"+41 −6\",\"tone\":\"accent\"},{\"kind\":\"ok\",\"text\":\"pnpm test api\u002Forders\",\"note\":\"18 passing\",\"tone\":\"success\"},{\"kind\":\"warn\",\"text\":\"update docs\u002Fapi\u002Forders.md?   y · N · always   › y\"},{\"kind\":\"ok\",\"text\":\"tests pass · docs updated\"},{\"kind\":\"arrow\",\"text\":\"opened PR #214 — ready to review\",\"tone\":\"accent\"}]","excalibur — m-shell",[],{"type":16,"tag":485,"props":486,"children":488},"h3",{"id":487},"in-the-shell-or-as-a-command",[489],{"type":21,"value":490},"In the shell, or as a command",{"type":16,"tag":17,"props":492,"children":493},{},[494],{"type":21,"value":495},"Everything the shell does is also a one-shot command — for scripts, hooks and CI. Two ways to do the same thing:",{"type":16,"tag":146,"props":497,"children":499},{"className":148,"code":498,"language":150,"meta":7,"style":7},"# from your normal shell (programmatic):\nexcalibur run \"add pagination to the orders endpoint\"   # L3 — build in a branch\nexcalibur review                                         # L0 — read & critique\nexcalibur patch \"fix the timezone bug in invoices\"       # L2 — a reviewable patch\nexcalibur ask \"how does the retry logic work?\"           # L1 — just answer\nexcalibur discovery \"should we add SSO reminders?\"       # decide before building\n",[500],{"type":16,"tag":40,"props":501,"children":502},{"__ignoreMap":7},[503,511,533,551,574,597],{"type":16,"tag":156,"props":504,"children":505},{"class":158,"line":10},[506],{"type":16,"tag":156,"props":507,"children":508},{"style":222},[509],{"type":21,"value":510},"# from your normal shell (programmatic):\n",{"type":16,"tag":156,"props":512,"children":513},{"class":158,"line":209},[514,518,523,528],{"type":16,"tag":156,"props":515,"children":516},{"style":162},[517],{"type":21,"value":60},{"type":16,"tag":156,"props":519,"children":520},{"style":168},[521],{"type":21,"value":522}," run",{"type":16,"tag":156,"props":524,"children":525},{"style":168},[526],{"type":21,"value":527}," \"add pagination to the orders endpoint\"",{"type":16,"tag":156,"props":529,"children":530},{"style":222},[531],{"type":21,"value":532},"   # L3 — build in a branch\n",{"type":16,"tag":156,"props":534,"children":536},{"class":158,"line":535},3,[537,541,546],{"type":16,"tag":156,"props":538,"children":539},{"style":162},[540],{"type":21,"value":60},{"type":16,"tag":156,"props":542,"children":543},{"style":168},[544],{"type":21,"value":545}," review",{"type":16,"tag":156,"props":547,"children":548},{"style":222},[549],{"type":21,"value":550},"                                         # L0 — read & critique\n",{"type":16,"tag":156,"props":552,"children":554},{"class":158,"line":553},4,[555,559,564,569],{"type":16,"tag":156,"props":556,"children":557},{"style":162},[558],{"type":21,"value":60},{"type":16,"tag":156,"props":560,"children":561},{"style":168},[562],{"type":21,"value":563}," patch",{"type":16,"tag":156,"props":565,"children":566},{"style":168},[567],{"type":21,"value":568}," \"fix the timezone bug in invoices\"",{"type":16,"tag":156,"props":570,"children":571},{"style":222},[572],{"type":21,"value":573},"       # L2 — a reviewable patch\n",{"type":16,"tag":156,"props":575,"children":577},{"class":158,"line":576},5,[578,582,587,592],{"type":16,"tag":156,"props":579,"children":580},{"style":162},[581],{"type":21,"value":60},{"type":16,"tag":156,"props":583,"children":584},{"style":168},[585],{"type":21,"value":586}," ask",{"type":16,"tag":156,"props":588,"children":589},{"style":168},[590],{"type":21,"value":591}," \"how does the retry logic work?\"",{"type":16,"tag":156,"props":593,"children":594},{"style":222},[595],{"type":21,"value":596},"           # L1 — just answer\n",{"type":16,"tag":156,"props":598,"children":600},{"class":158,"line":599},6,[601,605,610,615],{"type":16,"tag":156,"props":602,"children":603},{"style":162},[604],{"type":21,"value":60},{"type":16,"tag":156,"props":606,"children":607},{"style":168},[608],{"type":21,"value":609}," discovery",{"type":16,"tag":156,"props":611,"children":612},{"style":168},[613],{"type":21,"value":614}," \"should we add SSO reminders?\"",{"type":16,"tag":156,"props":616,"children":617},{"style":222},[618],{"type":21,"value":619},"       # decide before building\n",{"type":16,"tag":17,"props":621,"children":622},{},[623,625,631],{"type":21,"value":624},"Inside the m-shell, the same actions are natural language or ",{"type":16,"tag":40,"props":626,"children":628},{"className":627},[],[629],{"type":21,"value":630},"\u002Fcommands",{"type":21,"value":632},":",{"type":16,"tag":332,"props":634,"children":636},{":lines":635,"title":60},"[{\"kind\":\"prompt\",\"text\":\"\u002Freview\"},{\"kind\":\"prompt\",\"text\":\"\u002Fpatch fix the timezone bug in invoices\"},{\"kind\":\"prompt\",\"text\":\"how does the retry logic work?\"},{\"kind\":\"prompt\",\"text\":\"\u002Fmodel\"},{\"kind\":\"dim\",\"text\":\"↑\u002F↓ history · @file · #symbol · !shell · \u002Fhelp\"}]",[],{"type":16,"tag":17,"props":638,"children":639},{},[640,642,648,650,656],{"type":21,"value":641},"See ",{"type":16,"tag":108,"props":643,"children":645},{"href":644},"\u002Fdocs\u002Fautonomy-levels",[646],{"type":21,"value":647},"Autonomy levels",{"type":21,"value":649}," for what L0–L4 mean, and the full ",{"type":16,"tag":108,"props":651,"children":653},{"href":652},"\u002Fdocs\u002Fcommands",[654],{"type":21,"value":655},"command reference",{"type":21,"value":407},{"type":16,"tag":62,"props":658,"children":660},{"id":659},"optional-set-up-up-front",[661],{"type":21,"value":662},"Optional: set up up front",{"type":16,"tag":17,"props":664,"children":665},{},[666,668,674],{"type":21,"value":667},"You don't need this — but to scaffold config explicitly (handy for teams or CI), run ",{"type":16,"tag":40,"props":669,"children":671},{"className":670},[],[672],{"type":21,"value":673},"init",{"type":21,"value":632},{"type":16,"tag":676,"props":677,"children":678},"table",{},[679,703],{"type":16,"tag":680,"props":681,"children":682},"thead",{},[683],{"type":16,"tag":684,"props":685,"children":686},"tr",{},[687,693,698],{"type":16,"tag":688,"props":689,"children":690},"th",{},[691],{"type":21,"value":692},"Mode",{"type":16,"tag":688,"props":694,"children":695},{},[696],{"type":21,"value":697},"Command",{"type":16,"tag":688,"props":699,"children":700},{},[701],{"type":21,"value":702},"What it writes",{"type":16,"tag":704,"props":705,"children":706},"tbody",{},[707,745,790],{"type":16,"tag":684,"props":708,"children":709},{},[710,719,728],{"type":16,"tag":711,"props":712,"children":713},"td",{},[714],{"type":16,"tag":24,"props":715,"children":716},{},[717],{"type":21,"value":718},"Minimal",{"type":16,"tag":711,"props":720,"children":721},{},[722],{"type":16,"tag":40,"props":723,"children":725},{"className":724},[],[726],{"type":21,"value":727},"excalibur init",{"type":16,"tag":711,"props":729,"children":730},{},[731,737,739],{"type":16,"tag":40,"props":732,"children":734},{"className":733},[],[735],{"type":21,"value":736},"config.yaml",{"type":21,"value":738}," + ",{"type":16,"tag":40,"props":740,"children":742},{"className":741},[],[743],{"type":21,"value":744},"instructions\u002Fgeneral.md",{"type":16,"tag":684,"props":746,"children":747},{},[748,756,765],{"type":16,"tag":711,"props":749,"children":750},{},[751],{"type":16,"tag":24,"props":752,"children":753},{},[754],{"type":21,"value":755},"Team",{"type":16,"tag":711,"props":757,"children":758},{},[759],{"type":16,"tag":40,"props":760,"children":762},{"className":761},[],[763],{"type":21,"value":764},"excalibur init --team",{"type":16,"tag":711,"props":766,"children":767},{},[768,770,776,777,783,784],{"type":21,"value":769},"Shared ",{"type":16,"tag":40,"props":771,"children":773},{"className":772},[],[774],{"type":21,"value":775},"instructions\u002F",{"type":21,"value":430},{"type":16,"tag":40,"props":778,"children":780},{"className":779},[],[781],{"type":21,"value":782},"workflows\u002F",{"type":21,"value":430},{"type":16,"tag":40,"props":785,"children":787},{"className":786},[],[788],{"type":21,"value":789},"policies\u002F",{"type":16,"tag":684,"props":791,"children":792},{},[793,801,810],{"type":16,"tag":711,"props":794,"children":795},{},[796],{"type":16,"tag":24,"props":797,"children":798},{},[799],{"type":21,"value":800},"Full",{"type":16,"tag":711,"props":802,"children":803},{},[804],{"type":16,"tag":40,"props":805,"children":807},{"className":806},[],[808],{"type":21,"value":809},"excalibur init --full",{"type":16,"tag":711,"props":811,"children":812},{},[813],{"type":21,"value":814},"Also exports the 14 workflows + 14 methodologies",{"type":16,"tag":17,"props":816,"children":817},{},[818,820,825,827,833,835,840],{"type":21,"value":819},"To ",{"type":16,"tag":24,"props":821,"children":822},{},[823],{"type":21,"value":824},"switch or add",{"type":21,"value":826}," model providers later, run ",{"type":16,"tag":40,"props":828,"children":830},{"className":829},[],[831],{"type":21,"value":832},"excalibur models setup",{"type":21,"value":834},". Full matrix in ",{"type":16,"tag":108,"props":836,"children":837},{"href":110},[838],{"type":21,"value":839},"Models & providers",{"type":21,"value":407},{"type":16,"tag":62,"props":842,"children":844},{"id":843},"where-work-lands",[845],{"type":21,"value":846},"Where work lands",{"type":16,"tag":17,"props":848,"children":849},{},[850],{"type":21,"value":851},"Every run is recorded locally — nothing is hidden:",{"type":16,"tag":146,"props":853,"children":855},{"className":148,"code":854,"language":150,"meta":7,"style":7},".excalibur\u002Fruns\u002F\u003Crun-id>\u002F\n├── run.json        # workflow, autonomy, model, tokens, cost, timing\n├── events.jsonl    # the full, replayable event stream\n├── diff.patch      # the accumulated change\n└── summary.md      # what happened and why\n",[856],{"type":16,"tag":40,"props":857,"children":858},{"__ignoreMap":7},[859,873,891,908,925],{"type":16,"tag":156,"props":860,"children":861},{"class":158,"line":10},[862,867],{"type":16,"tag":156,"props":863,"children":864},{"style":162},[865],{"type":21,"value":866},".excalibur\u002Fruns\u002F",{"type":16,"tag":156,"props":868,"children":870},{"style":869},"--shiki-default:#24292E",[871],{"type":21,"value":872},"\u003Crun-id>\u002F\n",{"type":16,"tag":156,"props":874,"children":875},{"class":158,"line":209},[876,881,886],{"type":16,"tag":156,"props":877,"children":878},{"style":162},[879],{"type":21,"value":880},"├──",{"type":16,"tag":156,"props":882,"children":883},{"style":168},[884],{"type":21,"value":885}," run.json",{"type":16,"tag":156,"props":887,"children":888},{"style":222},[889],{"type":21,"value":890},"        # workflow, autonomy, model, tokens, cost, timing\n",{"type":16,"tag":156,"props":892,"children":893},{"class":158,"line":535},[894,898,903],{"type":16,"tag":156,"props":895,"children":896},{"style":162},[897],{"type":21,"value":880},{"type":16,"tag":156,"props":899,"children":900},{"style":168},[901],{"type":21,"value":902}," events.jsonl",{"type":16,"tag":156,"props":904,"children":905},{"style":222},[906],{"type":21,"value":907},"    # the full, replayable event stream\n",{"type":16,"tag":156,"props":909,"children":910},{"class":158,"line":553},[911,915,920],{"type":16,"tag":156,"props":912,"children":913},{"style":162},[914],{"type":21,"value":880},{"type":16,"tag":156,"props":916,"children":917},{"style":168},[918],{"type":21,"value":919}," diff.patch",{"type":16,"tag":156,"props":921,"children":922},{"style":222},[923],{"type":21,"value":924},"      # the accumulated change\n",{"type":16,"tag":156,"props":926,"children":927},{"class":158,"line":576},[928,933,938],{"type":16,"tag":156,"props":929,"children":930},{"style":162},[931],{"type":21,"value":932},"└──",{"type":16,"tag":156,"props":934,"children":935},{"style":168},[936],{"type":21,"value":937}," summary.md",{"type":16,"tag":156,"props":939,"children":940},{"style":222},[941],{"type":21,"value":942},"      # what happened and why\n",{"type":16,"tag":17,"props":944,"children":945},{},[946,948,953,955,961,963,968,970,976,978,984],{"type":21,"value":947},"That ",{"type":16,"tag":24,"props":949,"children":950},{},[951],{"type":21,"value":952},"immutable, append-only event stream",{"type":21,"value":954}," is the single source of truth — the same data renders the live run, the replay, the ",{"type":16,"tag":108,"props":956,"children":958},{"href":957},"\u002Fdocs\u002Fdashboard",[959],{"type":21,"value":960},"web dashboard",{"type":21,"value":962}," and the audit trail, byte-identical. It powers the ",{"type":16,"tag":24,"props":964,"children":965},{},[966],{"type":21,"value":967},"time machine",{"type":21,"value":969},": ",{"type":16,"tag":40,"props":971,"children":973},{"className":972},[],[974],{"type":21,"value":975},"excalibur rewind \u003Crun-id>",{"type":21,"value":977}," (or ",{"type":16,"tag":40,"props":979,"children":981},{"className":980},[],[982],{"type":21,"value":983},"\u002Frewind",{"type":21,"value":985}," in the shell) scrubs a run step by step and forks a new run from any point. Nothing good is thrown away.",{"type":16,"tag":62,"props":987,"children":989},{"id":988},"safe-from-the-first-command",[990],{"type":21,"value":991},"Safe from the first command",{"type":16,"tag":17,"props":993,"children":994},{},[995,997,1003,1005,1010,1012,1017,1019,1025,1027,1032,1034,1040],{"type":21,"value":996},"The ",{"type":16,"tag":40,"props":998,"children":1000},{"className":999},[],[1001],{"type":21,"value":1002},"standard-safe",{"type":21,"value":1004}," preset is active immediately: writes, applies and branches ",{"type":16,"tag":24,"props":1006,"children":1007},{},[1008],{"type":21,"value":1009},"ask",{"type":21,"value":1011}," for approval; ",{"type":16,"tag":24,"props":1013,"children":1014},{},[1015],{"type":21,"value":1016},"push and network are disabled",{"type":21,"value":1018},"; ",{"type":16,"tag":40,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":21,"value":1024},".env",{"type":21,"value":1026}," files, keys and other sensitive paths are ",{"type":16,"tag":24,"props":1028,"children":1029},{},[1030],{"type":21,"value":1031},"blocked",{"type":21,"value":1033},". Full model in ",{"type":16,"tag":108,"props":1035,"children":1037},{"href":1036},"\u002Fdocs\u002Fsafety",[1038],{"type":21,"value":1039},"Safety",{"type":21,"value":407},{"type":16,"tag":62,"props":1042,"children":1044},{"id":1043},"handy-commands",[1045],{"type":21,"value":1046},"Handy commands",{"type":16,"tag":146,"props":1048,"children":1050},{"className":148,"code":1049,"language":150,"meta":7,"style":7},"excalibur status      # repo config, provider, safety preset\nexcalibur logs        # recent runs\nexcalibur serve       # open the local web dashboard (kanban, runs, cost, live orchestration)\nexcalibur doctor      # diagnose setup problems\nexcalibur workflows list\nexcalibur models list\n",[1051],{"type":16,"tag":40,"props":1052,"children":1053},{"__ignoreMap":7},[1054,1071,1088,1105,1121,1138],{"type":16,"tag":156,"props":1055,"children":1056},{"class":158,"line":10},[1057,1061,1066],{"type":16,"tag":156,"props":1058,"children":1059},{"style":162},[1060],{"type":21,"value":60},{"type":16,"tag":156,"props":1062,"children":1063},{"style":168},[1064],{"type":21,"value":1065}," status",{"type":16,"tag":156,"props":1067,"children":1068},{"style":222},[1069],{"type":21,"value":1070},"      # repo config, provider, safety preset\n",{"type":16,"tag":156,"props":1072,"children":1073},{"class":158,"line":209},[1074,1078,1083],{"type":16,"tag":156,"props":1075,"children":1076},{"style":162},[1077],{"type":21,"value":60},{"type":16,"tag":156,"props":1079,"children":1080},{"style":168},[1081],{"type":21,"value":1082}," logs",{"type":16,"tag":156,"props":1084,"children":1085},{"style":222},[1086],{"type":21,"value":1087},"        # recent runs\n",{"type":16,"tag":156,"props":1089,"children":1090},{"class":158,"line":535},[1091,1095,1100],{"type":16,"tag":156,"props":1092,"children":1093},{"style":162},[1094],{"type":21,"value":60},{"type":16,"tag":156,"props":1096,"children":1097},{"style":168},[1098],{"type":21,"value":1099}," serve",{"type":16,"tag":156,"props":1101,"children":1102},{"style":222},[1103],{"type":21,"value":1104},"       # open the local web dashboard (kanban, runs, cost, live orchestration)\n",{"type":16,"tag":156,"props":1106,"children":1107},{"class":158,"line":553},[1108,1112,1116],{"type":16,"tag":156,"props":1109,"children":1110},{"style":162},[1111],{"type":21,"value":60},{"type":16,"tag":156,"props":1113,"children":1114},{"style":168},[1115],{"type":21,"value":219},{"type":16,"tag":156,"props":1117,"children":1118},{"style":222},[1119],{"type":21,"value":1120},"      # diagnose setup problems\n",{"type":16,"tag":156,"props":1122,"children":1123},{"class":158,"line":576},[1124,1128,1133],{"type":16,"tag":156,"props":1125,"children":1126},{"style":162},[1127],{"type":21,"value":60},{"type":16,"tag":156,"props":1129,"children":1130},{"style":168},[1131],{"type":21,"value":1132}," workflows",{"type":16,"tag":156,"props":1134,"children":1135},{"style":168},[1136],{"type":21,"value":1137}," list\n",{"type":16,"tag":156,"props":1139,"children":1140},{"class":158,"line":599},[1141,1145,1150],{"type":16,"tag":156,"props":1142,"children":1143},{"style":162},[1144],{"type":21,"value":60},{"type":16,"tag":156,"props":1146,"children":1147},{"style":168},[1148],{"type":21,"value":1149}," models",{"type":16,"tag":156,"props":1151,"children":1152},{"style":168},[1153],{"type":21,"value":1137},{"type":16,"tag":62,"props":1155,"children":1157},{"id":1156},"troubleshooting",[1158],{"type":21,"value":1159},"Troubleshooting",{"type":16,"tag":32,"props":1161,"children":1163},{"type":1162},"warn",[1164],{"type":16,"tag":17,"props":1165,"children":1166},{},[1167,1172,1174,1178,1180,1185],{"type":16,"tag":24,"props":1168,"children":1169},{},[1170],{"type":21,"value":1171},"No cloud key?",{"type":21,"value":1173}," Run a local model with ",{"type":16,"tag":108,"props":1175,"children":1176},{"href":110},[1177],{"type":21,"value":113},{"type":21,"value":1179}," — free and offline — and pick it when prompted. Switch to a hosted provider any time with ",{"type":16,"tag":40,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":21,"value":832},{"type":21,"value":407},{"type":16,"tag":32,"props":1187,"children":1188},{"type":1162},[1189],{"type":16,"tag":17,"props":1190,"children":1191},{},[1192,1201,1203,1209,1211,1217,1219,1224],{"type":16,"tag":24,"props":1193,"children":1194},{},[1195],{"type":16,"tag":40,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":21,"value":1200},"excalibur: command not found",{"type":21,"value":1202}," after install — your global npm bin isn't on ",{"type":16,"tag":40,"props":1204,"children":1206},{"className":1205},[],[1207],{"type":21,"value":1208},"PATH",{"type":21,"value":1210},". Run ",{"type":16,"tag":40,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":21,"value":1216},"npm bin -g",{"type":21,"value":1218}," and add it, or use a Node version manager. And in a non-git folder, run ",{"type":16,"tag":40,"props":1220,"children":1222},{"className":1221},[],[1223],{"type":21,"value":397},{"type":21,"value":1225}," first — Excalibur needs a repo to branch into.",{"type":16,"tag":62,"props":1227,"children":1229},{"id":1228},"next-steps",[1230],{"type":21,"value":1231},"Next steps",{"type":16,"tag":69,"props":1233,"children":1234},{},[1235,1249,1263,1276,1289],{"type":16,"tag":73,"props":1236,"children":1237},{},[1238,1247],{"type":16,"tag":24,"props":1239,"children":1240},{},[1241],{"type":16,"tag":108,"props":1242,"children":1244},{"href":1243},"\u002Fdocs\u002Fthe-m-shell",[1245],{"type":21,"value":1246},"The m-shell",{"type":21,"value":1248}," — the conversational surface in depth.",{"type":16,"tag":73,"props":1250,"children":1251},{},[1252,1261],{"type":16,"tag":24,"props":1253,"children":1254},{},[1255],{"type":16,"tag":108,"props":1256,"children":1258},{"href":1257},"\u002Fdocs\u002Fmissions",[1259],{"type":21,"value":1260},"Missions",{"type":21,"value":1262}," — give a goal, get the whole cycle planned and driven for you.",{"type":16,"tag":73,"props":1264,"children":1265},{},[1266,1274],{"type":16,"tag":24,"props":1267,"children":1268},{},[1269],{"type":16,"tag":108,"props":1270,"children":1271},{"href":652},[1272],{"type":21,"value":1273},"Command reference",{"type":21,"value":1275}," — every slash command and CLI command.",{"type":16,"tag":73,"props":1277,"children":1278},{},[1279,1287],{"type":16,"tag":24,"props":1280,"children":1281},{},[1282],{"type":16,"tag":108,"props":1283,"children":1284},{"href":957},[1285],{"type":21,"value":1286},"Dashboard",{"type":21,"value":1288}," — the local web board: kanban, runs, cost, live orchestration.",{"type":16,"tag":73,"props":1290,"children":1291},{},[1292,1301],{"type":16,"tag":24,"props":1293,"children":1294},{},[1295],{"type":16,"tag":108,"props":1296,"children":1298},{"href":1297},"\u002Fdocs\u002Fworkflows",[1299],{"type":21,"value":1300},"Workflows",{"type":21,"value":1302}," — the 14 built-in recipes.",{"type":16,"tag":1304,"props":1305,"children":1306},"style",{},[1307],{"type":21,"value":1308},"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);}",{"title":7,"searchDepth":209,"depth":209,"links":1310},[1311,1312,1313,1314,1317,1318,1319,1320,1321,1322],{"id":64,"depth":209,"text":67},{"id":141,"depth":209,"text":144},{"id":265,"depth":209,"text":268},{"id":470,"depth":209,"text":473,"children":1315},[1316],{"id":487,"depth":535,"text":490},{"id":659,"depth":209,"text":662},{"id":843,"depth":209,"text":846},{"id":988,"depth":209,"text":991},{"id":1043,"depth":209,"text":1046},{"id":1156,"depth":209,"text":1159},{"id":1228,"depth":209,"text":1231},"markdown","content:docs:getting-started.md","content","docs\u002Fgetting-started.md","docs\u002Fgetting-started","md",[1330,1331],null,{"_path":652,"title":1273,"order":1332},10,[1334,1335,1337,1338,1340,1341,1342,1343,1347,1349,1353,1354,1359],{"_path":4,"title":8,"order":10,"group":11},{"_path":652,"title":1273,"order":1332,"group":1336},"Reference",{"_path":1243,"title":1246,"order":209,"group":11},{"_path":1297,"title":1300,"order":535,"group":1339},"Build",{"_path":1257,"title":1260,"order":553,"group":1339},{"_path":957,"title":1286,"order":576,"group":1339},{"_path":644,"title":647,"order":599,"group":1339},{"_path":1344,"title":1345,"order":1346,"group":1339},"\u002Fdocs\u002Fdiscovery","Discovery",7,{"_path":1036,"title":1039,"order":1346,"group":1348},"Govern",{"_path":1350,"title":1351,"order":1352,"group":1348},"\u002Fdocs\u002Fenterprise","Enterprise",8,{"_path":110,"title":839,"order":1352,"group":1339},{"_path":1355,"title":1356,"order":1357,"group":1358},"\u002Fdocs\u002Fextensions","Extensions",9,"Extend",{"_path":1360,"title":1361,"order":1357,"group":1339},"\u002Fdocs\u002Fweb-research","Web & research",1782492858015]