[{"data":1,"prerenderedAt":469},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-concepts":320,"-getting-started-concepts-surround":464},[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":21,"body":322,"description":457,"extension":458,"links":459,"meta":460,"navigation":461,"path":22,"seo":462,"stem":23,"__hash__":463},"docs\u002F1.getting-started\u002F3.concepts.md",{"type":323,"value":324,"toc":450},"minimark",[325,330,338,350,353,356,367,374,377,381,387,397,403,410,413,416,423,427,441,444,447],[326,327,329],"h2",{"id":328},"the-fleet","The fleet",[331,332,333,334,337],"p",{},"Node\n: A machine running ",[335,336,278],"code",{},": a laptop, a GPU box, a VM, a Raspberry Pi. It dials out to the edge, reports what it can do and runs the agents and tools of the plugins installed on it. A node is not an agent; it becomes one when it picks up a job.",[331,339,340,341,344,345,349],{},"Server\n: A process running ",[335,342,343],{},"orchestrator-zero server start",". It runs three roles: management, edge and an embedded Temporal. A ",[346,347,348],"strong",{},"cluster"," is one or more servers sharing a PostgreSQL database.",[331,351,352],{},"Edge\n: The role nodes and apps talk to, and the only door into the cluster. It proxies Temporal, serves the runtime API and the LLM gateway, hands out plugin artifacts and keeps a control stream open to every node.",[331,354,355],{},"Management\n: The role that holds the registry of nodes, the certificate authority, tenants, operators, secrets, plugins and usage. Operators reach it with the CLI.",[331,357,358,359,362,363,366],{},"Labels\n: Key-value pairs on a node, such as ",[335,360,361],{},"gpu=a100"," or ",[335,364,365],{},"zone=eu-north",". They decide which plugins a node gets and which agents may run on it.",[331,368,369,370,373],{},"Tenant\n: An isolated team or customer, with its own nodes, plugins, secrets and Temporal namespace. Every cluster starts with the tenant ",[335,371,372],{},"default",".",[331,375,376],{},"Operator\n: A person or a script with an operator certificate, allowed to manage the cluster through the CLI and the admin API.",[326,378,380],{"id":379},"the-work","The work",[331,382,383,384,386],{},"Plugin\n: A Git repository with an ",[335,385,282],{}," at its root. It can hold tools, agents and skills, and later hooks, flows and evals. You install it on a tenant's nodes; it is locked to a commit.",[331,388,389,390,393,394,373],{},"Tool\n: An MCP server: your own code, an existing package from PyPI or npm, or a remote server. Each of its functions is callable as ",[335,391,392],{},"\u003Ctool>.\u003Cfunction>",", for example ",[335,395,396],{},"github.get_pr",[331,398,399,400,373],{},"Agent\n: A definition in a plugin: instructions, a model, the tools it may use, limits and who it may delegate to. Each agent is reachable on the task queue ",[335,401,402],{},"agent.\u003Cname>",[331,404,405,406,409],{},"Skill\n: A folder with a ",[335,407,408],{},"SKILL.md",", in the Agent Skills format, that teaches an agent how and when to use something.",[331,411,412],{},"Job\n: One run of an agent with some input. A job is a Temporal workflow, so it survives crashes and restarts, and its ID is the workflow ID.",[331,414,415],{},"Home node\n: The node that picked a job up. The job's tools run there, so a job can use files and devices on that machine.",[331,417,418,419,422],{},"Delegation\n: An agent handing a task to another agent with ",[335,420,421],{},"oz.delegate",". The child is a job of its own, on any node that has that agent, and its cost counts toward the parent.",[326,424,426],{"id":425},"the-plumbing","The plumbing",[331,428,429,430,432,433,436,437,440],{},"Task queue\n: A Temporal queue that nodes poll. ",[335,431,402],{}," for an agent's jobs, ",[335,434,435],{},"node.\u003Cid>"," for work that must run on one node, and ",[335,438,439],{},"oz0.default"," for everything else.",[331,442,443],{},"LLM gateway\n: The part of the edge that every model call goes through. It adds the tenant's API key, passes the call to the provider unchanged and records tokens and cost.",[331,445,446],{},"Join token\n: A one-time or reusable secret that lets a node join a tenant without an operator approving it. It also carries the hash of the cluster's CA, so the node can check the server before it sends anything.",[331,448,449],{},"Master key\n: The file that seals the cluster's certificate authorities and secrets. Every server needs a copy; lose it and the cluster is lost.",{"title":451,"searchDepth":452,"depth":452,"links":453},"",2,[454,455,456],{"id":328,"depth":452,"text":329},{"id":379,"depth":452,"text":380},{"id":425,"depth":452,"text":426},"The words used throughout these docs, in one page.","md",null,{},{"icon":24},{"title":21,"description":457},"zPpOLe03Vil4eD2PFH7ByJa_uh4h0cLFJ1yfGk7yA7A",[465,467],{"title":16,"path":17,"stem":18,"description":466,"icon":19,"children":-1},"Build the binaries, scaffold an agent plugin and run your first job on your own machine.",{"title":26,"path":27,"stem":28,"description":468,"icon":29,"children":-1},"What you need to run Orchestrator Zero, and how to build it.",1791135408239]