[{"data":1,"prerenderedAt":1232},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fextensions":3,"surround-\u002Fdocs\u002Fextensions":1192,"docs-nav":1197},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"order":10,"group":11,"body":12,"_type":1186,"_id":1187,"_source":1188,"_file":1189,"_stem":1190,"_extension":1191},"\u002Fdocs\u002Fextensions","docs",false,"","Extensions","Shape Excalibur with declarative YAML or the TypeScript SDK — plus MCP servers and LSP diagnostics. Even the built-ins are extensions.",9,"Extend",{"type":13,"children":14,"toc":1177},"root",[15,31,38,56,272,289,442,460,466,478,654,660,723,729,786,902,908,949,955,968,1102,1116,1136,1142,1171],{"type":16,"tag":17,"props":18,"children":19},"element","p",{},[20,23,29],{"type":21,"value":22},"text","Excalibur is an extensible runtime from day one. ",{"type":16,"tag":24,"props":25,"children":26},"strong",{},[27],{"type":21,"value":28},"Everything — including the built-in catalogs — is an extension",{"type":21,"value":30},", loaded through the same registry, so the product works identically whether or not you add your own.",{"type":16,"tag":32,"props":33,"children":35},"h2",{"id":34},"two-ways-to-extend",[36],{"type":21,"value":37},"Two ways to extend",{"type":16,"tag":17,"props":39,"children":40},{},[41,46,48,54],{"type":16,"tag":24,"props":42,"children":43},{},[44],{"type":21,"value":45},"Declarative (YAML \u002F Markdown)",{"type":21,"value":47}," — for ",{"type":16,"tag":49,"props":50,"children":51},"em",{},[52],{"type":21,"value":53},"how your team works",{"type":21,"value":55},", no code. Ten contribution types:",{"type":16,"tag":57,"props":58,"children":59},"table",{},[60,79],{"type":16,"tag":61,"props":62,"children":63},"thead",{},[64],{"type":16,"tag":65,"props":66,"children":67},"tr",{},[68,74],{"type":16,"tag":69,"props":70,"children":71},"th",{},[72],{"type":21,"value":73},"Type",{"type":16,"tag":69,"props":75,"children":76},{},[77],{"type":21,"value":78},"What it adds",{"type":16,"tag":80,"props":81,"children":82},"tbody",{},[83,111,128,145,170,187,204,221,238,255],{"type":16,"tag":65,"props":84,"children":85},{},[86,97],{"type":16,"tag":87,"props":88,"children":89},"td",{},[90],{"type":16,"tag":91,"props":92,"children":94},"code",{"className":93},[],[95],{"type":21,"value":96},"workflow",{"type":16,"tag":87,"props":98,"children":99},{},[100,102,109],{"type":21,"value":101},"A phase-based recipe (see ",{"type":16,"tag":103,"props":104,"children":106},"a",{"href":105},"\u002Fdocs\u002Fworkflows",[107],{"type":21,"value":108},"Workflows",{"type":21,"value":110},").",{"type":16,"tag":65,"props":112,"children":113},{},[114,123],{"type":16,"tag":87,"props":115,"children":116},{},[117],{"type":16,"tag":91,"props":118,"children":120},{"className":119},[],[121],{"type":21,"value":122},"methodology",{"type":16,"tag":87,"props":124,"children":125},{},[126],{"type":21,"value":127},"Roles, prompts and quality bars a workflow runs with.",{"type":16,"tag":65,"props":129,"children":130},{},[131,140],{"type":16,"tag":87,"props":132,"children":133},{},[134],{"type":16,"tag":91,"props":135,"children":137},{"className":136},[],[138],{"type":21,"value":139},"question_pack",{"type":16,"tag":87,"props":141,"children":142},{},[143],{"type":21,"value":144},"Question sets for Discovery and planning.",{"type":16,"tag":65,"props":146,"children":147},{},[148,157],{"type":16,"tag":87,"props":149,"children":150},{},[151],{"type":16,"tag":91,"props":152,"children":154},{"className":153},[],[155],{"type":21,"value":156},"prompt_template",{"type":16,"tag":87,"props":158,"children":159},{},[160,162,168],{"type":21,"value":161},"Reusable prompts → invocable as ",{"type":16,"tag":91,"props":163,"children":165},{"className":164},[],[166],{"type":21,"value":167},"\u002Fcommands",{"type":21,"value":169},".",{"type":16,"tag":65,"props":171,"children":172},{},[173,182],{"type":16,"tag":87,"props":174,"children":175},{},[176],{"type":16,"tag":91,"props":177,"children":179},{"className":178},[],[180],{"type":21,"value":181},"artifact_template",{"type":16,"tag":87,"props":183,"children":184},{},[185],{"type":21,"value":186},"Output shapes (plans, reports, summaries).",{"type":16,"tag":65,"props":188,"children":189},{},[190,199],{"type":16,"tag":87,"props":191,"children":192},{},[193],{"type":16,"tag":91,"props":194,"children":196},{"className":195},[],[197],{"type":21,"value":198},"report_template",{"type":16,"tag":87,"props":200,"children":201},{},[202],{"type":21,"value":203},"Daily\u002Fweekly report formats.",{"type":16,"tag":65,"props":205,"children":206},{},[207,216],{"type":16,"tag":87,"props":208,"children":209},{},[210],{"type":16,"tag":91,"props":211,"children":213},{"className":212},[],[214],{"type":21,"value":215},"role_definition",{"type":16,"tag":87,"props":217,"children":218},{},[219],{"type":21,"value":220},"Named agent roles (reviewer, architect, …).",{"type":16,"tag":65,"props":222,"children":223},{},[224,233],{"type":16,"tag":87,"props":225,"children":226},{},[227],{"type":16,"tag":91,"props":228,"children":230},{"className":229},[],[231],{"type":21,"value":232},"policy_preset",{"type":16,"tag":87,"props":234,"children":235},{},[236],{"type":21,"value":237},"Bundled safety\u002Fapproval defaults.",{"type":16,"tag":65,"props":239,"children":240},{},[241,250],{"type":16,"tag":87,"props":242,"children":243},{},[244],{"type":16,"tag":91,"props":245,"children":247},{"className":246},[],[248],{"type":21,"value":249},"model_routing",{"type":16,"tag":87,"props":251,"children":252},{},[253],{"type":21,"value":254},"Which model handles which task\u002Fpath.",{"type":16,"tag":65,"props":256,"children":257},{},[258,267],{"type":16,"tag":87,"props":259,"children":260},{},[261],{"type":16,"tag":91,"props":262,"children":264},{"className":263},[],[265],{"type":21,"value":266},"command_mapping",{"type":16,"tag":87,"props":268,"children":269},{},[270],{"type":21,"value":271},"Map a command to a workflow + autonomy.",{"type":16,"tag":17,"props":273,"children":274},{},[275,280,282,287],{"type":16,"tag":24,"props":276,"children":277},{},[278],{"type":21,"value":279},"Programmatic (TypeScript SDK)",{"type":21,"value":281}," — to ",{"type":16,"tag":49,"props":283,"children":284},{},[285],{"type":21,"value":286},"connect your systems",{"type":21,"value":288},":",{"type":16,"tag":290,"props":291,"children":295},"pre",{"className":292,"code":293,"language":294,"meta":7,"style":7},"language-ts shiki shiki-themes github-light","import { defineExtension } from '@excalibur-oss\u002Fextension-sdk'\n\nexport default defineExtension({\n  workItems:  [linearProvider],     \u002F\u002F a custom work-item source\n  channels:   [slackChannel],       \u002F\u002F where summaries post\n  mcpServers: [githubMcp],          \u002F\u002F external tools → the agent\n  tools:      [deployTool],         \u002F\u002F your own native tools\n  policies:   [budgetGuard],        \u002F\u002F policy evaluators\n})\n","ts",[296],{"type":16,"tag":91,"props":297,"children":298},{"__ignoreMap":7},[299,328,338,363,378,392,406,420,434],{"type":16,"tag":300,"props":301,"children":304},"span",{"class":302,"line":303},"line",1,[305,311,317,322],{"type":16,"tag":300,"props":306,"children":308},{"style":307},"--shiki-default:#D73A49",[309],{"type":21,"value":310},"import",{"type":16,"tag":300,"props":312,"children":314},{"style":313},"--shiki-default:#24292E",[315],{"type":21,"value":316}," { defineExtension } ",{"type":16,"tag":300,"props":318,"children":319},{"style":307},[320],{"type":21,"value":321},"from",{"type":16,"tag":300,"props":323,"children":325},{"style":324},"--shiki-default:#032F62",[326],{"type":21,"value":327}," '@excalibur-oss\u002Fextension-sdk'\n",{"type":16,"tag":300,"props":329,"children":331},{"class":302,"line":330},2,[332],{"type":16,"tag":300,"props":333,"children":335},{"emptyLinePlaceholder":334},true,[336],{"type":21,"value":337},"\n",{"type":16,"tag":300,"props":339,"children":341},{"class":302,"line":340},3,[342,347,352,358],{"type":16,"tag":300,"props":343,"children":344},{"style":307},[345],{"type":21,"value":346},"export",{"type":16,"tag":300,"props":348,"children":349},{"style":307},[350],{"type":21,"value":351}," default",{"type":16,"tag":300,"props":353,"children":355},{"style":354},"--shiki-default:#6F42C1",[356],{"type":21,"value":357}," defineExtension",{"type":16,"tag":300,"props":359,"children":360},{"style":313},[361],{"type":21,"value":362},"({\n",{"type":16,"tag":300,"props":364,"children":366},{"class":302,"line":365},4,[367,372],{"type":16,"tag":300,"props":368,"children":369},{"style":313},[370],{"type":21,"value":371},"  workItems:  [linearProvider],     ",{"type":16,"tag":300,"props":373,"children":375},{"style":374},"--shiki-default:#6A737D",[376],{"type":21,"value":377},"\u002F\u002F a custom work-item source\n",{"type":16,"tag":300,"props":379,"children":381},{"class":302,"line":380},5,[382,387],{"type":16,"tag":300,"props":383,"children":384},{"style":313},[385],{"type":21,"value":386},"  channels:   [slackChannel],       ",{"type":16,"tag":300,"props":388,"children":389},{"style":374},[390],{"type":21,"value":391},"\u002F\u002F where summaries post\n",{"type":16,"tag":300,"props":393,"children":395},{"class":302,"line":394},6,[396,401],{"type":16,"tag":300,"props":397,"children":398},{"style":313},[399],{"type":21,"value":400},"  mcpServers: [githubMcp],          ",{"type":16,"tag":300,"props":402,"children":403},{"style":374},[404],{"type":21,"value":405},"\u002F\u002F external tools → the agent\n",{"type":16,"tag":300,"props":407,"children":409},{"class":302,"line":408},7,[410,415],{"type":16,"tag":300,"props":411,"children":412},{"style":313},[413],{"type":21,"value":414},"  tools:      [deployTool],         ",{"type":16,"tag":300,"props":416,"children":417},{"style":374},[418],{"type":21,"value":419},"\u002F\u002F your own native tools\n",{"type":16,"tag":300,"props":421,"children":423},{"class":302,"line":422},8,[424,429],{"type":16,"tag":300,"props":425,"children":426},{"style":313},[427],{"type":21,"value":428},"  policies:   [budgetGuard],        ",{"type":16,"tag":300,"props":430,"children":431},{"style":374},[432],{"type":21,"value":433},"\u002F\u002F policy evaluators\n",{"type":16,"tag":300,"props":435,"children":436},{"class":302,"line":10},[437],{"type":16,"tag":300,"props":438,"children":439},{"style":313},[440],{"type":21,"value":441},"})\n",{"type":16,"tag":17,"props":443,"children":444},{},[445,447,452,454,459],{"type":21,"value":446},"Interfaces include ",{"type":16,"tag":24,"props":448,"children":449},{},[450],{"type":21,"value":451},"work-item providers, communication channels, model providers, agent adapters, tools, policy evaluators, context sources, hooks",{"type":21,"value":453}," and ",{"type":16,"tag":24,"props":455,"children":456},{},[457],{"type":21,"value":458},"MCP servers",{"type":21,"value":169},{"type":16,"tag":32,"props":461,"children":463},{"id":462},"the-manifest",[464],{"type":21,"value":465},"The manifest",{"type":16,"tag":17,"props":467,"children":468},{},[469,471,477],{"type":21,"value":470},"Each extension declares an ",{"type":16,"tag":91,"props":472,"children":474},{"className":473},[],[475],{"type":21,"value":476},"excalibur.extension.yaml",{"type":21,"value":288},{"type":16,"tag":290,"props":479,"children":483},{"className":480,"code":481,"language":482,"meta":7,"style":7},"language-yaml shiki shiki-themes github-light","id: acme-secure-feature\nkind: declarative\ncontributes:\n  workflows: [\".\u002Fworkflows\u002Fsecure-feature.yaml\"]\n  policyPresets: [\".\u002Fpolicies\u002Facme-standard.yaml\"]\npermissions:\n  filesystem: read\n  network: { allowedHosts: [] }     # none by default\nconfigSchema: .\u002Fconfig.schema.json\n","yaml",[484],{"type":16,"tag":91,"props":485,"children":486},{"__ignoreMap":7},[487,506,523,536,559,580,592,609,637],{"type":16,"tag":300,"props":488,"children":489},{"class":302,"line":303},[490,496,501],{"type":16,"tag":300,"props":491,"children":493},{"style":492},"--shiki-default:#22863A",[494],{"type":21,"value":495},"id",{"type":16,"tag":300,"props":497,"children":498},{"style":313},[499],{"type":21,"value":500},": ",{"type":16,"tag":300,"props":502,"children":503},{"style":324},[504],{"type":21,"value":505},"acme-secure-feature\n",{"type":16,"tag":300,"props":507,"children":508},{"class":302,"line":330},[509,514,518],{"type":16,"tag":300,"props":510,"children":511},{"style":492},[512],{"type":21,"value":513},"kind",{"type":16,"tag":300,"props":515,"children":516},{"style":313},[517],{"type":21,"value":500},{"type":16,"tag":300,"props":519,"children":520},{"style":324},[521],{"type":21,"value":522},"declarative\n",{"type":16,"tag":300,"props":524,"children":525},{"class":302,"line":340},[526,531],{"type":16,"tag":300,"props":527,"children":528},{"style":492},[529],{"type":21,"value":530},"contributes",{"type":16,"tag":300,"props":532,"children":533},{"style":313},[534],{"type":21,"value":535},":\n",{"type":16,"tag":300,"props":537,"children":538},{"class":302,"line":365},[539,544,549,554],{"type":16,"tag":300,"props":540,"children":541},{"style":492},[542],{"type":21,"value":543},"  workflows",{"type":16,"tag":300,"props":545,"children":546},{"style":313},[547],{"type":21,"value":548},": [",{"type":16,"tag":300,"props":550,"children":551},{"style":324},[552],{"type":21,"value":553},"\".\u002Fworkflows\u002Fsecure-feature.yaml\"",{"type":16,"tag":300,"props":555,"children":556},{"style":313},[557],{"type":21,"value":558},"]\n",{"type":16,"tag":300,"props":560,"children":561},{"class":302,"line":380},[562,567,571,576],{"type":16,"tag":300,"props":563,"children":564},{"style":492},[565],{"type":21,"value":566},"  policyPresets",{"type":16,"tag":300,"props":568,"children":569},{"style":313},[570],{"type":21,"value":548},{"type":16,"tag":300,"props":572,"children":573},{"style":324},[574],{"type":21,"value":575},"\".\u002Fpolicies\u002Facme-standard.yaml\"",{"type":16,"tag":300,"props":577,"children":578},{"style":313},[579],{"type":21,"value":558},{"type":16,"tag":300,"props":581,"children":582},{"class":302,"line":394},[583,588],{"type":16,"tag":300,"props":584,"children":585},{"style":492},[586],{"type":21,"value":587},"permissions",{"type":16,"tag":300,"props":589,"children":590},{"style":313},[591],{"type":21,"value":535},{"type":16,"tag":300,"props":593,"children":594},{"class":302,"line":408},[595,600,604],{"type":16,"tag":300,"props":596,"children":597},{"style":492},[598],{"type":21,"value":599},"  filesystem",{"type":16,"tag":300,"props":601,"children":602},{"style":313},[603],{"type":21,"value":500},{"type":16,"tag":300,"props":605,"children":606},{"style":324},[607],{"type":21,"value":608},"read\n",{"type":16,"tag":300,"props":610,"children":611},{"class":302,"line":422},[612,617,622,627,632],{"type":16,"tag":300,"props":613,"children":614},{"style":492},[615],{"type":21,"value":616},"  network",{"type":16,"tag":300,"props":618,"children":619},{"style":313},[620],{"type":21,"value":621},": { ",{"type":16,"tag":300,"props":623,"children":624},{"style":492},[625],{"type":21,"value":626},"allowedHosts",{"type":16,"tag":300,"props":628,"children":629},{"style":313},[630],{"type":21,"value":631},": [] }     ",{"type":16,"tag":300,"props":633,"children":634},{"style":374},[635],{"type":21,"value":636},"# none by default\n",{"type":16,"tag":300,"props":638,"children":639},{"class":302,"line":10},[640,645,649],{"type":16,"tag":300,"props":641,"children":642},{"style":492},[643],{"type":21,"value":644},"configSchema",{"type":16,"tag":300,"props":646,"children":647},{"style":313},[648],{"type":21,"value":500},{"type":16,"tag":300,"props":650,"children":651},{"style":324},[652],{"type":21,"value":653},".\u002Fconfig.schema.json\n",{"type":16,"tag":32,"props":655,"children":657},{"id":656},"mcp-lsp",[658],{"type":21,"value":659},"MCP & LSP",{"type":16,"tag":661,"props":662,"children":663},"ul",{},[664,684],{"type":16,"tag":665,"props":666,"children":667},"li",{},[668,672,674,682],{"type":16,"tag":24,"props":669,"children":670},{},[671],{"type":21,"value":458},{"type":21,"value":673}," — the tools of any ",{"type":16,"tag":103,"props":675,"children":679},{"href":676,"rel":677},"https:\u002F\u002Fmodelcontextprotocol.io",[678],"nofollow",[680],{"type":21,"value":681},"Model Context Protocol",{"type":21,"value":683}," server flow straight to the agent, with the manifest's permissions applied. Add one from the signed registry, with OAuth where the server needs it.",{"type":16,"tag":665,"props":685,"children":686},{},[687,692,694,699,701,706,708,714,716,721],{"type":16,"tag":24,"props":688,"children":689},{},[690],{"type":21,"value":691},"LSP diagnostics",{"type":21,"value":693}," — Excalibur ",{"type":16,"tag":24,"props":695,"children":696},{},[697],{"type":21,"value":698},"auto-installs",{"type":21,"value":700}," and starts real language servers (typescript-language-server, gopls, pyright, …) and feeds ",{"type":16,"tag":24,"props":702,"children":703},{},[704],{"type":21,"value":705},"actual compiler errors",{"type":21,"value":707}," to the agent and to ",{"type":16,"tag":91,"props":709,"children":711},{"className":710},[],[712],{"type":21,"value":713},"review",{"type":21,"value":715},", so fixes anchor in real diagnostics, not hallucinated lines. Per-edit ",{"type":16,"tag":24,"props":717,"children":718},{},[719],{"type":21,"value":720},"formatters",{"type":21,"value":722}," (prettier · biome · gofmt · rustfmt) run automatically too.",{"type":16,"tag":32,"props":724,"children":726},{"id":725},"custom-agents",[727],{"type":21,"value":728},"Custom agents",{"type":16,"tag":17,"props":730,"children":731},{},[732,734,739,741,747,749,755,757,763,764,770,771,777,779,784],{"type":21,"value":733},"Define self-contained ",{"type":16,"tag":24,"props":735,"children":736},{},[737],{"type":21,"value":738},"agent personas",{"type":21,"value":740}," as Markdown files in ",{"type":16,"tag":91,"props":742,"children":744},{"className":743},[],[745],{"type":21,"value":746},".excalibur\u002Fagents\u002F\u003Cname>.md",{"type":21,"value":748},". The front-matter sets the persona's ",{"type":16,"tag":91,"props":750,"children":752},{"className":751},[],[753],{"type":21,"value":754},"role",{"type":21,"value":756},", ",{"type":16,"tag":91,"props":758,"children":760},{"className":759},[],[761],{"type":21,"value":762},"model",{"type":21,"value":756},{"type":16,"tag":91,"props":765,"children":767},{"className":766},[],[768],{"type":21,"value":769},"provider",{"type":21,"value":756},{"type":16,"tag":91,"props":772,"children":774},{"className":773},[],[775],{"type":21,"value":776},"temperature",{"type":21,"value":778},", an allowed-tools list and permissions; the body is its system prompt. The tools allowlist ",{"type":16,"tag":24,"props":780,"children":781},{},[782],{"type":21,"value":783},"narrows",{"type":21,"value":785}," the role's floor (deny wins), so a persona can never exceed your safety policy.",{"type":16,"tag":290,"props":787,"children":791},{"className":788,"code":789,"language":790,"meta":7,"style":7},"language-bash shiki shiki-themes github-light","excalibur agents list \u002F show \u003Cname> \u002F init \u003Cname>\nexcalibur run --agent reviewer \"audit the auth module\"   # or switch in-shell with \u002Fagent\n","bash",[792],{"type":16,"tag":91,"props":793,"children":794},{"__ignoreMap":7},[795,869],{"type":16,"tag":300,"props":796,"children":797},{"class":302,"line":303},[798,803,808,813,818,823,828,833,838,843,847,852,856,860,864],{"type":16,"tag":300,"props":799,"children":800},{"style":354},[801],{"type":21,"value":802},"excalibur",{"type":16,"tag":300,"props":804,"children":805},{"style":324},[806],{"type":21,"value":807}," agents",{"type":16,"tag":300,"props":809,"children":810},{"style":324},[811],{"type":21,"value":812}," list",{"type":16,"tag":300,"props":814,"children":815},{"style":324},[816],{"type":21,"value":817}," \u002F",{"type":16,"tag":300,"props":819,"children":820},{"style":324},[821],{"type":21,"value":822}," show",{"type":16,"tag":300,"props":824,"children":825},{"style":307},[826],{"type":21,"value":827}," \u003C",{"type":16,"tag":300,"props":829,"children":830},{"style":324},[831],{"type":21,"value":832},"nam",{"type":16,"tag":300,"props":834,"children":835},{"style":313},[836],{"type":21,"value":837},"e",{"type":16,"tag":300,"props":839,"children":840},{"style":307},[841],{"type":21,"value":842},">",{"type":16,"tag":300,"props":844,"children":845},{"style":324},[846],{"type":21,"value":817},{"type":16,"tag":300,"props":848,"children":849},{"style":324},[850],{"type":21,"value":851}," init",{"type":16,"tag":300,"props":853,"children":854},{"style":307},[855],{"type":21,"value":827},{"type":16,"tag":300,"props":857,"children":858},{"style":324},[859],{"type":21,"value":832},{"type":16,"tag":300,"props":861,"children":862},{"style":313},[863],{"type":21,"value":837},{"type":16,"tag":300,"props":865,"children":866},{"style":307},[867],{"type":21,"value":868},">\n",{"type":16,"tag":300,"props":870,"children":871},{"class":302,"line":330},[872,876,881,887,892,897],{"type":16,"tag":300,"props":873,"children":874},{"style":354},[875],{"type":21,"value":802},{"type":16,"tag":300,"props":877,"children":878},{"style":324},[879],{"type":21,"value":880}," run",{"type":16,"tag":300,"props":882,"children":884},{"style":883},"--shiki-default:#005CC5",[885],{"type":21,"value":886}," --agent",{"type":16,"tag":300,"props":888,"children":889},{"style":324},[890],{"type":21,"value":891}," reviewer",{"type":16,"tag":300,"props":893,"children":894},{"style":324},[895],{"type":21,"value":896}," \"audit the auth module\"",{"type":16,"tag":300,"props":898,"children":899},{"style":374},[900],{"type":21,"value":901},"   # or switch in-shell with \u002Fagent\n",{"type":16,"tag":32,"props":903,"children":905},{"id":904},"ide-extension",[906],{"type":21,"value":907},"IDE extension",{"type":16,"tag":17,"props":909,"children":910},{},[911,913,918,920,925,927,933,935,941,943,948],{"type":21,"value":912},"A ",{"type":16,"tag":24,"props":914,"children":915},{},[916],{"type":21,"value":917},"VS Code \u002F Cursor \u002F Windsurf",{"type":21,"value":919}," extension bridges your editor to Excalibur over the ",{"type":16,"tag":24,"props":921,"children":922},{},[923],{"type":21,"value":924},"Agent Client Protocol (ACP)",{"type":21,"value":926},": it spawns ",{"type":16,"tag":91,"props":928,"children":930},{"className":929},[],[931],{"type":21,"value":932},"excalibur acp",{"type":21,"value":934}," and streams the run — assistant messages, tool calls, the live plan, per-file diffs and commands — into a panel, with inline approvals. Install the ",{"type":16,"tag":91,"props":936,"children":938},{"className":937},[],[939],{"type":21,"value":940},".vsix",{"type":21,"value":942}," (or the Marketplace once published); editors that host ACP agents natively (Zed, JetBrains, Neovim) can point straight at ",{"type":16,"tag":91,"props":944,"children":946},{"className":945},[],[947],{"type":21,"value":932},{"type":21,"value":169},{"type":16,"tag":32,"props":950,"children":952},{"id":951},"managing-extensions",[953],{"type":21,"value":954},"Managing extensions",{"type":16,"tag":17,"props":956,"children":957},{},[958,960,966],{"type":21,"value":959},"In the shell (",{"type":16,"tag":91,"props":961,"children":963},{"className":962},[],[964],{"type":21,"value":965},"\u002Fextensions …",{"type":21,"value":967},") or as CLI commands:",{"type":16,"tag":290,"props":969,"children":971},{"className":788,"code":970,"language":790,"meta":7,"style":7},"excalibur extensions list\nexcalibur extensions validate\nexcalibur extensions create workflow my-team-process\nexcalibur extensions enable \u003Cid>\nexcalibur extensions install \u003Cpath>\n",[972],{"type":16,"tag":91,"props":973,"children":974},{"__ignoreMap":7},[975,992,1008,1034,1068],{"type":16,"tag":300,"props":976,"children":977},{"class":302,"line":303},[978,982,987],{"type":16,"tag":300,"props":979,"children":980},{"style":354},[981],{"type":21,"value":802},{"type":16,"tag":300,"props":983,"children":984},{"style":324},[985],{"type":21,"value":986}," extensions",{"type":16,"tag":300,"props":988,"children":989},{"style":324},[990],{"type":21,"value":991}," list\n",{"type":16,"tag":300,"props":993,"children":994},{"class":302,"line":330},[995,999,1003],{"type":16,"tag":300,"props":996,"children":997},{"style":354},[998],{"type":21,"value":802},{"type":16,"tag":300,"props":1000,"children":1001},{"style":324},[1002],{"type":21,"value":986},{"type":16,"tag":300,"props":1004,"children":1005},{"style":324},[1006],{"type":21,"value":1007}," validate\n",{"type":16,"tag":300,"props":1009,"children":1010},{"class":302,"line":340},[1011,1015,1019,1024,1029],{"type":16,"tag":300,"props":1012,"children":1013},{"style":354},[1014],{"type":21,"value":802},{"type":16,"tag":300,"props":1016,"children":1017},{"style":324},[1018],{"type":21,"value":986},{"type":16,"tag":300,"props":1020,"children":1021},{"style":324},[1022],{"type":21,"value":1023}," create",{"type":16,"tag":300,"props":1025,"children":1026},{"style":324},[1027],{"type":21,"value":1028}," workflow",{"type":16,"tag":300,"props":1030,"children":1031},{"style":324},[1032],{"type":21,"value":1033}," my-team-process\n",{"type":16,"tag":300,"props":1035,"children":1036},{"class":302,"line":365},[1037,1041,1045,1050,1054,1059,1064],{"type":16,"tag":300,"props":1038,"children":1039},{"style":354},[1040],{"type":21,"value":802},{"type":16,"tag":300,"props":1042,"children":1043},{"style":324},[1044],{"type":21,"value":986},{"type":16,"tag":300,"props":1046,"children":1047},{"style":324},[1048],{"type":21,"value":1049}," enable",{"type":16,"tag":300,"props":1051,"children":1052},{"style":307},[1053],{"type":21,"value":827},{"type":16,"tag":300,"props":1055,"children":1056},{"style":324},[1057],{"type":21,"value":1058},"i",{"type":16,"tag":300,"props":1060,"children":1061},{"style":313},[1062],{"type":21,"value":1063},"d",{"type":16,"tag":300,"props":1065,"children":1066},{"style":307},[1067],{"type":21,"value":868},{"type":16,"tag":300,"props":1069,"children":1070},{"class":302,"line":380},[1071,1075,1079,1084,1088,1093,1098],{"type":16,"tag":300,"props":1072,"children":1073},{"style":354},[1074],{"type":21,"value":802},{"type":16,"tag":300,"props":1076,"children":1077},{"style":324},[1078],{"type":21,"value":986},{"type":16,"tag":300,"props":1080,"children":1081},{"style":324},[1082],{"type":21,"value":1083}," install",{"type":16,"tag":300,"props":1085,"children":1086},{"style":307},[1087],{"type":21,"value":827},{"type":16,"tag":300,"props":1089,"children":1090},{"style":324},[1091],{"type":21,"value":1092},"pat",{"type":16,"tag":300,"props":1094,"children":1095},{"style":313},[1096],{"type":21,"value":1097},"h",{"type":16,"tag":300,"props":1099,"children":1100},{"style":307},[1101],{"type":21,"value":868},{"type":16,"tag":1103,"props":1104,"children":1105},"note",{},[1106],{"type":16,"tag":17,"props":1107,"children":1108},{},[1109,1114],{"type":16,"tag":24,"props":1110,"children":1111},{},[1112],{"type":21,"value":1113},"Built-ins are packs too.",{"type":21,"value":1115}," The default 14 workflows, 14 methodologies, question packs, prompts, presets and roles ship as built-in extension packs consumed through the registry — which is why the system behaves identically with zero user extensions, and why your additions compose cleanly on top.",{"type":16,"tag":1103,"props":1117,"children":1119},{"type":1118},"warn",[1120],{"type":16,"tag":17,"props":1121,"children":1122},{},[1123,1128,1130,1135],{"type":16,"tag":24,"props":1124,"children":1125},{},[1126],{"type":21,"value":1127},"Enterprise",{"type":21,"value":1129}," governs extensions centrally: version-locking, permission enforcement, encrypted secrets, and policies for which extensions a team or repo may enable. See ",{"type":16,"tag":103,"props":1131,"children":1133},{"href":1132},"\u002Fdocs\u002Fenterprise",[1134],{"type":21,"value":1127},{"type":21,"value":169},{"type":16,"tag":32,"props":1137,"children":1139},{"id":1138},"next",[1140],{"type":21,"value":1141},"Next",{"type":16,"tag":661,"props":1143,"children":1144},{},[1145,1157],{"type":16,"tag":665,"props":1146,"children":1147},{},[1148,1155],{"type":16,"tag":24,"props":1149,"children":1150},{},[1151],{"type":16,"tag":103,"props":1152,"children":1153},{"href":105},[1154],{"type":21,"value":108},{"type":21,"value":1156}," — the most common thing to customize.",{"type":16,"tag":665,"props":1158,"children":1159},{},[1160,1169],{"type":16,"tag":24,"props":1161,"children":1162},{},[1163],{"type":16,"tag":103,"props":1164,"children":1166},{"href":1165},"\u002Fdocs\u002Fproviders",[1167],{"type":21,"value":1168},"Models & providers",{"type":21,"value":1170}," — add a provider or passthrough adapter.",{"type":16,"tag":1172,"props":1173,"children":1174},"style",{},[1175],{"type":21,"value":1176},"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":330,"depth":330,"links":1178},[1179,1180,1181,1182,1183,1184,1185],{"id":34,"depth":330,"text":37},{"id":462,"depth":330,"text":465},{"id":656,"depth":330,"text":659},{"id":725,"depth":330,"text":728},{"id":904,"depth":330,"text":907},{"id":951,"depth":330,"text":954},{"id":1138,"depth":330,"text":1141},"markdown","content:docs:extensions.md","content","docs\u002Fextensions.md","docs\u002Fextensions","md",[1193,1194],{"_path":1165,"title":1168,"order":422},{"_path":1195,"title":1196,"order":10},"\u002Fdocs\u002Fweb-research","Web & research",[1198,1202,1207,1210,1212,1215,1218,1221,1224,1228,1229,1230,1231],{"_path":1199,"title":1200,"order":303,"group":1201},"\u002Fdocs\u002Fgetting-started","Getting started","Get started",{"_path":1203,"title":1204,"order":1205,"group":1206},"\u002Fdocs\u002Fcommands","Command reference",10,"Reference",{"_path":1208,"title":1209,"order":330,"group":1201},"\u002Fdocs\u002Fthe-m-shell","The m-shell",{"_path":105,"title":108,"order":340,"group":1211},"Build",{"_path":1213,"title":1214,"order":365,"group":1211},"\u002Fdocs\u002Fmissions","Missions",{"_path":1216,"title":1217,"order":380,"group":1211},"\u002Fdocs\u002Fdashboard","Dashboard",{"_path":1219,"title":1220,"order":394,"group":1211},"\u002Fdocs\u002Fautonomy-levels","Autonomy levels",{"_path":1222,"title":1223,"order":408,"group":1211},"\u002Fdocs\u002Fdiscovery","Discovery",{"_path":1225,"title":1226,"order":408,"group":1227},"\u002Fdocs\u002Fsafety","Safety","Govern",{"_path":1132,"title":1127,"order":422,"group":1227},{"_path":1165,"title":1168,"order":422,"group":1211},{"_path":4,"title":8,"order":10,"group":11},{"_path":1195,"title":1196,"order":10,"group":1211},1782492858687]