[{"data":1,"prerenderedAt":544},["ShallowReactive",2],{"navigation_docs":3,"-guide-installation":168,"-guide-installation-surround":539},[4,146],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":36},"Guide","i-lucide-book-open","\u002Fguide","1.guide",[10,14,37,55,59,63,67,71,75,79,83,87,109,134,138,142],{"title":11,"path":12,"stem":13},"What is Agent Zero?","\u002Fguide\u002Fintroduction","1.guide\u002F1.introduction",{"title":15,"icon":16,"path":17,"stem":18,"children":19,"page":36},"API","i-lucide-plug","\u002Fguide\u002Fapi","1.guide\u002F10.api",[20,24,28,32],{"title":21,"path":22,"stem":23},"API overview","\u002Fguide\u002Fapi\u002Foverview","1.guide\u002F10.api\u002F1.overview",{"title":25,"path":26,"stem":27},"Define endpoints","\u002Fguide\u002Fapi\u002Fdefine-endpoints","1.guide\u002F10.api\u002F2.define-endpoints",{"title":29,"path":30,"stem":31},"Use the API from a client","\u002Fguide\u002Fapi\u002Fuse-from-client","1.guide\u002F10.api\u002F3.use-from-client",{"title":33,"path":34,"stem":35},"Protect endpoints","\u002Fguide\u002Fapi\u002Fprotect-endpoints","1.guide\u002F10.api\u002F4.protect-endpoints",false,{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":36},"Authentication","i-lucide-lock","\u002Fguide\u002Fauthentication","1.guide\u002F11.authentication",[43,47,51],{"title":44,"path":45,"stem":46},"Authentication overview","\u002Fguide\u002Fauthentication\u002Foverview","1.guide\u002F11.authentication\u002F1.overview",{"title":48,"path":49,"stem":50},"GitHub OAuth","\u002Fguide\u002Fauthentication\u002Foauth","1.guide\u002F11.authentication\u002F2.oauth",{"title":52,"path":53,"stem":54},"Permissions","\u002Fguide\u002Fauthentication\u002Fpermissions","1.guide\u002F11.authentication\u002F3.permissions",{"title":56,"path":57,"stem":58},"Organizations","\u002Fguide\u002Forganizations","1.guide\u002F12.organizations",{"title":60,"path":61,"stem":62},"Frontend","\u002Fguide\u002Ffrontend","1.guide\u002F13.frontend",{"title":64,"path":65,"stem":66},"Mails","\u002Fguide\u002Fmails","1.guide\u002F14.mails",{"title":68,"path":69,"stem":70},"Internationalization","\u002Fguide\u002Finternationalization","1.guide\u002F15.internationalization",{"title":72,"path":73,"stem":74},"Deployment","\u002Fguide\u002Fdeployment","1.guide\u002F16.deployment",{"title":76,"path":77,"stem":78},"Tech stack","\u002Fguide\u002Ftech-stack","1.guide\u002F2.tech-stack",{"title":80,"path":81,"stem":82},"Installation","\u002Fguide\u002Finstallation","1.guide\u002F3.installation",{"title":84,"path":85,"stem":86},"Environment variables","\u002Fguide\u002Fenvironment-variables","1.guide\u002F4.environment-variables",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":36},"Codebase","i-lucide-folder-tree","\u002Fguide\u002Fcodebase","1.guide\u002F5.codebase",[93,97,101,105],{"title":94,"path":95,"stem":96},"Codebase structure","\u002Fguide\u002Fcodebase\u002Fstructure","1.guide\u002F5.codebase\u002F1.structure",{"title":98,"path":99,"stem":100},"Dependencies","\u002Fguide\u002Fcodebase\u002Fdependencies","1.guide\u002F5.codebase\u002F2.dependencies",{"title":102,"path":103,"stem":104},"Formatting and linting","\u002Fguide\u002Fcodebase\u002Fformatting-linting","1.guide\u002F5.codebase\u002F3.formatting-linting",{"title":106,"path":107,"stem":108},"Agent Skills","\u002Fguide\u002Fcodebase\u002Fagent-skills","1.guide\u002F5.codebase\u002F4.agent-skills",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":36},"Architecture","i-lucide-layers","\u002Fguide\u002Farchitecture","1.guide\u002F6.architecture",[115,118,122,126,130],{"title":110,"path":116,"stem":117},"\u002Fguide\u002Farchitecture\u002Foverview","1.guide\u002F6.architecture\u002F1.overview",{"title":119,"path":120,"stem":121},"State machine","\u002Fguide\u002Farchitecture\u002Fstate-machine","1.guide\u002F6.architecture\u002F2.state-machine",{"title":123,"path":124,"stem":125},"Execution boundary","\u002Fguide\u002Farchitecture\u002Fexecution-boundary","1.guide\u002F6.architecture\u002F3.execution-boundary",{"title":127,"path":128,"stem":129},"Issue-to-PR workflow","\u002Fguide\u002Farchitecture\u002Fissue-to-pr","1.guide\u002F6.architecture\u002F4.issue-to-pr",{"title":131,"path":132,"stem":133},"Adding a capability","\u002Fguide\u002Farchitecture\u002Fadding-a-capability","1.guide\u002F6.architecture\u002F5.adding-a-capability",{"title":135,"path":136,"stem":137},"Repository policy","\u002Fguide\u002Fconfiguration","1.guide\u002F7.configuration",{"title":139,"path":140,"stem":141},"Safety model","\u002Fguide\u002Fsafety","1.guide\u002F8.safety",{"title":143,"path":144,"stem":145},"Database","\u002Fguide\u002Fdatabase","1.guide\u002F9.database",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":36},"Reference","i-lucide-book-marked","\u002Freference","2.reference",[152,156,160,164],{"title":153,"path":154,"stem":155},"CLI","\u002Freference\u002Fcli","2.reference\u002F1.cli",{"title":157,"path":158,"stem":159},"Model providers","\u002Freference\u002Fmodel-providers","2.reference\u002F2.model-providers",{"title":161,"path":162,"stem":163},"Source-control providers","\u002Freference\u002Fsource-control-providers","2.reference\u002F3.source-control-providers",{"title":165,"path":166,"stem":167},"Sandbox providers","\u002Freference\u002Fsandbox-providers","2.reference\u002F4.sandbox-providers",{"id":169,"title":80,"body":170,"description":233,"extension":533,"links":534,"meta":535,"navigation":536,"path":81,"seo":537,"stem":82,"__hash__":538},"docs\u002F1.guide\u002F3.installation.md",{"type":171,"value":172,"toc":525},"minimark",[173,178,209,223,227,313,330,345,349,352,407,417,421,435,467,471,474,487,500,504,521],[174,175,177],"h2",{"id":176},"requirements","Requirements",[179,180,181,188,204],"ul",{},[182,183,184],"li",{},[185,186,187],"strong",{},"Node.js 24.2 or newer",[182,189,190,199,200],{},[185,191,192],{},[193,194,198],"a",{"href":195,"rel":196},"https:\u002F\u002Faube.jdx.dev",[197],"nofollow","aube",", the package manager pinned in ",[201,202,203],"code",{},"package.json",[182,205,206],{},[185,207,208],{},"Git",[210,211,212,213,216,217,222],"p",{},"Both Node.js and aube are pinned in ",[201,214,215],{},"mise.toml",", so ",[193,218,221],{"href":219,"rel":220},"https:\u002F\u002Fmise.jdx.dev",[197],"mise"," can install them together.",[174,224,226],{"id":225},"set-up-a-local-environment","Set up a local environment",[228,229,234],"pre",{"className":230,"code":231,"language":232,"meta":233,"style":233},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fagent-zero.git\ncd agent-zero\nmise install            # or: npm install -g --ignore-scripts=false @endevco\u002Faube\naube ci\ncp .env.example .env\ncp apps\u002Fdashboard\u002F.env.example apps\u002Fdashboard\u002F.env\naube test\n","bash","",[201,235,236,252,262,274,282,294,305],{"__ignoreMap":233},[237,238,241,245,249],"span",{"class":239,"line":240},"line",1,[237,242,244],{"class":243},"sBMFI","git",[237,246,248],{"class":247},"sfazB"," clone",[237,250,251],{"class":247}," https:\u002F\u002Fgithub.com\u002Fwolfstar-project\u002Fagent-zero.git\n",[237,253,255,259],{"class":239,"line":254},2,[237,256,258],{"class":257},"s2Zo4","cd",[237,260,261],{"class":247}," agent-zero\n",[237,263,265,267,270],{"class":239,"line":264},3,[237,266,221],{"class":243},[237,268,269],{"class":247}," install",[237,271,273],{"class":272},"sHwdD","            # or: npm install -g --ignore-scripts=false @endevco\u002Faube\n",[237,275,277,279],{"class":239,"line":276},4,[237,278,198],{"class":243},[237,280,281],{"class":247}," ci\n",[237,283,285,288,291],{"class":239,"line":284},5,[237,286,287],{"class":243},"cp",[237,289,290],{"class":247}," .env.example",[237,292,293],{"class":247}," .env\n",[237,295,297,299,302],{"class":239,"line":296},6,[237,298,287],{"class":243},[237,300,301],{"class":247}," apps\u002Fdashboard\u002F.env.example",[237,303,304],{"class":247}," apps\u002Fdashboard\u002F.env\n",[237,306,308,310],{"class":239,"line":307},7,[237,309,198],{"class":243},[237,311,312],{"class":247}," test\n",[210,314,315,318,319,322,323,318,326,329],{},[201,316,317],{},"aube run \u003Cscript>"," and ",[201,320,321],{},"aube test"," check install freshness first, so a separate install step is rarely needed. aube reads and writes the existing ",[201,324,325],{},"pnpm-lock.yaml",[201,327,328],{},"pnpm-workspace.yaml"," in place — the lockfile stays in pnpm's v9 format.",[210,331,332,333,336,337,340,341,344],{},"The root ",[201,334,335],{},".env"," belongs to the CLI. Runnable apps keep their configuration beside the app:\n",[201,338,339],{},"apps\u002Fdashboard\u002F.env"," for the dashboard and optional ",[201,342,343],{},"apps\u002Fdocs\u002F.env"," for the documentation site.",[174,346,348],{"id":347},"first-run","First run",[210,350,351],{},"Inspect the local environment, then run a review:",[228,353,355],{"className":230,"code":354,"language":232,"meta":233,"style":233},"aube run zero doctor\naube run zero review --feedback \"Possible null dereference in src\u002Fuser.ts\"\naube run zero review --proactive\n",[201,356,357,370,394],{"__ignoreMap":233},[237,358,359,361,364,367],{"class":239,"line":240},[237,360,198],{"class":243},[237,362,363],{"class":247}," run",[237,365,366],{"class":247}," zero",[237,368,369],{"class":247}," doctor\n",[237,371,372,374,376,378,381,384,388,391],{"class":239,"line":254},[237,373,198],{"class":243},[237,375,363],{"class":247},[237,377,366],{"class":247},[237,379,380],{"class":247}," review",[237,382,383],{"class":247}," --feedback",[237,385,387],{"class":386},"sMK4o"," \"",[237,389,390],{"class":247},"Possible null dereference in src\u002Fuser.ts",[237,392,393],{"class":386},"\"\n",[237,395,396,398,400,402,404],{"class":239,"line":264},[237,397,198],{"class":243},[237,399,363],{"class":247},[237,401,366],{"class":247},[237,403,380],{"class":247},[237,405,406],{"class":247}," --proactive\n",[210,408,409,412,413,416],{},[201,410,411],{},"review"," inspects without editing; it is safe on any checkout. See the ",[193,414,415],{"href":154},"CLI reference"," for every command and flag.",[174,418,420],{"id":419},"start-the-dashboard","Start the dashboard",[228,422,424],{"className":230,"code":423,"language":232,"meta":233,"style":233},"aube run dev\n",[201,425,426],{"__ignoreMap":233},[237,427,428,430,432],{"class":239,"line":240},[237,429,198],{"class":243},[237,431,363],{"class":247},[237,433,434],{"class":247}," dev\n",[210,436,437,438,441,442,445,446,449,450,453,454,457,458,461,462,318,464,466],{},"The single deployable app starts on ",[201,439,440],{},"http:\u002F\u002Flocalhost:3000"," (override with ",[201,443,444],{},"PORT","). It serves the UI, the typed control plane at ",[201,447,448],{},"\u002Frpc\u002F**",", the OpenAPI surface at ",[201,451,452],{},"\u002Fapi\u002Fv1\u002F**"," (interactive docs at ",[201,455,456],{},"\u002Fapi\u002Fv1\u002Fdocs","), and authentication at ",[201,459,460],{},"\u002Fapi\u002Fauth\u002F**",". The dashboard's sign-in requires a Postgres database — see ",[193,463,143],{"href":144},[193,465,38],{"href":45},".",[174,468,470],{"id":469},"configure-a-repository","Configure a repository",[210,472,473],{},"Create a repository policy in the repository Agent Zero should work on:",[228,475,477],{"className":230,"code":476,"language":232,"meta":233,"style":233},"zero init\n",[201,478,479],{"__ignoreMap":233},[237,480,481,484],{"class":239,"line":240},[237,482,483],{"class":243},"zero",[237,485,486],{"class":247}," init\n",[210,488,489,490,493,494,497,498,466],{},"This writes ",[201,491,492],{},".agent-zero.yml"," with the safe defaults: ",[201,495,496],{},"mode: observe",", proactive review disabled, autofix disabled. Every key is documented in ",[193,499,135],{"href":136},[174,501,503],{"id":502},"next-steps","Next steps",[179,505,506,511,516],{},[182,507,508,510],{},[193,509,84],{"href":85}," — model credentials, control-plane tokens, auth, and mail.",[182,512,513,515],{},[193,514,94],{"href":95}," — where everything lives.",[182,517,518,520],{},[193,519,72],{"href":73}," — running the dashboard in production.",[522,523,524],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":233,"searchDepth":254,"depth":254,"links":526},[527,528,529,530,531,532],{"id":176,"depth":254,"text":177},{"id":225,"depth":254,"text":226},{"id":347,"depth":254,"text":348},{"id":419,"depth":254,"text":420},{"id":469,"depth":254,"text":470},{"id":502,"depth":254,"text":503},"md",null,{},true,{"title":80,"description":233},"RmNiP8ePbvJ0_YW_g1AD6TVhh11D8W56YlkWn463GWE",[540,542],{"title":76,"path":77,"stem":78,"description":541,"children":-1},"Agent Zero is a TypeScript monorepo. Every tool below was chosen deliberately; the toolchain rules in AGENTS.md are binding for contributors and coding agents alike.",{"title":84,"path":85,"stem":86,"description":543,"children":-1},"Agent Zero reads credentials and deployment policy exclusively from the environment. Endpoint URLs and credentials can never be named or embedded in .agent-zero.yml, so untrusted repository policy cannot redirect a secret.",1787482150584]