[{"data":1,"prerenderedAt":54},["ShallowReactive",2],{"docs:introduction/installation":3},{"title":4,"navTitle":4,"description":5,"api":6,"html":7,"toc":8,"path":43,"tab":44,"group":45,"prev":46,"next":49,"markdownUrl":52,"sourceUrl":53,"lastModified":6},"Installation","Create a Standard Agents project through the platform and run it locally",null,"\u003Cp>A Standard Agents project starts on the Standard Agents platform. One command signs you in, creates your project repository, and starts a local dev server. Local development is available on the Free plan. Model requests use account credit.\u003C/p>\n\u003Ch2 id=\"create-a-project\">\u003Ca class=\"docs-anchor\" href=\"#create-a-project\" aria-label=\"Link to this section\">\u003C/a>Create a project\u003C/h2>\n\u003Cp>Run the CLI from the directory where you want your project:\u003C/p>\n\u003Cdiv class=\"docs-tabs docs-code-group\" data-docs=\"tabs\" data-sync=\"pkg\">\u003Csection class=\"docs-tab\" data-label=\"npm\">\u003Ch4 class=\"docs-tab-label\">npm\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">npm\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> init\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003Csection class=\"docs-tab\" data-label=\"pnpm\">\u003Ch4 class=\"docs-tab-label\">pnpm\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">pnpm\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">pnpm\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> dlx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> init\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003Csection class=\"docs-tab\" data-label=\"yarn\">\u003Ch4 class=\"docs-tab-label\">yarn\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">yarn\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">yarn\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> dlx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> init\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003Csection class=\"docs-tab\" data-label=\"bun\">\u003Ch4 class=\"docs-tab-label\">bun\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">bun\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">bunx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> init\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003C/div>\n\u003Cp>The command does these steps in order:\u003C/p>\n\u003Col>\n\u003Cli>It prints a sign-in URL and opens Standard Agents in your browser. You sign in and create your project there. The terminal shows how long it has waited and when the sign-in session expires. Press Ctrl-C to cancel.\u003C/li>\n\u003Cli>The platform creates a repository for your project from the Standard Agents project template.\u003C/li>\n\u003Cli>The CLI clones that repository into a new directory named after your project.\u003C/li>\n\u003Cli>The CLI writes your local project credentials to \u003Ccode>.dev.vars\u003C/code>. Git ignores that file.\u003C/li>\n\u003Cli>The CLI configures Git credentials for pushes to your platform repository.\u003C/li>\n\u003Cli>The CLI pins framework packages in \u003Ccode>package.json\u003C/code> to the latest Builder release. It uses one exact version. It then installs dependencies with your package manager. A prerelease CLI pins its own version. If npm is unavailable, it keeps the committed versions.\u003C/li>\n\u003Cli>The CLI starts the local dev server and opens it in your browser.\u003C/li>\n\u003C/ol>\n\u003Cp>The \u003Ccode>builder()\u003C/code> Vite plugin in your project owns the Worker entry, Cloudflare bindings, Durable Object migrations, and TypeScript type generation. Your project needs no configuration by hand.\u003C/p>\n\u003Ch2 id=\"your-running-project\">\u003Ca class=\"docs-anchor\" href=\"#your-running-project\" aria-label=\"Link to this section\">\u003C/a>Your running project\u003C/h2>\n\u003Cp>The dev server runs in the terminal where you ran \u003Ccode>init\u003C/code>. The CLI prints its address:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"text\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>Dev server:  http://127.0.0.1:5173\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>The server uses port 5173. If that port is in use, the CLI selects the next free port and prints it.\u003C/p>\n\u003Cp>Your browser shows the Standard Agents Builder interface at that address. Use it to test your agents, inspect threads, and read execution logs. Your agents are the TypeScript files in your project's \u003Ccode>agents/\u003C/code> directory. The dev server reloads them when you save a file.\u003C/p>\n\u003Ch2 id=\"your-first-message\">\u003Ca class=\"docs-anchor\" href=\"#your-first-message\" aria-label=\"Link to this section\">\u003C/a>Your first message\u003C/h2>\n\u003Cp>A new project has one working agent, \u003Cstrong>Guide\u003C/strong>, and one empty thread of it named \u003Cstrong>Welcome!\u003C/strong>. Open that thread and ask a question about Standard Agents or about the Standard Agent Specification. It needs no file edits and no provider key.\u003C/p>\n\u003Cp>Your coding agent builds the agents in your project. When you ask Guide how to build or change something, it explains the concept and gives you a prompt to paste into your coding agent. Your coding agent uses the \u003Ccode>agentbuilder\u003C/code> skill that your project includes.\u003C/p>\n\u003Cp>Guide reads published documentation for detailed questions. It can answer greetings and basic questions about its role from its instructions. It lists the pages it uses. Its model requests use your Standard Agents account credit. The cost depends on usage. It cannot read or change your project's files.\u003C/p>\n\u003Cp>Guide is four ordinary files that you can read, change, or delete:\u003C/p>\n\u003Cdiv class=\"docs-table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>File\u003C/th>\n\u003Cth>What it defines\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>agents/agents/guide_agent.ts\u003C/code>\u003C/td>\n\u003Ctd>The agent and its icon, the Standard Agents mark\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>agents/prompts/guide.ts\u003C/code>\u003C/td>\n\u003Ctd>Its instructions, model, and tool\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>agents/models/low_cost.ts\u003C/code>\u003C/td>\n\u003Ctd>The model\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>agents/tools/read_docs.ts\u003C/code>\u003C/td>\n\u003Ctd>The tool that reads the documentation\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>The Builder does not count Guide as one of your own agents, so the getting-started panel on the home page stays open until your project has another agent. The \u003Ccode>author: 'Standard Agents'\u003C/code> line in \u003Ccode>agents/agents/guide_agent.ts\u003C/code> marks the agent as the built-in guide. The Welcome! thread is created once for a new install. It does not return after you delete it.\u003C/p>\n\u003Cp>A project made with \u003Ccode>init --local\u003C/code> or \u003Ccode>scaffold\u003C/code> does not include Guide.\u003C/p>\n\u003Cp>Your local Builder signs you in with your Standard Agents account. Your \u003Ccode>.dev.vars\u003C/code> holds no admin password.\u003C/p>\n\u003Cp>The dev server listens on \u003Ccode>127.0.0.1\u003C/code> only. Other machines on your network cannot reach it.\u003C/p>\n\u003Cp>Press Ctrl-C in that terminal to stop the dev server.\u003C/p>\n\u003Ch2 id=\"restart-the-dev-server\">\u003Ca class=\"docs-anchor\" href=\"#restart-the-dev-server\" aria-label=\"Link to this section\">\u003C/a>Restart the dev server\u003C/h2>\n\u003Cp>Run the dev command from your project directory:\u003C/p>\n\u003Cdiv class=\"docs-tabs docs-code-group\" data-docs=\"tabs\" data-sync=\"pkg\">\u003Csection class=\"docs-tab\" data-label=\"npm\">\u003Ch4 class=\"docs-tab-label\">npm\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">npm\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0184BC;--shiki-dark:#79B8FF\">cd\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> your-project\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npm\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> run\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> dev\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003Csection class=\"docs-tab\" data-label=\"pnpm\">\u003Ch4 class=\"docs-tab-label\">pnpm\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">pnpm\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0184BC;--shiki-dark:#79B8FF\">cd\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> your-project\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">pnpm\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> dev\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003Csection class=\"docs-tab\" data-label=\"yarn\">\u003Ch4 class=\"docs-tab-label\">yarn\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">yarn\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0184BC;--shiki-dark:#79B8FF\">cd\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> your-project\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">yarn\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> dev\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003Csection class=\"docs-tab\" data-label=\"bun\">\u003Ch4 class=\"docs-tab-label\">bun\u003C/h4>\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cfigcaption class=\"docs-code-title\">bun\u003C/figcaption>\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0184BC;--shiki-dark:#79B8FF\">cd\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> your-project\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">bun\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> run\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> dev\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\u003C/section>\u003C/div>\n\u003Cp>The restarted server also listens on \u003Ccode>127.0.0.1\u003C/code> only, and it signs you in with your Standard Agents account.\u003C/p>\n\u003Cp>If the dev server does not start during \u003Ccode>init\u003C/code>, or stops with an error, \u003Ccode>init\u003C/code> exits with code 1. Your project is still cloned and configured. Correct the error that the CLI prints. Then run the same command.\u003C/p>\n\u003Cp>To create a project without a dev server start, add \u003Ccode>--no-dev\u003C/code> to the \u003Ccode>init\u003C/code> command.\u003C/p>\n\u003Cp>\u003Ccode>init\u003C/code> needs an interactive terminal. To sign in from another device, such as over SSH or in a container, add \u003Ccode>--no-open\u003C/code>. The CLI prints the sign-in URL and waits while you open it in any browser.\u003C/p>\n\u003Cp>The CLI supports Node.js 22 (22.12 or newer) and Node.js 24.\u003C/p>\n\u003Ch2 id=\"deploy\">\u003Ca class=\"docs-anchor\" href=\"#deploy\" aria-label=\"Link to this section\">\u003C/a>Deploy\u003C/h2>\n\u003Caside class=\"docs-callout\" data-kind=\"info\" role=\"note\">\u003Cp>When you are ready to ship, upgrade to Pro. Each push to your platform repository then deploys your project to the Standard Agents cloud.\u003C/p>\u003C/aside>\n\u003Cp>A push that git accepts is not a deploy: the platform builds the commit after the push. Use the CLI to push and follow the build, or to check a build later:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> deploy\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">          # push, follow the build, exit 0 only when the commit was deployed\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> builds\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">          # recent builds of this project\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> builds\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> status\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">   # the build of the checked-out commit\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> builds\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> logs\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">     # its log; add --follow to stream a running build\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> builds\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> retry\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">    # start a failed build again\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> rollback\u003C/span>\u003Cspan style=\"--shiki-light:#986801;--shiki-dark:#79B8FF\"> --yes\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">  # make the earlier production build live again\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> redeploy\u003C/span>\u003Cspan style=\"--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit\">        # deploy the live build again after an environment change\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>These commands use the project key that \u003Ccode>init\u003C/code> saved, or your account sign-in from \u003Ccode>npx @standardagents/cli@latest login\u003C/code>. \u003Ccode>rollback\u003C/code> and \u003Ccode>redeploy\u003C/code> need that sign-in. Each one accepts \u003Ccode>--json\u003C/code>. Exit code 3 means you are not signed in, and exit code 4 means the platform needs the terms accepted: run \u003Ccode>npx @standardagents/cli@latest terms accept\u003C/code>.\u003C/p>\n\u003Cp>The Standard Agents Builder runtime is licensed for local development, and for production on Standard Agents hosting only. Deploying a project to your own Cloudflare account or to any other host is outside the license, and the \u003Ccode>builder()\u003C/code> plugin stops a production build (\u003Ccode>vite build\u003C/code>) outside the platform. Your agents are yours and are portable: they can run on any runtime that conforms to the \u003Ca href=\"https://standardagentspec.com\">Standard Agent Specification\u003C/a>.\u003C/p>\n\u003Ch2 id=\"accept-updated-terms\">\u003Ca class=\"docs-anchor\" href=\"#accept-updated-terms\" aria-label=\"Link to this section\">\u003C/a>Accept updated terms\u003C/h2>\n\u003Cp>When Standard Agents updates its Terms of Service or Privacy Policy, an account member must accept the new versions. You can do that from your terminal:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> terms\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> terms\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> accept\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>\u003Ccode>terms\u003C/code> lists each document with its version, its URL, and whether you accepted it. \u003Ccode>terms accept\u003C/code> shows the documents and the acknowledgement sentence, then asks for your confirmation. An acceptance starts no build. The command lists each deploy that waits for a retry and asks whether to start it. To start one later, run \u003Ccode>npx @standardagents/cli@latest builds retry\u003C/code> in its project on the branch that you pushed.\u003C/p>\n\u003Cp>While acceptance is pending, \u003Ccode>git push\u003C/code> prints lines that start with \u003Ccode>remote: Standard Agents:\u003C/code>. The platform stored that push but started no build.\u003C/p>\n\u003Cp>Both commands use the sign-in that \u003Ccode>login\u003C/code> saved on your machine, in any directory.\u003C/p>\n\u003Caside class=\"docs-callout\" data-kind=\"info\" role=\"note\">\u003Cp>Without a terminal, \u003Ccode>terms accept\u003C/code> records nothing and prints the command that accepts the versions it showed: \u003Ccode>terms accept --agree --terms-version &#x3C;version> --privacy-version &#x3C;version>\u003C/code>. A coding agent must show you both links and the acknowledgement sentence, and run that command only after you say yes. When a document changed after you reviewed it, the command records nothing and shows the current documents. Add \u003Ccode>--json\u003C/code> for machine-readable output.\u003C/p>\u003C/aside>\n\u003Ch2 id=\"install-the-coding-skill\">\u003Ca class=\"docs-anchor\" href=\"#install-the-coding-skill\" aria-label=\"Link to this section\">\u003C/a>Install the coding skill\u003C/h2>\n\u003Cp>Most Standard Agents projects are built with an AI coding agent. The \u003Ccode>agentbuilder\u003C/code> skill teaches your coding agent when to reach for \u003Ccode>defineModel\u003C/code>, \u003Ccode>definePrompt\u003C/code>, \u003Ccode>defineTool\u003C/code>, \u003Ccode>defineAgent\u003C/code>, \u003Ccode>defineHook\u003C/code>, \u003Ccode>defineThreadEndpoint\u003C/code>, and subagents — install it before you start building:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> skill\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>This opens an interactive picker so you can choose the install target:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Claude Code\u003C/strong>: installs the skill folder into \u003Ccode>~/.claude/skills\u003C/code>\u003C/li>\n\u003Cli>\u003Cstrong>Codex and other coding agents\u003C/strong> (Cursor, Gemini CLI, GitHub Copilot, OpenCode, and others): installs the skill folder into \u003Ccode>~/.agents/skills\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>You can also target an agent directly, overwrite an existing copy, or choose a different install root:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> skill\u003C/span>\u003Cspan style=\"--shiki-light:#986801;--shiki-dark:#79B8FF\"> --agent\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> claude\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> skill\u003C/span>\u003Cspan style=\"--shiki-light:#986801;--shiki-dark:#79B8FF\"> --agent\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> agents\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> skill\u003C/span>\u003Cspan style=\"--shiki-light:#986801;--shiki-dark:#79B8FF\"> --dir\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> .agents/skills\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> skill\u003C/span>\u003Cspan style=\"--shiki-light:#986801;--shiki-dark:#79B8FF\"> --force\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>See \u003Ca href=\"/docs/user-interfaces/skill\">@standardagents/skill\u003C/a> for what the skill covers and how to customize it.\u003C/p>\n\u003Ch2 id=\"add-to-an-existing-project\">\u003Ca class=\"docs-anchor\" href=\"#add-to-an-existing-project\" aria-label=\"Link to this section\">\u003C/a>Add to an existing project\u003C/h2>\n\u003Cp>If you already have a Vite project and want to add Standard Agents:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"bash\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#4078F2;--shiki-dark:#B392F0\">npx\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> @standardagents/cli@latest\u003C/span>\u003Cspan style=\"--shiki-light:#50A14F;--shiki-dark:#9ECBFF\"> scaffold\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>The \u003Ccode>scaffold\u003C/code> command intelligently modifies your existing project:\u003C/p>\n\u003Cul>\n\u003Cli>Adds or updates \u003Ccode>@standardagents/builder\u003C/code> in \u003Ccode>package.json\u003C/code>\u003C/li>\n\u003Cli>Adds \u003Ccode>@standardagents/spec\u003C/code> to \u003Ccode>package.json\u003C/code> when your project does not declare it\u003C/li>\n\u003Cli>Adds the \u003Ccode>builder()\u003C/code> plugin to your \u003Ccode>vite.config.ts\u003C/code>\u003C/li>\n\u003Cli>Lets \u003Ccode>builder()\u003C/code> generate the Cloudflare Worker entry, assets config, Durable Object bindings, compatibility flags, and migrations at build time\u003C/li>\n\u003Cli>Creates the \u003Ccode>agents/\u003C/code> directory structure\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Ccode>scaffold\u003C/code> does not install dependencies, sign you in, or write \u003Ccode>.dev.vars\u003C/code>. The \u003Ccode>AGENTS.md\u003C/code> that it writes in your project root lists those steps. Install dependencies with your package manager next.\u003C/p>\n\u003Cp>\u003Ccode>scaffold\u003C/code> keeps your application files. It does not delete or rewrite \u003Ccode>src/\u003C/code>, \u003Ccode>index.html\u003C/code>, \u003Ccode>public/\u003C/code>, \u003Ccode>worker/\u003C/code>, or a Wrangler file.\u003C/p>\n\u003Cp>\u003Ccode>scaffold\u003C/code> exits with code 1 when it cannot add the plugin to your \u003Ccode>vite.config\u003C/code>, cannot update \u003Ccode>package.json\u003C/code>, cannot set the registry for the \u003Ccode>@standardagents\u003C/code> scope, cannot write a guide, or cannot edit your \u003Ccode>tsconfig.json\u003C/code>. It names each stage that failed, the change to make by hand, and the command that resumes it. It completes the other stages and keeps the files that it wrote. Add \u003Ccode>--json\u003C/code> for one JSON result with a status for each stage.\u003C/p>\n\u003Caside class=\"docs-callout\" data-kind=\"info\" role=\"note\">\u003Cp>\u003Ccode>scaffold --force\u003C/code> resets the \u003Ccode>builder()\u003C/code> entry in the \u003Ccode>plugins\u003C/code> array of your \u003Ccode>vite.config\u003C/code> to a call with no options, which removes the options you passed to it. It also replaces existing \u003Ccode>AGENTS.md\u003C/code> guides with the current versions. The command prints each replacement before it writes. It changes nothing else.\u003C/p>\u003C/aside>\n\u003Cp>Without \u003Ccode>--force\u003C/code>, \u003Ccode>scaffold\u003C/code> keeps an existing \u003Ccode>AGENTS.md\u003C/code>.\u003C/p>\n\u003Ch2 id=\"project-structure\">\u003Ca class=\"docs-anchor\" href=\"#project-structure\" aria-label=\"Link to this section\">\u003C/a>Project structure\u003C/h2>\n\u003Cp>After installation, your project will have this structure:\u003C/p>\n\u003Cfigure class=\"docs-code\" data-docs=\"code\" data-lang=\"text\">\u003Cpre class=\"shiki shiki-themes one-light github-dark\" style=\"--shiki-light:#383A42;--shiki-dark:#e1e4e8;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>your-project/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── agents/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── agents/             # Agent definitions (starts with guide_agent.ts)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── prompts/            # Prompt/system message definitions (starts with guide.ts)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── models/             # AI model configurations (starts with low_cost.ts)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── providers/          # Custom provider definitions\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── tools/              # Custom tools agents can call (starts with read_docs.ts)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── hooks/              # Lifecycle hooks\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── handlers/           # Code that takes a side's turns\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── effects/            # Scheduled functions outside a turn\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   ├── api/                # Thread-specific API endpoints\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>│   └── users/              # User-specific API endpoints\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── package.json            # Project dependencies\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── pnpm-workspace.yaml     # Build-script approvals for pnpm projects\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── .npmrc                  # Installs @standardagents packages from public npm\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>├── vite.config.ts          # Uses builder()\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>└── tsconfig.json           # TypeScript configuration\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/figure>\n\u003Cp>The dev server generates types for your agents, prompts, tools, and API routes automatically, and runs a local simulation of the Cloudflare Worker environment. It writes the type files in \u003Ccode>.agents/\u003C/code> each time it starts, so start it once before you run the type checker in a new project.\u003C/p>\n\u003Cp>The \u003Ca href=\"/docs/user-interfaces/cli\">CLI reference\u003C/a> lists every command and flag, the exit codes, where credentials are stored, and what to do when a build fails.\u003C/p>\n\u003Ch2 id=\"package-registry\">\u003Ca class=\"docs-anchor\" href=\"#package-registry\" aria-label=\"Link to this section\">\u003C/a>Package registry\u003C/h2>\n\u003Cp>Standard Agents packages install from public npm. Your project names that registry for the \u003Ccode>@standardagents\u003C/code> scope, and your user-level configuration stays unchanged.\u003C/p>\n\u003Cdiv class=\"docs-table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Package manager\u003C/th>\n\u003Cth>Project file\u003C/th>\n\u003Cth>Setting\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>npm, bun, Yarn 1\u003C/td>\n\u003Ctd>\u003Ccode>.npmrc\u003C/code>\u003C/td>\n\u003Ctd>\u003Ccode>@standardagents:registry=https://registry.npmjs.org/\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>pnpm\u003C/td>\n\u003Ctd>\u003Ccode>.npmrc\u003C/code> and \u003Ccode>pnpm-workspace.yaml\u003C/code>\u003C/td>\n\u003Ctd>The \u003Ccode>.npmrc\u003C/code> line, plus \u003Ccode>registries\u003C/code> with \u003Ccode>\"@standardagents\": https://registry.npmjs.org/\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Yarn 2 or later\u003C/td>\n\u003Ctd>\u003Ccode>.yarnrc.yml\u003C/code>\u003C/td>\n\u003Ctd>\u003Ccode>npmScopes.standardagents.npmRegistryServer: \"https://registry.npmjs.org\"\u003C/code>\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\u003C/div>\n\u003Cp>Commit these files with your lockfile. Your lockfile then records public npm addresses for Standard Agents packages, and it installs for every teammate and on the platform.\u003C/p>\n\u003Cp>\u003Ccode>init\u003C/code> writes these settings before it installs dependencies. \u003Ccode>scaffold\u003C/code> writes them and leaves the install to you. If your project named another registry for the scope, the CLI replaces that line and moves the Standard Agents entries of your lockfile to public npm. The CLI prints the files that it changed.\u003C/p>\n\u003Cp>pnpm reads these files at your workspace root. If pnpm installs your project as a member of a workspace, the CLI writes the settings at that root.\u003C/p>\n\u003Cp>The CLI leaves a file unchanged when an edit is not safe: a \u003Ccode>.npmrc\u003C/code> that is a symbolic link, a YAML file that uses anchors or aliases, or a Yarn configuration with a credential for the \u003Ccode>@standardagents\u003C/code> scope. Yarn sends a scope credential to the registry that the scope names, so the CLI does not point that scope at public npm while the credential exists. It then prints the setting to add. If your package manager needs that file, \u003Ccode>init\u003C/code> stops before it installs dependencies, and \u003Ccode>scaffold\u003C/code> exits with code 1 after its other stages. Add the setting, then run the command again.\u003C/p>\n\u003Ch2 id=\"next-steps\">\u003Ca class=\"docs-anchor\" href=\"#next-steps\" aria-label=\"Link to this section\">\u003C/a>Next steps\u003C/h2>\n\u003Cdiv class=\"docs-card-group\" data-cols=\"2\">\u003Ca class=\"docs-card\" href=\"/docs/introduction/architecture\">\u003Cspan class=\"docs-icon\" data-icon=\"sitemap\">\u003C/span>\u003Cspan class=\"docs-card-title\">Architecture\u003C/span>\u003Cdiv class=\"docs-card-body\">\u003Cp>Learn how Standard Agents works\u003C/p>\u003C/div>\u003C/a>\u003Ca class=\"docs-card\" href=\"/docs/api-reference/rest/create-thread\">\u003Cspan class=\"docs-icon\" data-icon=\"code\">\u003C/span>\u003Cspan class=\"docs-card-title\">API reference\u003C/span>\u003Cdiv class=\"docs-card-body\">\u003Cp>Read the thread and message API\u003C/p>\u003C/div>\u003C/a>\u003C/div>",[9,13,16,19,22,25,28,31,34,37,40],{"id":10,"text":11,"depth":12},"create-a-project","Create a project",2,{"id":14,"text":15,"depth":12},"your-running-project","Your running project",{"id":17,"text":18,"depth":12},"your-first-message","Your first message",{"id":20,"text":21,"depth":12},"restart-the-dev-server","Restart the dev server",{"id":23,"text":24,"depth":12},"deploy","Deploy",{"id":26,"text":27,"depth":12},"accept-updated-terms","Accept updated terms",{"id":29,"text":30,"depth":12},"install-the-coding-skill","Install the coding skill",{"id":32,"text":33,"depth":12},"add-to-an-existing-project","Add to an existing project",{"id":35,"text":36,"depth":12},"project-structure","Project structure",{"id":38,"text":39,"depth":12},"package-registry","Package registry",{"id":41,"text":42,"depth":12},"next-steps","Next steps","introduction/installation","docs","Getting Started",{"path":47,"title":48,"navTitle":48},"introduction/overview","Overview",{"path":50,"title":51,"navTitle":51},"introduction/architecture","Architecture","/docs/introduction/installation.md","https://github.com/standardagents/agentbuilder/blob/main/docs/introduction/installation.mdx",1794580509509]