[{"data":1,"prerenderedAt":566},["ShallowReactive",2],{"navigation_docs":3,"-plugins-overview":320,"-plugins-overview-surround":561},[4,35,69,109,133,193,228,262,305],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-ph-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-ph-rocket-launch",{"title":21,"path":22,"stem":23,"icon":24},"Concepts","\u002Fgetting-started\u002Fconcepts","1.getting-started\u002F3.concepts","i-ph-book-open",{"title":26,"path":27,"stem":28,"icon":29},"Install","\u002Fgetting-started\u002Finstall","1.getting-started\u002F4.install","i-ph-download-simple",{"title":31,"path":32,"stem":33,"icon":34},"What works today","\u002Fgetting-started\u002Fstatus","1.getting-started\u002F5.status","i-ph-list-checks",{"title":21,"icon":6,"path":36,"stem":37,"children":38,"page":6},"\u002Fconcepts","2.concepts",[39,44,49,54,59,64],{"title":40,"path":41,"stem":42,"icon":43},"Architecture","\u002Fconcepts\u002Farchitecture","2.concepts\u002F1.architecture","i-ph-planet",{"title":45,"path":46,"stem":47,"icon":48},"Jobs and durability","\u002Fconcepts\u002Fjobs","2.concepts\u002F2.jobs","i-ph-infinity",{"title":50,"path":51,"stem":52,"icon":53},"Routing","\u002Fconcepts\u002Frouting","2.concepts\u002F3.routing","i-ph-path",{"title":55,"path":56,"stem":57,"icon":58},"Security model","\u002Fconcepts\u002Fsecurity","2.concepts\u002F4.security","i-ph-shield-check",{"title":60,"path":61,"stem":62,"icon":63},"Tenants","\u002Fconcepts\u002Ftenants","2.concepts\u002F5.tenants","i-ph-buildings",{"title":65,"path":66,"stem":67,"icon":68},"Temporal","\u002Fconcepts\u002Ftemporal","2.concepts\u002F6.temporal","i-ph-clock",{"title":70,"icon":6,"path":71,"stem":72,"children":73,"page":6},"Run a fleet","\u002Ffleet","3.fleet",[74,79,84,89,94,99,104],{"title":75,"path":76,"stem":77,"icon":78},"Dev mode","\u002Ffleet\u002Fdev-mode","3.fleet\u002F1.dev-mode","i-ph-laptop",{"title":80,"path":81,"stem":82,"icon":83},"Run a cluster","\u002Ffleet\u002Fcluster","3.fleet\u002F2.cluster","i-ph-hard-drives",{"title":85,"path":86,"stem":87,"icon":88},"Join nodes","\u002Ffleet\u002Fjoin-nodes","3.fleet\u002F3.join-nodes","i-ph-plugs-connected",{"title":90,"path":91,"stem":92,"icon":93},"Manage nodes","\u002Ffleet\u002Fmanage-nodes","3.fleet\u002F4.manage-nodes","i-ph-list-bullets",{"title":95,"path":96,"stem":97,"icon":98},"Secrets","\u002Ffleet\u002Fsecrets","3.fleet\u002F5.secrets","i-ph-key",{"title":100,"path":101,"stem":102,"icon":103},"High availability","\u002Ffleet\u002Fhigh-availability","3.fleet\u002F6.high-availability","i-ph-copy",{"title":105,"path":106,"stem":107,"icon":108},"Upgrades, backups and restores","\u002Ffleet\u002Fupgrades","3.fleet\u002F7.upgrades","i-ph-arrows-clockwise",{"title":110,"icon":6,"path":111,"stem":112,"children":113,"page":6},"Use plugins","\u002Fplugins","4.plugins",[114,119,124,128],{"title":115,"path":116,"stem":117,"icon":118},"What a plugin is","\u002Fplugins\u002Foverview","4.plugins\u002F1.overview","i-ph-puzzle-piece",{"title":120,"path":121,"stem":122,"icon":123},"Install and update","\u002Fplugins\u002Finstall","4.plugins\u002F2.install","i-ph-package",{"title":125,"path":126,"stem":127,"icon":123},"Existing MCP packages","\u002Fplugins\u002Fpackages","4.plugins\u002F3.packages",{"title":129,"path":130,"stem":131,"icon":132},"The catalog","\u002Fplugins\u002Fcatalog","4.plugins\u002F4.catalog","i-ph-books",{"title":134,"icon":6,"path":135,"stem":136,"children":137,"page":6},"Build plugins","\u002Fbuild-plugins","5.build-plugins",[138,143,148,153,158,163,168,173,178,183,188],{"title":139,"path":140,"stem":141,"icon":142},"Your first plugin","\u002Fbuild-plugins\u002Ffirst-plugin","5.build-plugins\u002F1.first-plugin","i-ph-hammer",{"title":144,"path":145,"stem":146,"icon":147},"Harnesses","\u002Fbuild-plugins\u002Fharnesses","5.build-plugins\u002F10.harnesses","i-ph-cpu",{"title":149,"path":150,"stem":151,"icon":152},"Example: support triage","\u002Fbuild-plugins\u002Fexample-support-triage","5.build-plugins\u002F11.example-support-triage","i-ph-lifebuoy",{"title":154,"path":155,"stem":156,"icon":157},"Tools","\u002Fbuild-plugins\u002Ftools","5.build-plugins\u002F2.tools","i-ph-wrench",{"title":159,"path":160,"stem":161,"icon":162},"Agents","\u002Fbuild-plugins\u002Fagents","5.build-plugins\u002F3.agents","i-ph-robot",{"title":164,"path":165,"stem":166,"icon":167},"Skills","\u002Fbuild-plugins\u002Fskills","5.build-plugins\u002F4.skills","i-ph-graduation-cap",{"title":169,"path":170,"stem":171,"icon":172},"Develop and test","\u002Fbuild-plugins\u002Fdevelop-and-test","5.build-plugins\u002F5.develop-and-test","i-ph-flask",{"title":174,"path":175,"stem":176,"icon":177},"Publish and version","\u002Fbuild-plugins\u002Fpublish","5.build-plugins\u002F6.publish","i-ph-tag",{"title":179,"path":180,"stem":181,"icon":182},"Hooks","\u002Fbuild-plugins\u002Fhooks","5.build-plugins\u002F7.hooks","i-ph-anchor",{"title":184,"path":185,"stem":186,"icon":187},"Flows","\u002Fbuild-plugins\u002Fflows","5.build-plugins\u002F8.flows","i-ph-flow-arrow",{"title":189,"path":190,"stem":191,"icon":192},"Evals and quality gates","\u002Fbuild-plugins\u002Fevals","5.build-plugins\u002F9.evals","i-ph-seal-check",{"title":194,"icon":6,"path":195,"stem":196,"children":197,"page":6},"Run agents","\u002Fagents","6.agents",[198,203,208,213,218,223],{"title":199,"path":200,"stem":201,"icon":202},"Run jobs","\u002Fagents\u002Frun-jobs","6.agents\u002F1.run-jobs","i-ph-play",{"title":204,"path":205,"stem":206,"icon":207},"Models and keys","\u002Fagents\u002Fmodels-and-keys","6.agents\u002F2.models-and-keys","i-ph-sparkle",{"title":209,"path":210,"stem":211,"icon":212},"Delegation","\u002Fagents\u002Fdelegation","6.agents\u002F3.delegation","i-ph-git-fork",{"title":214,"path":215,"stem":216,"icon":217},"Contracts and limits","\u002Fagents\u002Fcontracts-and-limits","6.agents\u002F4.contracts-and-limits","i-ph-ruler",{"title":219,"path":220,"stem":221,"icon":222},"Runtime API","\u002Fagents\u002Fruntime-api","6.agents\u002F5.runtime-api","i-ph-plug",{"title":224,"path":225,"stem":226,"icon":227},"Approvals","\u002Fagents\u002Fapprovals","6.agents\u002F6.approvals","i-ph-hand-palm",{"title":229,"icon":6,"path":230,"stem":231,"children":232,"page":6},"Monitor","\u002Fmonitor","7.monitor",[233,238,243,248,253,258],{"title":234,"path":235,"stem":236,"icon":237},"Web UI","\u002Fmonitor\u002Fweb-ui","7.monitor\u002F0.web-ui","i-ph-monitor",{"title":239,"path":240,"stem":241,"icon":242},"Cost and usage","\u002Fmonitor\u002Fcost-and-usage","7.monitor\u002F1.cost-and-usage","i-ph-coins",{"title":244,"path":245,"stem":246,"icon":247},"Node health","\u002Fmonitor\u002Fnodes","7.monitor\u002F2.nodes","i-ph-heartbeat",{"title":249,"path":250,"stem":251,"icon":252},"Job history","\u002Fmonitor\u002Fhistory","7.monitor\u002F3.history","i-ph-clock-counter-clockwise",{"title":254,"path":255,"stem":256,"icon":257},"Tracing and metrics","\u002Fmonitor\u002Fobservability","7.monitor\u002F4.observability","i-ph-chart-line",{"title":259,"path":260,"stem":261,"icon":152},"Troubleshooting","\u002Fmonitor\u002Ftroubleshooting","7.monitor\u002F5.troubleshooting",{"title":263,"icon":6,"path":264,"stem":265,"children":266,"page":6},"Reference","\u002Freference","8.reference",[267,281,286,290,295,300],{"title":268,"icon":269,"path":270,"stem":271,"children":272,"page":6},"CLI","i-ph-terminal-window","\u002Freference\u002Fcli","8.reference\u002F1.cli",[273,277],{"title":274,"path":275,"stem":276},"orchestrator-zero","\u002Freference\u002Fcli\u002Forchestrator-zero","8.reference\u002F1.cli\u002F1.orchestrator-zero",{"title":278,"path":279,"stem":280},"orchestrator-zero-node","\u002Freference\u002Fcli\u002Forchestrator-zero-node","8.reference\u002F1.cli\u002F2.orchestrator-zero-node",{"title":282,"path":283,"stem":284,"icon":285},"oz0-plugin.yaml","\u002Freference\u002Fplugin-manifest","8.reference\u002F2.plugin-manifest","i-ph-file-code",{"title":287,"path":288,"stem":289,"icon":162},"Agent definition","\u002Freference\u002Fagent-definition","8.reference\u002F3.agent-definition",{"title":291,"path":292,"stem":293,"icon":294},"Ports","\u002Freference\u002Fports","8.reference\u002F4.ports","i-ph-network",{"title":296,"path":297,"stem":298,"icon":299},"Environment variables","\u002Freference\u002Fenvironment","8.reference\u002F5.environment","i-ph-brackets-curly",{"title":301,"path":302,"stem":303,"icon":304},"Files and directories","\u002Freference\u002Ffiles","8.reference\u002F6.files","i-ph-tree-structure",{"title":306,"icon":6,"path":307,"stem":308,"children":309,"page":6},"About","\u002Fabout","9.about",[310,315],{"title":311,"path":312,"stem":313,"icon":314},"Licensing","\u002Fabout\u002Flicensing","9.about\u002F1.licensing","i-ph-scales",{"title":316,"path":317,"stem":318,"icon":319},"About these docs","\u002Fabout\u002Fcontributing-docs","9.about\u002F2.contributing-docs","i-ph-pencil-simple",{"id":321,"title":115,"body":322,"description":554,"extension":555,"links":556,"meta":557,"navigation":558,"path":116,"seo":559,"stem":117,"__hash__":560},"docs\u002F4.plugins\u002F1.overview.md",{"type":323,"value":324,"toc":546},"minimark",[325,333,338,451,455,513,516,520,523,527],[326,327,328,329,332],"p",{},"A plugin is a Git repository with an ",[330,331,282],"code",{}," at its root. It is how anything specific gets into Orchestrator Zero: your tools, your agents, your skills. The core stays the same, and the building blocks official plugins use are the same ones you get.",[334,335,337],"h2",{"id":336},"the-building-blocks","The building blocks",[339,340,341,357],"table",{},[342,343,344],"thead",{},[345,346,347,351,354],"tr",{},[348,349,350],"th",{},"Block",[348,352,353],{},"What you write",[348,355,356],{},"Status",[358,359,360,374,386,401,412,424,435],"tbody",{},[345,361,362,368,371],{},[363,364,365],"td",{},[366,367,154],"strong",{},[363,369,370],{},"An MCP server: your own code, an existing PyPI or npm package, or a remote server",[363,372,373],{},"Works today",[345,375,376,380,383],{},[363,377,378],{},[366,379,159],{},[363,381,382],{},"A YAML file: instructions, model, tools, contracts, limits, delegation",[363,384,385],{},"Works today (Pydantic AI)",[345,387,388,392,399],{},[363,389,390],{},[366,391,164],{},[363,393,394,395,398],{},"Folders with a ",[330,396,397],{},"SKILL.md"," in the Agent Skills format",[363,400,373],{},[345,402,403,407,410],{},[363,404,405],{},[366,406,144],{},[363,408,409],{},"A command that runs one session of an agent harness, such as the Claude Agent SDK, per job",[363,411,373],{},[345,413,414,418,421],{},[363,415,416],{},[366,417,179],{},[363,419,420],{},"Functions of your plugin that the platform asks before and after tool calls and at the start and end of a job; they answer allow, deny, modify or escalate",[363,422,423],{},"Works today (tool calls of Pydantic AI agents, and every job)",[345,425,426,430,433],{},[363,427,428],{},[366,429,184],{},[363,431,432],{},"Declarative steps in YAML that chain tools, agents, conditions and approvals",[363,434,373],{},[345,436,437,442,449],{},[363,438,439],{},[366,440,441],{},"Evals",[363,443,444,445,448],{},"Test cases for agents and flows, run with ",[330,446,447],{},"plugin test"," and recorded model answers, and on a test node before a new version reaches the fleet",[363,450,373],{},[334,452,454],{"id":453},"what-happens-when-you-install-one","What happens when you install one",[456,457,459,464,471,475,486,490,499,503,506,510],"steps",{"level":458},"4",[460,461,463],"h4",{"id":462},"the-edge-locks-it-to-a-commit","The edge locks it to a commit",[326,465,466,467,470],{},"It resolves the ref you give (or the latest ",[330,468,469],{},"vX.Y.Z"," tag) to a commit and stores that commit with the plugin.",[460,472,474],{"id":473},"the-edge-checks-and-packs-it","The edge checks and packs it",[326,476,477,478,481,482,485],{},"The same checks as ",[330,479,480],{},"plugin lint",", then a packed artifact, stored by its ",[330,483,484],{},"sha256:"," digest. Unpinned packages are pinned to the version the registry has now.",[460,487,489],{"id":488},"a-version-with-evals-passes-them-first","A version with evals passes them first",[326,491,492,493,498],{},"One node of the tenant runs the new version's evals against your models; a version that does worse is stopped, and the fleet keeps the one it has. See ",[494,495,497],"a",{"href":496},"\u002Fbuild-plugins\u002Fevals#quality-gates","Quality gates",".",[460,500,502],{"id":501},"every-node-of-the-tenant-gets-it-from-the-edge","Every node of the tenant gets it from the edge",[326,504,505],{},"Nodes never reach Git. Each node that matches the plugin's selector downloads the artifact from the edge, checks its digest and unpacks it.",[460,507,509],{"id":508},"the-node-builds-its-environment-and-starts-it","The node builds its environment and starts it",[326,511,512],{},"uv builds a Python environment from the plugin's lock file, packages get their own environments, and the MCP servers start. The node reports the functions it found.",[326,514,515],{},"A failed update keeps the previous version running and reports the failure. Plugins of different tenants never mix.",[334,517,519],{"id":518},"trust","Trust",[326,521,522],{},"Plugins run as processes with the node's permissions. There is no sandbox, so install only plugins you trust and run nodes as a user without root.",[334,524,526],{"id":525},"next","Next",[528,529,530,536,541],"ul",{},[531,532,533],"li",{},[494,534,535],{"href":121},"Install and update plugins",[531,537,538],{},[494,539,540],{"href":126},"Use existing MCP packages",[531,542,543],{},[494,544,545],{"href":140},"Build your first plugin",{"title":547,"searchDepth":548,"depth":548,"links":549},"",2,[550,551,552,553],{"id":336,"depth":548,"text":337},{"id":453,"depth":548,"text":454},{"id":518,"depth":548,"text":519},{"id":525,"depth":548,"text":526},"Everything specific to your company ships as a plugin, a Git repository with one manifest.","md",null,{},{"icon":118},{"title":115,"description":554},"-_hC0ZCntsOuEsk9LLVuHvt8330lf5mqGF6o1AKeX5c",[562,564],{"title":105,"path":106,"stem":107,"description":563,"icon":108,"children":-1},"Upgrade servers and nodes safely, back up what you cannot lose, and restore it.",{"title":120,"path":121,"stem":122,"description":565,"icon":123,"children":-1},"Install a plugin from Git, choose the nodes it runs on, update it and remove it.",1791135409854]