[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-webflow-webflow-clicloud":3,"mdc--k2h09e-key":40,"related-repo-webflow-webflow-clicloud":10160,"related-org-webflow-webflow-clicloud":10267},{"slug":4,"name":5,"fn":6,"description":7,"org":8,"tags":12,"stars":27,"repoUrl":28,"updatedAt":29,"license":30,"forks":31,"topics":32,"repo":35,"sourceUrl":38,"mdContent":39},"webflow-clicloud","webflow-cli:cloud","deploy applications to Webflow Cloud","Initialize, build, and deploy full-stack Webflow applications to Webflow Cloud hosting. Supports site-attached deploys (linked to an existing Webflow site) and project app deploys (independent project, no existing site required). Use when creating new projects, deploying existing ones, or setting up CI\u002FCD pipelines for Webflow Cloud.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},"webflow","Webflow","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fwebflow.png",[13,17,20,23,26],{"name":14,"slug":15,"type":16},"Full-stack","full-stack","tag",{"name":18,"slug":19,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},"Deployment","deployment",{"name":24,"slug":25,"type":16},"Cloud","cloud",{"name":10,"slug":9,"type":16},107,"https:\u002F\u002Fgithub.com\u002Fwebflow\u002Fwebflow-skills","2026-05-18T06:47:47.514609",null,17,[33,34],"agent","skills",{"repoUrl":28,"stars":27,"forks":31,"topics":36,"description":37},[33,34],"Official Webflow Agent Skills","https:\u002F\u002Fgithub.com\u002Fwebflow\u002Fwebflow-skills\u002Ftree\u002FHEAD\u002Fplugins\u002Fwebflow-skills\u002Fskills\u002Fwebflow-cloud-command","---\nname: webflow-cli:cloud\ndescription: Initialize, build, and deploy full-stack Webflow applications to Webflow Cloud hosting. Supports site-attached deploys (linked to an existing Webflow site) and project app deploys (independent project, no existing site required). Use when creating new projects, deploying existing ones, or setting up CI\u002FCD pipelines for Webflow Cloud.\n---\n\n# Webflow Cloud\n\nInitialize new projects from templates and deploy to Webflow Cloud. Supports two modes: **site-attached** (deploy to an existing Webflow site) and **project app** (deploy as an independent project, no existing site required).\n\n## Instructions\n\n### Step 0: Verify CLI is installed\n\n```bash\nwebflow --version\n```\n\nIf the command is not found, install it:\n\n```bash\nnpm install -g @webflow\u002Fwebflow-cli@latest\n# or yarn global add @webflow\u002Fwebflow-cli@latest\n# or pnpm add -g @webflow\u002Fwebflow-cli@latest\n```\n\nThen proceed to state detection.\n\n### Step 1: Detect project state\n\nRun both checks before deciding which path to follow:\n\n```bash\n# Is this project already set up on Webflow Cloud?\ncat webflow.json\n\n# Is there a git remote?\ngit remote get-url origin 2>\u002Fdev\u002Fnull\n```\n\n**Quick reference:**\n\n| `cloud.project_id` in `webflow.json` | git remote | → Path |\n|---|---|---|\n| No | — | **A** — new project |\n| Yes | No | **B** — existing project, no git |\n| Yes | Yes | **C** — ideal state |\n\n---\n\n> **You are running without a TTY.** The CLI's interactive prompts only fire when `process.stdin.isTTY` is true. As an agent invoking the CLI through a subprocess, you do not have a TTY — every prompt is silently skipped, and any required value that wasn't passed as a flag triggers a hard error like `--project-name cannot be empty`.\n>\n> **Rule for every command in this skill:** pass all required flags explicitly. Never rely on prompts. Pass `--no-input` when the CLI accepts it to make this contract explicit. The required flag set per command:\n>\n> | Command | Always pass |\n> |---|---|\n> | `cloud init` (site-attached) | `--no-input --project-name \u003C3–39 chars> --framework \u003Castro\\|nextjs> --mount \u003Cpath> --site-id \u003Cid>` |\n> | `cloud init --new` (app) | `--no-input --project-name \u003C3–39 chars> --framework \u003Castro\\|nextjs> --workspace-id \u003Cid>` |\n> | `cloud deploy` (site-attached) | `--no-input --mount \u003Cpath> --environment \u003Cenv> --site-id \u003Cid>` plus `--project-name` on first deploy |\n> | `cloud deploy` (project app, first deploy) | `--no-input --mount \u003Cpath> --environment \u003Cenv> --workspace-id \u003Cid> --project-name \u003Cname>` |\n>\n> `--site-id`, `--project-id`, `--framework`, and `--workspace-id` on `cloud deploy` let agents override what's in `webflow.json` at deploy time.\n>\n> **Multi-workspace tokens used to be an agent-fatal hang** because workspace selection had no non-TTY path. Now pass `--workspace-id` to skip the picker. **The workspace ID is not surfaced anywhere in the Webflow dashboard UI** — users can't look it up by hand. If the agent doesn't have it, ask the user to run `webflow cloud deploy` interactively once from inside their project. The preflight prompts for workspace selection and writes `cloud.workspace_id` to `webflow.json`; from that point the agent can read it from the manifest and pass `--workspace-id` on subsequent runs. Do **not** suggest `cloud init --new` for ID discovery — on an existing project it creates a discarded scratch directory. **Exception:** in Path A2 (empty directory) it *is* safe to try `cloud init --new` without `--workspace-id` to auto-resolve a single-workspace token — see [Path A2](#path-a2-empty-directory-scaffold-from-scratch).\n>\n> **Site IDs are visible in the dashboard.** When `--site-id` is needed but unknown, do not ask the user for a raw `site_XXXX` value — use [`webflow sites list`](#picking-a-site-id-from-a-list) to fetch their sites and present a picker keyed by display name. Users can still check their dashboard to fetch it.\n\n---\n\n### Path A: No `project_id` — new project\n\nThe project has not been deployed yet. **Before doing anything else, ask the user one question:**\n\n> \"Do you already have source code for this project (an existing Next.js or Astro codebase), or are you starting from an empty directory and want a Webflow starter scaffold?\"\n\nThat answer chooses the branch — and they're meaningfully different:\n\n| User has... | Branch | Init step |\n|---|---|---|\n| **Existing code** (their own Next.js \u002F Astro project) | **Path A1** | **Skip `cloud init`.** It would create a `.\u002F\u003Cproject-name>\u002F` subfolder with a hello-world scaffold inside their repo, which they don't want. |\n| **Empty directory** or wants a Webflow starter | **Path A2** | Run `cloud init` to scaffold from `Webflow-Examples\u002Fhello-world-*`. |\n\nAfter the branch decision, also ask **site-attached vs app** (only relevant before the first deploy):\n\n| User says... | Mode | Outcome |\n|---|---|---|\n| \"deploy to my Webflow site `\u003Cname>`\", \"site-attached\", references an existing site | **Site-attached** | Project is bound to an existing Webflow site; site URL hosts the app at the chosen mount path. Requires `--site-id`. |\n| \"project app\", \"standalone\", \"just an app\", \"no site\", or no existing site mentioned | **Project app** | First deploy provisions a brand-new Webflow site (`\u003Cproject-name>-\u003Chash>.webflow.io`). |\n\nIf the user is ambiguous on either question, **ask**. Do not default.\n\n---\n\n#### Path A1: existing codebase, no Webflow Cloud config yet\n\nThe user has working source. `cloud deploy` handles everything — framework detection runs against `package.json`, and the preflight phase resolves identity from flags or prompts the user. No `cloud init` needed, no `webflow.json` to hand-write up front.\n\n**Step 1: One-time auth (human-only).** Tell the user to run this locally; agents cannot drive the browser flow:\n\n```bash\nwebflow auth login\n```\n\n**Step 2: Deploy.** The exact form depends on what the agent knows.\n\n**A1-a — Site-attached, `--site-id` is known:**\n\n```bash\nwebflow cloud deploy --no-input \\\n  --site-id site_abc123 \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --mount \u002Fapp \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n```\n\n`--framework` is optional if `package.json` has the framework's Cloudflare adapter (`@opennextjs\u002Fcloudflare`, `@astrojs\u002Fcloudflare`). Pass it explicitly for monorepos or when auto-detection is unreliable.\n\nIf the agent doesn't know the user's `--site-id`, do **not** ask for a raw `site_XXXX` value — use [`webflow sites list`](#picking-a-site-id-from-a-list) to fetch the user's sites and present readable display names to pick from.\n\n**A1-b — Project app, `--workspace-id` is known:**\n\n```bash\nwebflow cloud deploy --no-input \\\n  --workspace-id ws_abc123 \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n```\n\n**A1-c — Project app, workspace ID is unknown** (the common gap):\n\n**The workspace ID is not visible anywhere in the Webflow dashboard UI.** Users cannot look it up by hand — the only way to discover it is to run the CLI. So the path is:\n\n**Ask the user to run one interactive deploy locally.** From inside their project directory:\n\n```bash\nwebflow cloud deploy\n```\n\nWith no `--no-input` and no identity flags, the preflight prompts: *\"This project isn't initialized for Webflow Cloud. How would you like to deploy?\"* → user picks \"Create a new app\" → workspace picker → done. After this one human-driven deploy, `cloud.workspace_id` and `siteId` are written to `webflow.json` and `WEBFLOW_SITE_ID` to `.env`. The agent can then run all subsequent deploys with `--site-id` (the newly provisioned site).\n\n> Do **not** ask the user to run `cloud init --new` to \"discover\" their workspace ID. On an existing project that creates a discarded `.\u002F\u003Cproject-name>\u002F` scratch directory with a hello-world scaffold inside the user's repo. Use the interactive `cloud deploy` path above — it discovers the workspace ID *and* completes the first deploy in the same step.\n\n**Step 3: Set up git** (if not already) — same as Path A2 step 3 below.\n\n---\n\n#### Path A2: empty directory, scaffold from scratch\n\n1. **Scaffold the project** — pick the form that matches the user's intent:\n\n   ```bash\n   # Project app (no site attachment). --workspace-id avoids the multi-workspace hang.\n   webflow cloud init --new --no-input \\\n     --project-name my-app \\\n     --framework astro \\\n     --workspace-id ws_abc123\n   ```\n\n   ```bash\n   # Site-attached (connect to an existing Webflow site). Requires --site-id.\n   webflow cloud init --no-input \\\n     --project-name my-app \\\n     --framework astro \\\n     --mount \u002Fapp \\\n     --site-id site_abc123\n   ```\n\n   See [`cloud init`](#webflow-cloud-init) for all flags.\n\n   **Workspace ID discovery for project apps in Path A2 only:** because Path A2 starts from an empty directory, `cloud init --new` creates a fresh scaffold either way — there's nothing to pollute. So if the agent doesn't have `--workspace-id`, it's safe to **try `cloud init --new` without it first**:\n\n   ```bash\n   # Try this first if --workspace-id is unknown (Path A2 only — empty dir)\n   webflow cloud init --new --no-input \\\n     --project-name my-app \\\n     --framework astro\n   ```\n\n   - **Single-workspace tokens:** the CLI auto-selects the only workspace, writes `cloud.workspace_id` to `webflow.json`, and exits 0. Read it back from the manifest and pass it as `--workspace-id` to `cloud deploy` in step 2.\n   - **Multi-workspace tokens:** the workspace picker fires and the command hangs (no TTY). **Set a 30-second timeout on the Bash call** (or wrap the command in `timeout 30s ...`) — a successful single-workspace init completes in 10–20 seconds (OAuth check + `GET \u002Fv2\u002Fworkspaces` + scaffold download from GitHub), so anything past 30s with no output is the picker hanging. Once the timeout fires, ask the user for the workspace ID directly and re-run with `--workspace-id`.\n\n   For **site-attached** in Path A2, there is no equivalent auto-discovery — `--site-id` is always required up front. Use the [site picker](#picking-a-site-id-from-a-list) pattern below to help the user pick.\n\n   **Path A1 (existing codebase) does not get this trick.** Running `cloud init --new` in an existing project creates a discarded scratch subdirectory. The Path A1 workspace-ID discovery path stays as documented in Path A1-c.\n\n#### Picking a `--site-id` from a list\n\nWhen `--site-id` is needed (Path A1 site-attached, Path A2 site-attached, or anywhere else) and the user hasn't given one, use `webflow sites list --json` to enumerate sites the token can see, then present a short list of readable names for the user to choose from. The site ID is visible in the Webflow dashboard URL config, but a numeric-ID prompt is bad UX; surface display names instead unless asked for IDs.\n\n```bash\n# Returns a JSON array of sites with id, displayName, lastPublished, etc.\nwebflow sites list --json\n```\n\nWorkflow:\n\n1. Run `webflow sites list --json`. The CLI exits 0 with a JSON array.\n2. Parse the output. Show the user a short list keyed by `displayName` (and `lastPublished` if the user has many sites). Example:\n\n   ```\n   Which site should this project deploy to?\n\n   1. Acme Marketing  (last published 2 days ago)\n   2. Acme Docs       (last published 3 weeks ago)\n   3. Acme Internal   (never published)\n   ```\n\n3. Map the user's pick back to its `id` field. Pass that as `--site-id`.\n\nIf `webflow sites list` errors (auth missing \u002F expired), surface the error and ask the user to run `webflow auth login` locally; do not try to drive it from the agent.\n\n2. **Deploy:** pick the form matching the init form above. Pass `--site-id` (or `--workspace-id` for project-app first deploy) so the deploy can't misread the manifest if something is half-written.\n\n   ```bash\n   # Project-app first deploy — provisions the Cloud site\u002Fproject\u002Fenv\n   webflow cloud deploy \\\n     --no-input \\\n     --project-name my-app \\\n     --workspace-id ws_abc123 \\\n     --mount \u002F \\\n     --environment main \\\n     --skip-mount-path-check \\\n     --skip-update-check\n   ```\n\n   ```bash\n   # Site-attached first deploy — uses the existing Webflow site\n   webflow cloud deploy \\\n     --no-input \\\n     --project-name my-app \\\n     --site-id site_abc123 \\\n     --mount \u002Fapp \\\n     --environment main \\\n     --skip-mount-path-check \\\n     --skip-update-check\n   ```\n\n   This creates the project on Webflow Cloud and sets `cloud.project_id` in `webflow.json`. Commit the updated `webflow.json`.\n\n3. **Set up git** (if not already):\n   ```bash\n   git init && git add . && git commit -m \"init\"\n   git remote add origin https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fmy-app.git\n   git push -u origin main\n   ```\n\n4. **(Optional) Enable push-to-deploy via the Webflow dashboard.** Pushing to GitHub alone does **not** trigger deploys — that wiring lives in the Webflow dashboard, not in the CLI or the repo. Tell the user:\n\n   1. Open the Webflow dashboard → their Cloud project → **Settings** → **Git**\n   2. Connect their GitHub account, then select the repository and branch\n   3. Confirm — the dashboard runs one initial deploy automatically to verify the connection\n   4. From that moment on, every push to the connected branch triggers a deploy\n\n   The CLI cannot perform any of these steps. If the user skips this, every deploy must be a manual `webflow cloud deploy` invocation (Path B–style) or a CI\u002FCD pipeline.\n\n> If a deploy auth error occurs in step 2: run `webflow auth login`, complete the browser flow, then retry.\n\n---\n\n### Path B: `project_id` exists, no git remote — existing project, no git\n\nThe project is already on Webflow Cloud but has no git repo. Deploy directly and nudge toward git setup.\n\n1. **Deploy:** read `webflow.json` first. If `siteId` is set, pass `--site-id` matching it. If only `cloud.workspace_id` is set, pass `--workspace-id` matching it.\n\n   ```bash\n   webflow cloud deploy \\\n     --no-input \\\n     --site-id site_abc123 \\\n     --mount \u002F \\\n     --environment main \\\n     --skip-mount-path-check \\\n     --skip-update-check\n   ```\n\n2. **Nudge toward push-to-deploy:** suggest the user initialize a git repo, push to GitHub, **and then connect the repo in the Webflow dashboard** (project → Settings → Git). The dashboard step is what activates push-to-deploy — the CLI can't do this. See Path A, steps 3–4.\n\n> If a deploy auth error occurs: run `webflow auth login`, complete the browser flow, then retry step 1.\n\n---\n\n### Path C: `project_id` exists + git remote — possibly ideal\n\nThe project is deployed and has a git remote, **but the existence of a remote is not proof that push-to-deploy is wired up.** That wiring is a dashboard-side connection that the CLI can't introspect. Confirm before suggesting anything.\n\n> **Always ask the user:** *\"Is this repo connected to your Webflow Cloud project in the dashboard (project → Settings → Git, with a branch selected)?\"* The answer changes the recommendation:\n>\n> - **Yes, connected** — push-to-deploy is active. The only action needed is `git push`. Do not suggest re-linking or re-deploying.\n> - **No, not connected** — `git push` does nothing on the Webflow side. Either run a manual deploy now, or have the user connect the repo in the dashboard first to activate push-to-deploy for future commits.\n> - **Don't know** — assume not connected and recommend the dashboard connection (one-time setup, then push-to-deploy is permanent).\n\n1. **If connected** — just commit and push:\n   ```bash\n   git add .\n   git commit -m \"your message\"\n   git push\n   ```\n   Webflow Cloud picks up the push and deploys automatically. The first deploy after connection is run by the dashboard itself; subsequent pushes are picked up automatically.\n\n2. **If not connected** — two routes:\n\n   - **Activate push-to-deploy for future commits** (recommended). Tell the user to open the Webflow dashboard → their Cloud project → **Settings** → **Git**, connect the repo, select the branch. The dashboard runs an initial deploy automatically to verify the connection. From then on, every `git push` to that branch deploys.\n   - **One-off manual deploy now**, without enabling push-to-deploy. Pass `--site-id` matching the `siteId` in `webflow.json`:\n     ```bash\n     webflow cloud deploy \\\n       --no-input \\\n       --site-id site_abc123 \\\n       --mount \u002F \\\n       --environment main \\\n       --skip-mount-path-check \\\n       --skip-update-check\n     ```\n     This deploys the current state but does **not** wire up push-to-deploy. The next `git push` will still be a no-op on the Webflow side.\n\n> If a deploy auth error occurs: run `webflow auth login`, complete the browser flow, then retry.\n\n### Tool usage\n\n- Use the **Bash tool** for all `webflow cloud` commands\n- Use the **Read tool** to examine `webflow.json`, `package.json` — never modify these directly\n- Use the **Glob tool** to discover project files\n- **Do not** use Webflow MCP tools for CLI workflows\n\n### Authentication\n\n```bash\n# Interactive — local-only, opens a browser. NOT for agents or CI.\nwebflow auth login\n```\n\n> `webflow auth login` performs an OAuth flow in the user's browser and then writes the token to `.env`. It refuses to run with `--no-input` (exits with `No-input mode enabled. Aborting OAuth authentication`). **Agents cannot drive this command.** If `webflow auth login` is needed (missing or expired token), ask the user to run it locally once and report back when it's done.\n\nThe CLI writes the same token env var for **both** modes. There is no per-mode split.\n\n**`webflow auth login` writes to `.env`:**\n\n| Variable | Always written? | Description |\n|---|---|---|\n| `WEBFLOW_API_TOKEN` | Yes (both modes) | OAuth access token. The canonical token env var. Set by `webflow auth login`. |\n| `WEBFLOW_SITE_ID` | Site-attached only (or after first project-app deploy) | Site ID. Written by `cloud init` for site-attached projects, or by `cloud deploy` for project apps after the first deploy provisions a site. |\n\nAfter the **first project-app deploy**, the CLI provisions a site on the backend and writes `WEBFLOW_SITE_ID` to `.env`. From that point on, the project behaves like a site-attached project — but the token env var is still `WEBFLOW_API_TOKEN`.\n\n**Deprecated legacy:** `WEBFLOW_SITE_API_TOKEN` (and `WEBFLOW_WORKSPACE_API_TOKEN`) are read-only legacy fallbacks. The CLI never writes them, but if it finds one of them set in the environment when `WEBFLOW_API_TOKEN` is not set, it uses the legacy value **and prints a deprecation warning on every run**. Do not put `WEBFLOW_SITE_API_TOKEN` in `.env` or CI secrets for new projects — use `WEBFLOW_API_TOKEN`.\n\nOther env vars (any mode):\n\n| Variable | Description |\n|---|---|\n| `DO_NOT_TRACK` | Set to `1` to opt out of telemetry. |\n| `WEBFLOW_SKIP_UPDATE_CHECKS` | Set to `true` to skip the @webflow package update check. |\n\n> **`WEBFLOW_SITE_ID` env var is read-only.** Used at runtime when no flag or manifest value is set, but never written back to `webflow.json`. Setting `WEBFLOW_SITE_ID=X` in `.env` will not update the manifest — only `cloud init`, `cloud deploy`, and the manifest itself drive that.\n\n> **GitHub Secrets:** use `WEBFLOW_API_TOKEN` for the token in every mode. Also set `WEBFLOW_SITE_ID` for site-attached projects and project apps that have already had their first deploy. Never commit `.env` files. If existing CI uses `WEBFLOW_SITE_API_TOKEN`, rename it — the deploy will still succeed but every run prints a deprecation warning until you switch.\n\n### Configuration — webflow.json\n\n```json\n{\n  \"siteId\": \"site_abc123\",\n  \"cloud\": {\n    \"project_id\": \"proj_xyz\",\n    \"environment_id\": \"env_xyz\",\n    \"workspace_id\": \"ws_xyz\",\n    \"framework\": \"nextjs\",\n    \"skipMountPathCheck\": false\n  }\n}\n```\n\nAll `cloud.*` keys are **snake_case** (`project_id`, not `projectId`).\n\n| Key | When set | Notes |\n|---|---|---|\n| `siteId` | Site-attached: at `cloud init`. Project app: after first deploy (CLI provisions a site). | Absent on project apps that have not been deployed yet. |\n| `cloud.framework` | At `cloud init`. | Required for deploy resolution — see below. |\n| `cloud.project_id` | After first deploy. | Auto-written. |\n| `cloud.environment_id` | After first **project-app** deploy. | Auto-written by `createCloudApp`. |\n| `cloud.workspace_id` | At project-app `cloud init` (`--new`). | Used by the first deploy to provision the site. |\n| `cloud.skipMountPathCheck` | User-managed. | Equivalent to `--skip-mount-path-check`. |\n\nThe CLI also writes `cloud.deployment_type` (`\"ssr\" | \"ssg\" | \"spa\"`) and `cloud.entrypoint_path` into the **bundled** `webflow.json` at build time (these power the cosmic deployer's wrangler config). They're build-time outputs — do not strip them from the source `webflow.json` if you find them there; missing values silently break Next.js server-side deploys.\n\n**`cloud.framework` resolution at deploy time:**\n\n1. **`webflow.json` exists with `cloud.framework`** — used as-is. Invalid value exits with code 1.\n2. **`webflow.json` exists but `cloud.framework` is absent** — throws: _\"webflow.json exists but doesn't contain valid framework information under the 'cloud' key\"_. Add `\"cloud\": { \"framework\": \"nextjs\" }` manually.\n3. **No `webflow.json`** — auto-detected from `package.json`. CLI **writes a new `webflow.json`** on success.\n\nProjects created via `cloud init` always land in case 1.\n\n### Commands\n\n#### webflow cloud list\n\n```bash\nwebflow cloud list\n```\n\nLists available scaffold templates. Check this before `cloud init --framework` to confirm valid scaffold IDs.\n\n#### webflow cloud init\n\nBootstrap a new project locally. Two modes: **site-attached** and **app**.\n\n**Site-attached** (connects to an existing Webflow site):\n\n```bash\n# Agent \u002F non-TTY — always pass every flag\nwebflow cloud init \\\n  --no-input \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --mount \u002Fapp \\\n  --site-id site_abc123\n\n# Human at a real terminal — interactive prompts will fill in any missing flag\nwebflow cloud init\n```\n\nFlags:\n\n| Flag | Short | Description |\n|---|---|---|\n| `--project-name \u003Cname>` | `-n` | Project name. **Must be 3–39 characters** — the CLI rejects anything outside this range at init and at the first project-app deploy. |\n| `--framework \u003Cframework>` | `-f` | Must match a scaffold ID from `cloud list`. Currently: `nextjs`, `astro`. |\n| `--mount \u003Cpath>` | `-m` | Mount path (default `\u002Fapp` for site-attached, `\u002F` for app). Substituted into config files at scaffold time. Not stored in `webflow.json`. |\n| `--site-id \u003Cid>` | `-s` | Required in non-interactive site-attached mode. Mutually exclusive with `--workspace-id`. |\n| `--workspace-id \u003Cid>` | `-w` | Skips the workspace picker for `--new` (app mode). Mutually exclusive with `--site-id`. |\n| `--new` | — | Project-app mode (no site). |\n| `--no-input` | — | CI mode. Requires `--project-name` and `--framework`. Without `--new`, defaults to app behavior. |\n\nCredential resolution for `--no-input` site-attached: `--site-id` flag → `siteId` in `webflow.json` → `WEBFLOW_SITE_ID` env var → error.\n\nAfter scaffolding a site-attached project, the CLI automatically runs a **DevLink sync**.\n\n**Project app** (no site attachment):\n\n```bash\n# Agent \u002F non-TTY — always pass --workspace-id to skip the workspace picker\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --workspace-id ws_abc123\n\n# Human at a real terminal — prompts for workspace if not passed\nwebflow cloud init --new\n```\n\n> If the token sees multiple workspaces and the agent doesn't have a workspace ID, ask the user to run `webflow cloud deploy` interactively from inside their project — the preflight prompt picks a workspace and writes `cloud.workspace_id` to `webflow.json` for subsequent agent-driven runs. The workspace ID is not exposed in the Webflow dashboard UI, so the interactive CLI run is the only practical way to discover it.\n\n| | Site-attached | Project app (`--new`) |\n|---|---|---|\n| OAuth \u002F site selection | Required at init | Skipped (workspace selection instead) |\n| `WEBFLOW_SITE_ID` in `.env` | Written at init | Written **after first deploy** only |\n| `WEBFLOW_API_TOKEN` in `.env` | Written | Written |\n| `cloud.workspace_id` in `webflow.json` | Not set | Set at init (used by first deploy) |\n| Scaffold | `astro`, `nextjs` | `astro`, `nextjs` |\n| Mount path | Configurable (default `\u002Fapp`) | Always `\u002F` |\n| DevLink sync | Runs after init | Skipped |\n\n**Workspace selection (project-app mode only):** if `--workspace-id` is **not** passed, the CLI calls `GET \u002Fv2\u002Fworkspaces` to enumerate workspaces the token has access to. Single workspace is auto-selected; multiple workspaces trigger an interactive picker. With `--workspace-id` the API roundtrip is skipped — the CLI trusts the flag and surfaces a 404 later via `createCloudApp` if it's invalid. The chosen ID is persisted as `cloud.workspace_id` in `webflow.json`.\n\n**Agent caveat:** if the user's token sees more than one workspace and the agent can't pass `--workspace-id`, the picker fires and hangs in non-TTY contexts. The workspace ID is not visible in the Webflow dashboard UI, so the recovery is: **ask the user to run `webflow cloud deploy` interactively once from inside their project.** The preflight prompt picks the workspace, completes a first deploy, and writes `cloud.workspace_id` (plus `siteId`, `project_id`, `environment_id`) to `webflow.json`. The agent can then read the workspace ID from the manifest and pass `--workspace-id` (or `--site-id`, now that the site exists) on subsequent runs. To target a different workspace later, delete `cloud.workspace_id` and have the user repeat the interactive deploy.\n\n#### webflow cloud create (deprecated)\n\n`webflow cloud create \u003Cname>` still works but **emits a deprecation warning** and will be removed in a future major release. It's hardcoded to `\u002Fapp` mount in site-attached mode and offers a strict subset of `cloud init`. Always prefer `cloud init` (or `cloud init --new` for app mode).\n\n#### webflow cloud deploy\n\n**Preflight phase: identity resolution.** Before any backend call, `cloud deploy` runs a preflight step that resolves whether this is a site-attached deploy or a project-app first deploy. Resolution order (first match wins):\n\n| # | Source | Result |\n|---|---|---|\n| 1 | `--site-id \u003Cid>` flag | Site-attached, overrides manifest |\n| 2 | `--workspace-id \u003Cid>` flag | Project-app first deploy, overrides manifest. Mutually exclusive with `--site-id` |\n| 3 | `manifest.siteId` (from `webflow.json`) | Site-attached |\n| 4 | `manifest.cloud.workspace_id` | Project-app first deploy |\n| 5 | `WEBFLOW_SITE_ID` env var | Site-attached (used at runtime only; not persisted back to `webflow.json`) |\n| 6 | Interactive picker (no `--no-input`) | Choose: create a new app \u002F attach to existing site \u002F cancel |\n| 7 | No match + `--no-input` | Hard error listing required flags |\n\nThis preflight phase exists to prevent the project-app deploy path from running and provisioning a Cloud app before identity is locked in — earlier versions could orphan a new Webflow site if any later step failed.\n\n> **Pass `--site-id` or `--workspace-id` explicitly whenever you can.** It defends against half-written manifests and removes the dependence on whatever state `cloud init` happened to leave behind. If the user wants site-attached, pass `--site-id`. For project-app first deploy, pass `--workspace-id`.\n\n**Project-app first deploy** (triggered by `--workspace-id` flag or `manifest.cloud.workspace_id`) calls `POST \u002Fcosmic\u002Fworkspaces\u002F:workspace_id\u002FcloudApps` to atomically create a site, project, and environment. On success it writes `siteId`, `cloud.project_id`, and `cloud.environment_id` into `webflow.json`, writes `WEBFLOW_SITE_ID` into `.env`, and forces `--skip-mount-path-check` for that one deploy. Subsequent deploys behave like normal site-attached deploys.\n\nIf `--project-name` is omitted on the first project-app deploy, the CLI uses the **cwd folder name** (when 3–39 chars) and falls back to `\"Cloud App\"`. Provide `--project-name` explicitly in CI to avoid surprises.\n\n**Uninitialized projects** (no `siteId`, no `workspace_id`, no flag): the CLI prompts the user to create a new project app, attach to an existing site, or cancel. With `--no-input` it hard-errors listing the required flags. Agents running with `--no-input` must always supply `--site-id` or `--workspace-id` on the first deploy of an uninitialized project.\n\nThere are two deployment approaches. **GitHub-linked deployment is recommended** — it requires no CI configuration. After a one-time dashboard setup (which the CLI can't do), every push to the connected branch triggers a deploy.\n\n**Option 1 (recommended): GitHub-linked deployment**\n\nOnce a one-time dashboard setup is done, every push to the connected branch triggers a deploy — no CLI commands, no workflow file. **The setup is dashboard-only — the CLI cannot reach this state on its own.** Pushing a repo to GitHub does not, by itself, enable push-to-deploy.\n\n1. Push the project to GitHub (the user needs at least one commit pushed)\n2. **Tell the user to open the Webflow dashboard** → their Cloud project → **Settings** → **Git** and connect their GitHub account if not already connected\n3. Select the repository, then the branch to deploy from (e.g. `main`)\n4. Confirm — the dashboard runs an initial deploy automatically to verify the connection\n5. From that point on: `git push` to the connected branch = deploy\n\nSteps 2–4 cannot be scripted. If the user wants push-to-deploy, they have to click through the dashboard once. After that, the agent's job for this project is essentially done — future deploys happen on push.\n\n> When suggesting a deployment setup to a user, always lead with this option. Only suggest GitHub Actions if the user needs custom pre\u002Fpost steps, secrets injection, or multi-environment logic that the native GitHub integration does not cover.\n\n**Option 2: GitHub Actions (manual CI\u002FCD)**\n\nUse when you need custom build steps, environment-specific secrets, or deploy gates not supported by the native GitHub integration. See the [GitHub Actions example](#github-actions-cicd-pipeline) in the Examples section.\n\n**Option 3: Local \u002F manual deploy**\n\nFor development and one-off deploys:\n\n```bash\nwebflow cloud deploy \\\n  --no-input \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n```\n\nAll `cloud deploy` flags:\n\n| Flag | Short | Description |\n|---|---|---|\n| `--no-input` | — | CI mode. Disables most prompts but **not** the project-select prompt — see callout below. |\n| `--mount \u003Cpath>` | `-m` | Mount path. **Always required with `--no-input`.** Not auto-read from `webflow.json`. |\n| `--environment \u003Cenv>` | `-e` | Environment name. Creates if it does not exist. Must be passed with `--mount`. |\n| `--project-name \u003Cname>` | `-n` | Required on first deploy with `--no-input` when no `cloud.project_id` in `webflow.json`. **Must be 3–39 characters** for project-app first deploy. |\n| `--site-id \u003Cid>` | `-s` | **New.** Webflow site ID for site-attached deploys. Overrides `siteId` in `webflow.json`. Mutually exclusive with `--workspace-id`. Use this to recover from a half-written manifest without editing JSON. |\n| `--workspace-id \u003Cid>` | `-w` | Workspace ID for project-app first deploys. Overrides `cloud.workspace_id` in `webflow.json`. Mutually exclusive with `--site-id`. |\n| `--project-id \u003Cid>` | `-p` | **New.** Cloud project ID. Skips the app picker. Overrides `cloud.project_id` in `webflow.json`. |\n| `--framework \u003Cfw>` | `-f` | **New.** Override framework detection. Must be `nextjs` or `astro`. Writes the value back into `webflow.json`. Use when auto-detection from `package.json` is unreliable (monorepos, missing dependencies, etc.). |\n| `--directory \u003Cpath>` | `-d` | Project directory (default: cwd). Use for monorepos. |\n| `--description \u003Ctext>` | — | Project description for the first deploy. |\n| `--skip-mount-path-check` | — | Skip domain manifest validation. Required in CI. Can also be set in `webflow.json` as `cloud.skipMountPathCheck: true`. |\n| `--auto-publish` | — | Publish the Webflow **site** to sync mount path routing. Does not affect app deployment. |\n| `--skip-update-check` | — | Skip @webflow package update check. |\n\n> **Agents: pass `--mount` AND `--environment` together, every time.** The deploy prompts (select existing project, name a new project, pick an environment) are gated on whether `--mount` and `--environment` are *both* set — not on `--no-input`. Pass `--no-input` without both and the project-select prompt still fires and hangs in non-TTY contexts. The minimum agent-safe deploy flag set is `--no-input --mount \u003Cpath> --environment \u003Cenv> --site-id \u003Cid>` (or `--workspace-id \u003Cid>` for project-app first deploy), plus `--project-name` whenever `cloud.project_id` is absent from `webflow.json`.\n\n### Frameworks\n\n| Framework | Init scaffold | Deploy support | Detected via package |\n|---|---|---|---|\n| `nextjs` | ✓ | ✓ | `@opennextjs\u002Fcloudflare` |\n| `astro` | ✓ | ✓ | `@astrojs\u002Fcloudflare` |\n\nAny other value in `cloud.framework` causes `cloud deploy` to exit with code 1.\n\n> **Scaffolds are fetched from GitHub at init time.** The CLI downloads scaffold tarballs from `Webflow-Examples\u002Fhello-world-{astro,nextjs}*` (pinned to the `v1` branch). `cloud init` therefore requires network access to `github.com`. Old CLI installs keep working because the registry pins a `vN` branch per scaffold-contract version.\n\n### Global flags\n\n| Flag | Description |\n|---|---|\n| `--no-input` | Disable all interactive prompts. Required for CI\u002Fautomation. |\n| `--manifest \u003Cpath>` | Custom path to `webflow.json`. Use for monorepos. |\n| `--skip-update-check` | Skip @webflow package update check. Alternatively, set `WEBFLOW_SKIP_UPDATE_CHECKS=true`. |\n\n## Output\n\nAfter a successful `cloud deploy`, the CLI prints two pieces of output.\n\n**1. Deployment dashboard URL** — always present on success:\n\n```\nhttps:\u002F\u002Fwebflow.com\u002Fdashboard\u002Fsites\u002F{siteId}\u002Fwebflow-cloud\u002Fprojects\u002F{projectId}\u002Fenvironments\u002F{environmentId}\u002Fdeployments\u002F{deploymentId}\n```\n\nAlways show this to the user. From here they can view build logs, deployment status, history, and environment settings.\n\n**2. Live app URL** — conditional:\n\n```\n🌐 Your cloud app will soon be available at:\n   https:\u002F\u002F{your-site}.webflow.io\u002F{mount-path}\n```\n\nIf a real URL is printed, show it to the user as the live app link. The domain is their Webflow site's domain and the path is whatever `--mount` value was used at deploy time (e.g. `\u002F`, `\u002Fapp`, or any other user-chosen path).\n\nIf the output instead reads `No domains found with the correct mount path configuration yet.`, do not show a live URL — point the user to the dashboard deployment link above to check status and configure their domain.\n\n**Do not** fetch or curl either URL to verify the deploy — just return what the CLI printed.\n\n## Examples\n\n### Full workflow: scaffold → GitHub → dashboard connection → push-to-deploy (recommended)\n\nThe CLI handles steps 1 and 2. **Step 3 must happen in the Webflow dashboard — the CLI cannot do it.** Without step 3, pushing to GitHub does not deploy.\n\n```bash\n# 1. Scaffold locally (CLI)\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --workspace-id ws_abc123\n\n# 2. Push to GitHub (CLI \u002F git)\ngit init && git add . && git commit -m \"init\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fmy-app.git\ngit push -u origin main\n```\n\n```\n# 3. Connect in the Webflow dashboard (manual, dashboard-only):\n#    a. Open the Cloud project → Settings → Git\n#    b. Connect the GitHub account (if not already), pick the repo\n#    c. Pick the branch to deploy from (e.g. main)\n#    d. Confirm — the dashboard runs an initial deploy to verify the wiring\n#\n# After step 3, every push to the selected branch triggers a deploy automatically.\n# Skip step 3 and push-to-deploy is NOT active — deploys must be manual or CI-driven.\n```\n\n### Project-app workflow: init → first deploy provisions site\n\n```bash\n# Agent-safe init — assumes the token sees a single workspace.\n# If the token sees multiple workspaces, ask the user to run this command locally first.\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework astro\n\n# First deploy creates site + project + environment on the backend,\n# writes siteId \u002F project_id \u002F environment_id back to webflow.json,\n# and writes WEBFLOW_SITE_ID to .env. Subsequent deploys are normal.\ncd my-app\nwebflow cloud deploy --no-input \\\n  --project-name my-app \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-update-check\n```\n\n### Scaffold a site-attached Astro app locally\n\n```bash\nwebflow cloud init \\\n  --no-input \\\n  --project-name my-site-app \\\n  --framework astro \\\n  --mount \u002Fapp \\\n  --site-id site_abc123\n```\n\n### GitHub Actions CI\u002FCD pipeline (when custom steps are needed)\n\n```yaml\nname: Deploy to Webflow Cloud\n\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - uses: actions\u002Fsetup-node@v4\n        with:\n          node-version: 20\n\n      - name: Install Webflow CLI\n        run: npm install -g @webflow\u002Fwebflow-cli@latest\n\n      - name: Deploy\n        run: |\n          webflow cloud deploy \\\n            --no-input \\\n            --mount \u002F \\\n            --environment main \\\n            --skip-mount-path-check \\\n            --skip-update-check\n        env:\n          WEBFLOW_API_TOKEN: ${{ secrets.WEBFLOW_API_TOKEN }}\n          WEBFLOW_SITE_ID: ${{ secrets.WEBFLOW_SITE_ID }}\n          # For project apps pre-first-deploy, omit WEBFLOW_SITE_ID\n```\n\n### Manual deploy (local \u002F one-off)\n\n```bash\nwebflow cloud deploy \\\n  --no-input \\\n  --project-name my-app \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n```\n\n### Manual deploy with error handling\n\n```bash\nwebflow cloud deploy --no-input --mount \u002F --skip-mount-path-check --skip-update-check\nif [ $? -ne 0 ]; then\n  echo \"Deploy failed. Log file:\"\n  webflow log\n  exit 1\nfi\n```\n\n## Guidelines\n\n### Init vs Deploy in CI\n\n- **`cloud init` is for local, one-time project setup — never run it in CI.** Site-attached mode opens a browser window; there is no headless OAuth path. Run `cloud init` once locally, commit the result, then use `cloud deploy` in CI.\n\n### Mount path\n\n- `--mount` is **always required** with `--no-input`. The CLI does not read a saved mount path from `webflow.json`.\n- **Never assume a default.** Assuming `\u002F` or `\u002Fapp` will cause `ENVIRONMENT_MOUNT_MISMATCH` if the project uses a different path. Check the Webflow dashboard under the project's environment settings.\n\n### Do not add confirmation gates\n\nWhen `--no-input` is set, do not add a human confirmation step before `cloud deploy`. It blocks unattended CI runs and is unnecessary — the CLI has no built-in prompt to bypass.\n\n### Package manager\n\nThe CLI uses **npm only** regardless of lock files present. pnpm and yarn lock files are ignored — those projects silently receive `npm install`.\n\n### Build-time file management\n\nDuring `cloud deploy`, the CLI temporarily replaces two files and restores them on success or failure:\n- **Framework config** (`next.config.ts` \u002F `astro.config.mjs`) — renamed to `clouduser.*`, replaced with CLI template, then restored.\n- **`wrangler.json`** — replaced with CLI template (original saved to `clouduser.wrangler.json`), then restored. Do not modify `wrangler.json` during a deploy.\n\nIf Astro is the framework and `@astrojs\u002Freact` is absent, the CLI runs `npm install --save @astrojs\u002Freact` without prompting.\n\n### Cloudflare bindings (D1 \u002F KV \u002F R2)\n\nThe CLI merges `wrangler.json` bindings at build time. Limits: **max 5 of each type**. For D1, set `migrations_dir` in the binding — the CLI copies migration files automatically.\n\n### Error handling\n\n- The CLI exits with **code 1 on every error**. Check the exit code — do not match on emoji or text patterns in stdout.\n- Use `webflow log` after any failure to get the full error trace.\n\n### Deploy versioning\n\n| Situation | Version tag sent |\n|---|---|\n| Clean working tree | `git@{40-char-hash}` |\n| Uncommitted changes | `git@{40-char-hash}+dirty` |\n| Not in a git repo | `noversion@{ISO-timestamp}` |\n\nCommit all changes before deploying to production.\n\n### Known limitations\n\n- No `cloud status` \u002F `cloud logs` — use the Webflow dashboard.\n- No `cloud env` commands — runtime env vars managed via dashboard only.\n- No `--dry-run` — build validation always triggers a real deployment.\n- No `--json` \u002F structured output — deploy URL and project ID must be parsed from stdout.\n- No `cloud rollback`.\n- **100 MB build size limit** — builds exceeding 104,857,600 bytes fail at upload.\n\n## Troubleshooting\n\n### `--project-name cannot be empty` (or any required-flag error) on `cloud init`\n\nThe CLI gates its interactive prompts on `process.stdin.isTTY`. Agents invoke the CLI from a subprocess that does **not** have a TTY, so the prompt block is skipped entirely and the bare validation fires for the first missing required value.\n\n**Fix:** pass every required flag explicitly. For `cloud init`:\n\n```bash\nwebflow cloud init --new --no-input --project-name my-app --framework astro\n# or, site-attached:\nwebflow cloud init --no-input --project-name my-app --framework astro --mount \u002Fapp --site-id site_abc123\n```\n\nPassing `--no-input` is not strictly required for the prompts to be skipped — the absent TTY already does that — but it makes the contract explicit and matches the Required-flag matrix at the top of this skill.\n\n### `cloud init --new` hangs forever \u002F never returns\n\nWorkspace selection in project-app mode prompts unconditionally when the token sees more than one workspace. Pass `--workspace-id` to skip the picker; without it, in a non-TTY context the CLI hangs at the prompt.\n\n**Fix:** pass `--workspace-id \u003Cid>` to `cloud init --new`. The workspace ID is not visible in the Webflow dashboard UI, so when the agent doesn't have one, ask the user to run `webflow cloud deploy` interactively from inside an existing project. The preflight prompt picks a workspace and writes `cloud.workspace_id` to `webflow.json` — the agent can then read it and pass `--workspace-id` on future runs. Single-workspace tokens are not affected — selection is auto-skipped.\n\n### Deploy provisioned a new site when I expected site-attached\n\n**Symptom:** user wanted to deploy to an existing Webflow site, but `cloud deploy` printed `Creating Cloud app...` \u002F `Cloud app created: \u003Cname>` and the live URL came out as `\u003Cname>-\u003Chash>.webflow.io` (a freshly minted site) instead of the user's intended site.\n\n**Cause:** `webflow.json` was in the project-app init state — `cloud.workspace_id` set, `siteId` absent — typically because the project was previously scaffolded with `cloud init --new`. The preflight phase prefers explicit flags but still falls through to the manifest when none are passed.\n\n**Prevention (primary fix):** pass `--site-id \u003Cexisting-site-id>` to `cloud deploy`. The preflight phase resolves identity from flags first, so this overrides whatever's in `webflow.json` and routes the deploy to the intended Webflow site. The skill should always pass `--site-id` when site-attached intent is known.\n\n```bash\nwebflow cloud deploy --no-input \\\n  --site-id site_abc123 \\\n  --mount \u002Fapp --environment main \\\n  --skip-mount-path-check --skip-update-check\n```\n\n**Recovery if the new site was already created:**\n\n- **Keep the new project-app site** the deploy just created — do nothing; subsequent deploys will go to the same site (or pass `--site-id` of the new site if there's any ambiguity).\n- **Re-target an existing Webflow site instead.** The auto-provisioned site cannot be re-bound to an existing site after creation. Options:\n  1. Delete the project app (and its auto-provisioned site) from the Webflow dashboard.\n  2. Either edit `webflow.json` (remove `cloud.workspace_id`, `cloud.project_id`, `cloud.environment_id`, `siteId`) and re-run `cloud init` with `--site-id \u003Cexisting-site-id>`, or skip the manifest edit and run `cloud deploy --site-id \u003Cexisting-site-id>` directly — the preflight will treat this as a fresh site-attached deploy.\n\n### Auth error on deploy\n\nRun `webflow auth login` and complete the browser flow. The CLI writes a new `WEBFLOW_API_TOKEN` to `.env`. Retry the deploy after login.\n\nIn CI, browser auth is not possible — an auth error means `WEBFLOW_API_TOKEN` is missing or expired in your secrets. Fix the secret, do not attempt `webflow auth login`. If the CI uses the legacy `WEBFLOW_SITE_API_TOKEN`, the deploy will still work but the run log shows a deprecation warning; rename the secret to `WEBFLOW_API_TOKEN` to clear it.\n\n### Deploying to a different workspace\n\nFor **project apps (`--new`)**: pass `--workspace-id \u003Cnew-id>` to `cloud init` or `cloud deploy` to override `cloud.workspace_id` in `webflow.json`. Alternatively, delete `cloud.workspace_id` from `webflow.json` and re-run init (or interactive deploy on an existing project) to re-seed it.\n\nFor **site-attached projects**, workspace context is implicit in the auth token. Re-run `webflow auth login` and select the target workspace in the browser; the new token replaces the old one in `.env`.\n\n### First project-app deploy fails with `missing_scopes`\n\nThe token saved to `.env` doesn't include the scopes needed to create a Cloud app. Re-run `webflow auth login` and re-approve the scopes, then retry the deploy.\n\n### First project-app deploy fails: \"your workspace has reached its app limit\"\n\nThe selected workspace (`cloud.workspace_id`) is at its app cap. Either upgrade the workspace plan or delete unused apps in the Webflow dashboard, then retry.\n\n### First project-app deploy fails with workspace-not-found \u002F 404\n\nThe workspace ID (from `--workspace-id` flag, or `cloud.workspace_id` in `webflow.json`) no longer resolves — workspace deleted, or token has no access. The CLI doesn't validate the flag up front: it trusts the value and surfaces the 404 from `createCloudApp`. Fixes:\n\n- Pass `--workspace-id \u003Ccorrect-id>` to `cloud init` or `cloud deploy`.\n- Or delete `cloud.workspace_id` from `webflow.json` and either re-run `cloud init --new --workspace-id \u003Cid>` (empty directory) or run `webflow cloud deploy` interactively (existing project) so the preflight prompt re-seeds the workspace ID.\n\n### `ENVIRONMENT_MOUNT_MISMATCH`\n\nThe `--mount` value does not match the path registered for that environment. Check the Webflow dashboard under the project's environment settings for the correct mount path and pass it explicitly.\n\n### Framework cannot be detected \u002F explicit framework required\n\nA `webflow.json` that has a `cloud` block but no `framework` key does not throw — the CLI falls back to detecting from `package.json`. The legacy error _\"webflow.json exists but doesn't contain valid framework information\"_ only fires when `cloud.framework` is explicitly set to an unsupported value.\n\nIf framework detection still fails (monorepo, missing framework dependency, ambiguous setup), fix it with the new `--framework` flag on `cloud deploy`:\n\n```bash\nwebflow cloud deploy --no-input --framework nextjs --mount \u002Fapp --environment main ...\n```\n\nThis writes `cloud.framework` back into `webflow.json` so subsequent deploys don't need the flag. Or just edit the manifest manually:\n\n```json\n{\n  \"cloud\": {\n    \"framework\": \"nextjs\"\n  }\n}\n```\n\nValid values: `nextjs`, `astro`. Any other value exits with code 1.\n\n### Build fails, need full trace\n\n```bash\nwebflow log\n```\n\nPrints the path to the latest log file with the full error trace.\n",{"data":41,"body":42},{"name":5,"description":7},{"type":43,"children":44},"root",[45,54,75,82,89,118,123,172,177,183,188,269,277,388,392,752,755,768,778,786,791,902,914,1005,1017,1020,1027,1061,1071,1095,1105,1120,1263,1295,1329,1343,1469,1479,1489,1499,1522,1584,1626,1636,1639,1645,2087,2100,2120,2157,2162,2226,2246,2739,2754,2757,2770,2775,2938,2953,2956,2969,2981,3049,3315,3328,3334,3402,3408,3438,3487,3499,3518,3608,3639,3696,3701,3770,3822,3863,3869,4140,4174,4377,4425,4438,4532,4544,4550,4556,4579,4592,4598,4614,4623,4755,4760,5045,5083,5094,5103,5221,5249,5467,5523,5607,5613,5658,5663,5680,5883,5888,5935,6012,6045,6096,6108,6116,6128,6186,6191,6199,6207,6220,6228,6233,6318,6329,6824,6918,6924,7011,7030,7082,7088,7171,7177,7189,7199,7208,7213,7223,7232,7257,7270,7279,7285,7291,7303,7502,7511,7517,7718,7724,7818,7824,8254,8260,8360,8366,8503,8509,8515,8547,8552,8615,8621,8639,8645,8664,8670,8682,8747,8768,8774,8801,8807,8835,8841,8914,8919,8925,9004,9010,9026,9044,9060,9168,9180,9191,9203,9252,9258,9298,9335,9372,9452,9460,9556,9562,9586,9619,9625,9689,9713,9725,9744,9750,9762,9768,9800,9859,9868,9880,9886,9933,9951,10006,10025,10107,10125,10131,10149,10154],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"webflow-cloud",[51],{"type":52,"value":53},"text","Webflow Cloud",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58,60,66,68,73],{"type":52,"value":59},"Initialize new projects from templates and deploy to Webflow Cloud. Supports two modes: ",{"type":46,"tag":61,"props":62,"children":63},"strong",{},[64],{"type":52,"value":65},"site-attached",{"type":52,"value":67}," (deploy to an existing Webflow site) and ",{"type":46,"tag":61,"props":69,"children":70},{},[71],{"type":52,"value":72},"project app",{"type":52,"value":74}," (deploy as an independent project, no existing site required).",{"type":46,"tag":76,"props":77,"children":79},"h2",{"id":78},"instructions",[80],{"type":52,"value":81},"Instructions",{"type":46,"tag":83,"props":84,"children":86},"h3",{"id":85},"step-0-verify-cli-is-installed",[87],{"type":52,"value":88},"Step 0: Verify CLI is installed",{"type":46,"tag":90,"props":91,"children":96},"pre",{"className":92,"code":93,"language":94,"meta":95,"style":95},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","webflow --version\n","bash","",[97],{"type":46,"tag":98,"props":99,"children":100},"code",{"__ignoreMap":95},[101],{"type":46,"tag":102,"props":103,"children":106},"span",{"class":104,"line":105},"line",1,[107,112],{"type":46,"tag":102,"props":108,"children":110},{"style":109},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[111],{"type":52,"value":9},{"type":46,"tag":102,"props":113,"children":115},{"style":114},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[116],{"type":52,"value":117}," --version\n",{"type":46,"tag":55,"props":119,"children":120},{},[121],{"type":52,"value":122},"If the command is not found, install it:",{"type":46,"tag":90,"props":124,"children":126},{"className":92,"code":125,"language":94,"meta":95,"style":95},"npm install -g @webflow\u002Fwebflow-cli@latest\n# or yarn global add @webflow\u002Fwebflow-cli@latest\n# or pnpm add -g @webflow\u002Fwebflow-cli@latest\n",[127],{"type":46,"tag":98,"props":128,"children":129},{"__ignoreMap":95},[130,153,163],{"type":46,"tag":102,"props":131,"children":132},{"class":104,"line":105},[133,138,143,148],{"type":46,"tag":102,"props":134,"children":135},{"style":109},[136],{"type":52,"value":137},"npm",{"type":46,"tag":102,"props":139,"children":140},{"style":114},[141],{"type":52,"value":142}," install",{"type":46,"tag":102,"props":144,"children":145},{"style":114},[146],{"type":52,"value":147}," -g",{"type":46,"tag":102,"props":149,"children":150},{"style":114},[151],{"type":52,"value":152}," @webflow\u002Fwebflow-cli@latest\n",{"type":46,"tag":102,"props":154,"children":156},{"class":104,"line":155},2,[157],{"type":46,"tag":102,"props":158,"children":160},{"style":159},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[161],{"type":52,"value":162},"# or yarn global add @webflow\u002Fwebflow-cli@latest\n",{"type":46,"tag":102,"props":164,"children":166},{"class":104,"line":165},3,[167],{"type":46,"tag":102,"props":168,"children":169},{"style":159},[170],{"type":52,"value":171},"# or pnpm add -g @webflow\u002Fwebflow-cli@latest\n",{"type":46,"tag":55,"props":173,"children":174},{},[175],{"type":52,"value":176},"Then proceed to state detection.",{"type":46,"tag":83,"props":178,"children":180},{"id":179},"step-1-detect-project-state",[181],{"type":52,"value":182},"Step 1: Detect project state",{"type":46,"tag":55,"props":184,"children":185},{},[186],{"type":52,"value":187},"Run both checks before deciding which path to follow:",{"type":46,"tag":90,"props":189,"children":191},{"className":92,"code":190,"language":94,"meta":95,"style":95},"# Is this project already set up on Webflow Cloud?\ncat webflow.json\n\n# Is there a git remote?\ngit remote get-url origin 2>\u002Fdev\u002Fnull\n",[192],{"type":46,"tag":98,"props":193,"children":194},{"__ignoreMap":95},[195,203,216,225,234],{"type":46,"tag":102,"props":196,"children":197},{"class":104,"line":105},[198],{"type":46,"tag":102,"props":199,"children":200},{"style":159},[201],{"type":52,"value":202},"# Is this project already set up on Webflow Cloud?\n",{"type":46,"tag":102,"props":204,"children":205},{"class":104,"line":155},[206,211],{"type":46,"tag":102,"props":207,"children":208},{"style":109},[209],{"type":52,"value":210},"cat",{"type":46,"tag":102,"props":212,"children":213},{"style":114},[214],{"type":52,"value":215}," webflow.json\n",{"type":46,"tag":102,"props":217,"children":218},{"class":104,"line":165},[219],{"type":46,"tag":102,"props":220,"children":222},{"emptyLinePlaceholder":221},true,[223],{"type":52,"value":224},"\n",{"type":46,"tag":102,"props":226,"children":228},{"class":104,"line":227},4,[229],{"type":46,"tag":102,"props":230,"children":231},{"style":159},[232],{"type":52,"value":233},"# Is there a git remote?\n",{"type":46,"tag":102,"props":235,"children":237},{"class":104,"line":236},5,[238,243,248,253,258,264],{"type":46,"tag":102,"props":239,"children":240},{"style":109},[241],{"type":52,"value":242},"git",{"type":46,"tag":102,"props":244,"children":245},{"style":114},[246],{"type":52,"value":247}," remote",{"type":46,"tag":102,"props":249,"children":250},{"style":114},[251],{"type":52,"value":252}," get-url",{"type":46,"tag":102,"props":254,"children":255},{"style":114},[256],{"type":52,"value":257}," origin",{"type":46,"tag":102,"props":259,"children":261},{"style":260},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[262],{"type":52,"value":263}," 2>",{"type":46,"tag":102,"props":265,"children":266},{"style":114},[267],{"type":52,"value":268},"\u002Fdev\u002Fnull\n",{"type":46,"tag":55,"props":270,"children":271},{},[272],{"type":46,"tag":61,"props":273,"children":274},{},[275],{"type":52,"value":276},"Quick reference:",{"type":46,"tag":278,"props":279,"children":280},"table",{},[281,317],{"type":46,"tag":282,"props":283,"children":284},"thead",{},[285],{"type":46,"tag":286,"props":287,"children":288},"tr",{},[289,307,312],{"type":46,"tag":290,"props":291,"children":292},"th",{},[293,299,301],{"type":46,"tag":98,"props":294,"children":296},{"className":295},[],[297],{"type":52,"value":298},"cloud.project_id",{"type":52,"value":300}," in ",{"type":46,"tag":98,"props":302,"children":304},{"className":303},[],[305],{"type":52,"value":306},"webflow.json",{"type":46,"tag":290,"props":308,"children":309},{},[310],{"type":52,"value":311},"git remote",{"type":46,"tag":290,"props":313,"children":314},{},[315],{"type":52,"value":316},"→ Path",{"type":46,"tag":318,"props":319,"children":320},"tbody",{},[321,345,367],{"type":46,"tag":286,"props":322,"children":323},{},[324,330,335],{"type":46,"tag":325,"props":326,"children":327},"td",{},[328],{"type":52,"value":329},"No",{"type":46,"tag":325,"props":331,"children":332},{},[333],{"type":52,"value":334},"—",{"type":46,"tag":325,"props":336,"children":337},{},[338,343],{"type":46,"tag":61,"props":339,"children":340},{},[341],{"type":52,"value":342},"A",{"type":52,"value":344}," — new project",{"type":46,"tag":286,"props":346,"children":347},{},[348,353,357],{"type":46,"tag":325,"props":349,"children":350},{},[351],{"type":52,"value":352},"Yes",{"type":46,"tag":325,"props":354,"children":355},{},[356],{"type":52,"value":329},{"type":46,"tag":325,"props":358,"children":359},{},[360,365],{"type":46,"tag":61,"props":361,"children":362},{},[363],{"type":52,"value":364},"B",{"type":52,"value":366}," — existing project, no git",{"type":46,"tag":286,"props":368,"children":369},{},[370,374,378],{"type":46,"tag":325,"props":371,"children":372},{},[373],{"type":52,"value":352},{"type":46,"tag":325,"props":375,"children":376},{},[377],{"type":52,"value":352},{"type":46,"tag":325,"props":379,"children":380},{},[381,386],{"type":46,"tag":61,"props":382,"children":383},{},[384],{"type":52,"value":385},"C",{"type":52,"value":387}," — ideal state",{"type":46,"tag":389,"props":390,"children":391},"hr",{},[],{"type":46,"tag":393,"props":394,"children":395},"blockquote",{},[396,422,440,562,610,715],{"type":46,"tag":55,"props":397,"children":398},{},[399,404,406,412,414,420],{"type":46,"tag":61,"props":400,"children":401},{},[402],{"type":52,"value":403},"You are running without a TTY.",{"type":52,"value":405}," The CLI's interactive prompts only fire when ",{"type":46,"tag":98,"props":407,"children":409},{"className":408},[],[410],{"type":52,"value":411},"process.stdin.isTTY",{"type":52,"value":413}," is true. As an agent invoking the CLI through a subprocess, you do not have a TTY — every prompt is silently skipped, and any required value that wasn't passed as a flag triggers a hard error like ",{"type":46,"tag":98,"props":415,"children":417},{"className":416},[],[418],{"type":52,"value":419},"--project-name cannot be empty",{"type":52,"value":421},".",{"type":46,"tag":55,"props":423,"children":424},{},[425,430,432,438],{"type":46,"tag":61,"props":426,"children":427},{},[428],{"type":52,"value":429},"Rule for every command in this skill:",{"type":52,"value":431}," pass all required flags explicitly. Never rely on prompts. Pass ",{"type":46,"tag":98,"props":433,"children":435},{"className":434},[],[436],{"type":52,"value":437},"--no-input",{"type":52,"value":439}," when the CLI accepts it to make this contract explicit. The required flag set per command:",{"type":46,"tag":278,"props":441,"children":442},{},[443,459],{"type":46,"tag":282,"props":444,"children":445},{},[446],{"type":46,"tag":286,"props":447,"children":448},{},[449,454],{"type":46,"tag":290,"props":450,"children":451},{},[452],{"type":52,"value":453},"Command",{"type":46,"tag":290,"props":455,"children":456},{},[457],{"type":52,"value":458},"Always pass",{"type":46,"tag":318,"props":460,"children":461},{},[462,485,508,540],{"type":46,"tag":286,"props":463,"children":464},{},[465,476],{"type":46,"tag":325,"props":466,"children":467},{},[468,474],{"type":46,"tag":98,"props":469,"children":471},{"className":470},[],[472],{"type":52,"value":473},"cloud init",{"type":52,"value":475}," (site-attached)",{"type":46,"tag":325,"props":477,"children":478},{},[479],{"type":46,"tag":98,"props":480,"children":482},{"className":481},[],[483],{"type":52,"value":484},"--no-input --project-name \u003C3–39 chars> --framework \u003Castro|nextjs> --mount \u003Cpath> --site-id \u003Cid>",{"type":46,"tag":286,"props":486,"children":487},{},[488,499],{"type":46,"tag":325,"props":489,"children":490},{},[491,497],{"type":46,"tag":98,"props":492,"children":494},{"className":493},[],[495],{"type":52,"value":496},"cloud init --new",{"type":52,"value":498}," (app)",{"type":46,"tag":325,"props":500,"children":501},{},[502],{"type":46,"tag":98,"props":503,"children":505},{"className":504},[],[506],{"type":52,"value":507},"--no-input --project-name \u003C3–39 chars> --framework \u003Castro|nextjs> --workspace-id \u003Cid>",{"type":46,"tag":286,"props":509,"children":510},{},[511,521],{"type":46,"tag":325,"props":512,"children":513},{},[514,520],{"type":46,"tag":98,"props":515,"children":517},{"className":516},[],[518],{"type":52,"value":519},"cloud deploy",{"type":52,"value":475},{"type":46,"tag":325,"props":522,"children":523},{},[524,530,532,538],{"type":46,"tag":98,"props":525,"children":527},{"className":526},[],[528],{"type":52,"value":529},"--no-input --mount \u003Cpath> --environment \u003Cenv> --site-id \u003Cid>",{"type":52,"value":531}," plus ",{"type":46,"tag":98,"props":533,"children":535},{"className":534},[],[536],{"type":52,"value":537},"--project-name",{"type":52,"value":539}," on first deploy",{"type":46,"tag":286,"props":541,"children":542},{},[543,553],{"type":46,"tag":325,"props":544,"children":545},{},[546,551],{"type":46,"tag":98,"props":547,"children":549},{"className":548},[],[550],{"type":52,"value":519},{"type":52,"value":552}," (project app, first deploy)",{"type":46,"tag":325,"props":554,"children":555},{},[556],{"type":46,"tag":98,"props":557,"children":559},{"className":558},[],[560],{"type":52,"value":561},"--no-input --mount \u003Cpath> --environment \u003Cenv> --workspace-id \u003Cid> --project-name \u003Cname>",{"type":46,"tag":55,"props":563,"children":564},{},[565,571,573,579,580,586,588,594,596,601,603,608],{"type":46,"tag":98,"props":566,"children":568},{"className":567},[],[569],{"type":52,"value":570},"--site-id",{"type":52,"value":572},", ",{"type":46,"tag":98,"props":574,"children":576},{"className":575},[],[577],{"type":52,"value":578},"--project-id",{"type":52,"value":572},{"type":46,"tag":98,"props":581,"children":583},{"className":582},[],[584],{"type":52,"value":585},"--framework",{"type":52,"value":587},", and ",{"type":46,"tag":98,"props":589,"children":591},{"className":590},[],[592],{"type":52,"value":593},"--workspace-id",{"type":52,"value":595}," on ",{"type":46,"tag":98,"props":597,"children":599},{"className":598},[],[600],{"type":52,"value":519},{"type":52,"value":602}," let agents override what's in ",{"type":46,"tag":98,"props":604,"children":606},{"className":605},[],[607],{"type":52,"value":306},{"type":52,"value":609}," at deploy time.",{"type":46,"tag":55,"props":611,"children":612},{},[613,618,620,625,627,632,634,640,642,648,650,655,657,662,664,669,671,676,678,683,685,691,693,698,700,705,707,714],{"type":46,"tag":61,"props":614,"children":615},{},[616],{"type":52,"value":617},"Multi-workspace tokens used to be an agent-fatal hang",{"type":52,"value":619}," because workspace selection had no non-TTY path. Now pass ",{"type":46,"tag":98,"props":621,"children":623},{"className":622},[],[624],{"type":52,"value":593},{"type":52,"value":626}," to skip the picker. ",{"type":46,"tag":61,"props":628,"children":629},{},[630],{"type":52,"value":631},"The workspace ID is not surfaced anywhere in the Webflow dashboard UI",{"type":52,"value":633}," — users can't look it up by hand. If the agent doesn't have it, ask the user to run ",{"type":46,"tag":98,"props":635,"children":637},{"className":636},[],[638],{"type":52,"value":639},"webflow cloud deploy",{"type":52,"value":641}," interactively once from inside their project. The preflight prompts for workspace selection and writes ",{"type":46,"tag":98,"props":643,"children":645},{"className":644},[],[646],{"type":52,"value":647},"cloud.workspace_id",{"type":52,"value":649}," to ",{"type":46,"tag":98,"props":651,"children":653},{"className":652},[],[654],{"type":52,"value":306},{"type":52,"value":656},"; from that point the agent can read it from the manifest and pass ",{"type":46,"tag":98,"props":658,"children":660},{"className":659},[],[661],{"type":52,"value":593},{"type":52,"value":663}," on subsequent runs. Do ",{"type":46,"tag":61,"props":665,"children":666},{},[667],{"type":52,"value":668},"not",{"type":52,"value":670}," suggest ",{"type":46,"tag":98,"props":672,"children":674},{"className":673},[],[675],{"type":52,"value":496},{"type":52,"value":677}," for ID discovery — on an existing project it creates a discarded scratch directory. ",{"type":46,"tag":61,"props":679,"children":680},{},[681],{"type":52,"value":682},"Exception:",{"type":52,"value":684}," in Path A2 (empty directory) it ",{"type":46,"tag":686,"props":687,"children":688},"em",{},[689],{"type":52,"value":690},"is",{"type":52,"value":692}," safe to try ",{"type":46,"tag":98,"props":694,"children":696},{"className":695},[],[697],{"type":52,"value":496},{"type":52,"value":699}," without ",{"type":46,"tag":98,"props":701,"children":703},{"className":702},[],[704],{"type":52,"value":593},{"type":52,"value":706}," to auto-resolve a single-workspace token — see ",{"type":46,"tag":708,"props":709,"children":711},"a",{"href":710},"#path-a2-empty-directory-scaffold-from-scratch",[712],{"type":52,"value":713},"Path A2",{"type":52,"value":421},{"type":46,"tag":55,"props":716,"children":717},{},[718,723,725,730,732,738,740,750],{"type":46,"tag":61,"props":719,"children":720},{},[721],{"type":52,"value":722},"Site IDs are visible in the dashboard.",{"type":52,"value":724}," When ",{"type":46,"tag":98,"props":726,"children":728},{"className":727},[],[729],{"type":52,"value":570},{"type":52,"value":731}," is needed but unknown, do not ask the user for a raw ",{"type":46,"tag":98,"props":733,"children":735},{"className":734},[],[736],{"type":52,"value":737},"site_XXXX",{"type":52,"value":739}," value — use ",{"type":46,"tag":708,"props":741,"children":743},{"href":742},"#picking-a-site-id-from-a-list",[744],{"type":46,"tag":98,"props":745,"children":747},{"className":746},[],[748],{"type":52,"value":749},"webflow sites list",{"type":52,"value":751}," to fetch their sites and present a picker keyed by display name. Users can still check their dashboard to fetch it.",{"type":46,"tag":389,"props":753,"children":754},{},[],{"type":46,"tag":83,"props":756,"children":758},{"id":757},"path-a-no-project_id-new-project",[759,761,767],{"type":52,"value":760},"Path A: No ",{"type":46,"tag":98,"props":762,"children":764},{"className":763},[],[765],{"type":52,"value":766},"project_id",{"type":52,"value":344},{"type":46,"tag":55,"props":769,"children":770},{},[771,773],{"type":52,"value":772},"The project has not been deployed yet. ",{"type":46,"tag":61,"props":774,"children":775},{},[776],{"type":52,"value":777},"Before doing anything else, ask the user one question:",{"type":46,"tag":393,"props":779,"children":780},{},[781],{"type":46,"tag":55,"props":782,"children":783},{},[784],{"type":52,"value":785},"\"Do you already have source code for this project (an existing Next.js or Astro codebase), or are you starting from an empty directory and want a Webflow starter scaffold?\"",{"type":46,"tag":55,"props":787,"children":788},{},[789],{"type":52,"value":790},"That answer chooses the branch — and they're meaningfully different:",{"type":46,"tag":278,"props":792,"children":793},{},[794,815],{"type":46,"tag":282,"props":795,"children":796},{},[797],{"type":46,"tag":286,"props":798,"children":799},{},[800,805,810],{"type":46,"tag":290,"props":801,"children":802},{},[803],{"type":52,"value":804},"User has...",{"type":46,"tag":290,"props":806,"children":807},{},[808],{"type":52,"value":809},"Branch",{"type":46,"tag":290,"props":811,"children":812},{},[813],{"type":52,"value":814},"Init step",{"type":46,"tag":318,"props":816,"children":817},{},[818,863],{"type":46,"tag":286,"props":819,"children":820},{},[821,831,839],{"type":46,"tag":325,"props":822,"children":823},{},[824,829],{"type":46,"tag":61,"props":825,"children":826},{},[827],{"type":52,"value":828},"Existing code",{"type":52,"value":830}," (their own Next.js \u002F Astro project)",{"type":46,"tag":325,"props":832,"children":833},{},[834],{"type":46,"tag":61,"props":835,"children":836},{},[837],{"type":52,"value":838},"Path A1",{"type":46,"tag":325,"props":840,"children":841},{},[842,853,855,861],{"type":46,"tag":61,"props":843,"children":844},{},[845,847,852],{"type":52,"value":846},"Skip ",{"type":46,"tag":98,"props":848,"children":850},{"className":849},[],[851],{"type":52,"value":473},{"type":52,"value":421},{"type":52,"value":854}," It would create a ",{"type":46,"tag":98,"props":856,"children":858},{"className":857},[],[859],{"type":52,"value":860},".\u002F\u003Cproject-name>\u002F",{"type":52,"value":862}," subfolder with a hello-world scaffold inside their repo, which they don't want.",{"type":46,"tag":286,"props":864,"children":865},{},[866,876,883],{"type":46,"tag":325,"props":867,"children":868},{},[869,874],{"type":46,"tag":61,"props":870,"children":871},{},[872],{"type":52,"value":873},"Empty directory",{"type":52,"value":875}," or wants a Webflow starter",{"type":46,"tag":325,"props":877,"children":878},{},[879],{"type":46,"tag":61,"props":880,"children":881},{},[882],{"type":52,"value":713},{"type":46,"tag":325,"props":884,"children":885},{},[886,888,893,895,901],{"type":52,"value":887},"Run ",{"type":46,"tag":98,"props":889,"children":891},{"className":890},[],[892],{"type":52,"value":473},{"type":52,"value":894}," to scaffold from ",{"type":46,"tag":98,"props":896,"children":898},{"className":897},[],[899],{"type":52,"value":900},"Webflow-Examples\u002Fhello-world-*",{"type":52,"value":421},{"type":46,"tag":55,"props":903,"children":904},{},[905,907,912],{"type":52,"value":906},"After the branch decision, also ask ",{"type":46,"tag":61,"props":908,"children":909},{},[910],{"type":52,"value":911},"site-attached vs app",{"type":52,"value":913}," (only relevant before the first deploy):",{"type":46,"tag":278,"props":915,"children":916},{},[917,938],{"type":46,"tag":282,"props":918,"children":919},{},[920],{"type":46,"tag":286,"props":921,"children":922},{},[923,928,933],{"type":46,"tag":290,"props":924,"children":925},{},[926],{"type":52,"value":927},"User says...",{"type":46,"tag":290,"props":929,"children":930},{},[931],{"type":52,"value":932},"Mode",{"type":46,"tag":290,"props":934,"children":935},{},[936],{"type":52,"value":937},"Outcome",{"type":46,"tag":318,"props":939,"children":940},{},[941,976],{"type":46,"tag":286,"props":942,"children":943},{},[944,957,965],{"type":46,"tag":325,"props":945,"children":946},{},[947,949,955],{"type":52,"value":948},"\"deploy to my Webflow site ",{"type":46,"tag":98,"props":950,"children":952},{"className":951},[],[953],{"type":52,"value":954},"\u003Cname>",{"type":52,"value":956},"\", \"site-attached\", references an existing site",{"type":46,"tag":325,"props":958,"children":959},{},[960],{"type":46,"tag":61,"props":961,"children":962},{},[963],{"type":52,"value":964},"Site-attached",{"type":46,"tag":325,"props":966,"children":967},{},[968,970,975],{"type":52,"value":969},"Project is bound to an existing Webflow site; site URL hosts the app at the chosen mount path. Requires ",{"type":46,"tag":98,"props":971,"children":973},{"className":972},[],[974],{"type":52,"value":570},{"type":52,"value":421},{"type":46,"tag":286,"props":977,"children":978},{},[979,984,992],{"type":46,"tag":325,"props":980,"children":981},{},[982],{"type":52,"value":983},"\"project app\", \"standalone\", \"just an app\", \"no site\", or no existing site mentioned",{"type":46,"tag":325,"props":985,"children":986},{},[987],{"type":46,"tag":61,"props":988,"children":989},{},[990],{"type":52,"value":991},"Project app",{"type":46,"tag":325,"props":993,"children":994},{},[995,997,1003],{"type":52,"value":996},"First deploy provisions a brand-new Webflow site (",{"type":46,"tag":98,"props":998,"children":1000},{"className":999},[],[1001],{"type":52,"value":1002},"\u003Cproject-name>-\u003Chash>.webflow.io",{"type":52,"value":1004},").",{"type":46,"tag":55,"props":1006,"children":1007},{},[1008,1010,1015],{"type":52,"value":1009},"If the user is ambiguous on either question, ",{"type":46,"tag":61,"props":1011,"children":1012},{},[1013],{"type":52,"value":1014},"ask",{"type":52,"value":1016},". Do not default.",{"type":46,"tag":389,"props":1018,"children":1019},{},[],{"type":46,"tag":1021,"props":1022,"children":1024},"h4",{"id":1023},"path-a1-existing-codebase-no-webflow-cloud-config-yet",[1025],{"type":52,"value":1026},"Path A1: existing codebase, no Webflow Cloud config yet",{"type":46,"tag":55,"props":1028,"children":1029},{},[1030,1032,1037,1039,1045,1047,1052,1054,1059],{"type":52,"value":1031},"The user has working source. ",{"type":46,"tag":98,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":52,"value":519},{"type":52,"value":1038}," handles everything — framework detection runs against ",{"type":46,"tag":98,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":52,"value":1044},"package.json",{"type":52,"value":1046},", and the preflight phase resolves identity from flags or prompts the user. No ",{"type":46,"tag":98,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":52,"value":473},{"type":52,"value":1053}," needed, no ",{"type":46,"tag":98,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":52,"value":306},{"type":52,"value":1060}," to hand-write up front.",{"type":46,"tag":55,"props":1062,"children":1063},{},[1064,1069],{"type":46,"tag":61,"props":1065,"children":1066},{},[1067],{"type":52,"value":1068},"Step 1: One-time auth (human-only).",{"type":52,"value":1070}," Tell the user to run this locally; agents cannot drive the browser flow:",{"type":46,"tag":90,"props":1072,"children":1074},{"className":92,"code":1073,"language":94,"meta":95,"style":95},"webflow auth login\n",[1075],{"type":46,"tag":98,"props":1076,"children":1077},{"__ignoreMap":95},[1078],{"type":46,"tag":102,"props":1079,"children":1080},{"class":104,"line":105},[1081,1085,1090],{"type":46,"tag":102,"props":1082,"children":1083},{"style":109},[1084],{"type":52,"value":9},{"type":46,"tag":102,"props":1086,"children":1087},{"style":114},[1088],{"type":52,"value":1089}," auth",{"type":46,"tag":102,"props":1091,"children":1092},{"style":114},[1093],{"type":52,"value":1094}," login\n",{"type":46,"tag":55,"props":1096,"children":1097},{},[1098,1103],{"type":46,"tag":61,"props":1099,"children":1100},{},[1101],{"type":52,"value":1102},"Step 2: Deploy.",{"type":52,"value":1104}," The exact form depends on what the agent knows.",{"type":46,"tag":55,"props":1106,"children":1107},{},[1108],{"type":46,"tag":61,"props":1109,"children":1110},{},[1111,1113,1118],{"type":52,"value":1112},"A1-a — Site-attached, ",{"type":46,"tag":98,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":52,"value":570},{"type":52,"value":1119}," is known:",{"type":46,"tag":90,"props":1121,"children":1123},{"className":92,"code":1122,"language":94,"meta":95,"style":95},"webflow cloud deploy --no-input \\\n  --site-id site_abc123 \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --mount \u002Fapp \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[1124],{"type":46,"tag":98,"props":1125,"children":1126},{"__ignoreMap":95},[1127,1155,1172,1189,1206,1223,1241,1254],{"type":46,"tag":102,"props":1128,"children":1129},{"class":104,"line":105},[1130,1134,1139,1144,1149],{"type":46,"tag":102,"props":1131,"children":1132},{"style":109},[1133],{"type":52,"value":9},{"type":46,"tag":102,"props":1135,"children":1136},{"style":114},[1137],{"type":52,"value":1138}," cloud",{"type":46,"tag":102,"props":1140,"children":1141},{"style":114},[1142],{"type":52,"value":1143}," deploy",{"type":46,"tag":102,"props":1145,"children":1146},{"style":114},[1147],{"type":52,"value":1148}," --no-input",{"type":46,"tag":102,"props":1150,"children":1152},{"style":1151},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1153],{"type":52,"value":1154}," \\\n",{"type":46,"tag":102,"props":1156,"children":1157},{"class":104,"line":155},[1158,1163,1168],{"type":46,"tag":102,"props":1159,"children":1160},{"style":114},[1161],{"type":52,"value":1162},"  --site-id",{"type":46,"tag":102,"props":1164,"children":1165},{"style":114},[1166],{"type":52,"value":1167}," site_abc123",{"type":46,"tag":102,"props":1169,"children":1170},{"style":1151},[1171],{"type":52,"value":1154},{"type":46,"tag":102,"props":1173,"children":1174},{"class":104,"line":165},[1175,1180,1185],{"type":46,"tag":102,"props":1176,"children":1177},{"style":114},[1178],{"type":52,"value":1179},"  --project-name",{"type":46,"tag":102,"props":1181,"children":1182},{"style":114},[1183],{"type":52,"value":1184}," my-app",{"type":46,"tag":102,"props":1186,"children":1187},{"style":1151},[1188],{"type":52,"value":1154},{"type":46,"tag":102,"props":1190,"children":1191},{"class":104,"line":227},[1192,1197,1202],{"type":46,"tag":102,"props":1193,"children":1194},{"style":114},[1195],{"type":52,"value":1196},"  --framework",{"type":46,"tag":102,"props":1198,"children":1199},{"style":114},[1200],{"type":52,"value":1201}," nextjs",{"type":46,"tag":102,"props":1203,"children":1204},{"style":1151},[1205],{"type":52,"value":1154},{"type":46,"tag":102,"props":1207,"children":1208},{"class":104,"line":236},[1209,1214,1219],{"type":46,"tag":102,"props":1210,"children":1211},{"style":114},[1212],{"type":52,"value":1213},"  --mount",{"type":46,"tag":102,"props":1215,"children":1216},{"style":114},[1217],{"type":52,"value":1218}," \u002Fapp",{"type":46,"tag":102,"props":1220,"children":1221},{"style":1151},[1222],{"type":52,"value":1154},{"type":46,"tag":102,"props":1224,"children":1226},{"class":104,"line":1225},6,[1227,1232,1237],{"type":46,"tag":102,"props":1228,"children":1229},{"style":114},[1230],{"type":52,"value":1231},"  --environment",{"type":46,"tag":102,"props":1233,"children":1234},{"style":114},[1235],{"type":52,"value":1236}," main",{"type":46,"tag":102,"props":1238,"children":1239},{"style":1151},[1240],{"type":52,"value":1154},{"type":46,"tag":102,"props":1242,"children":1244},{"class":104,"line":1243},7,[1245,1250],{"type":46,"tag":102,"props":1246,"children":1247},{"style":114},[1248],{"type":52,"value":1249},"  --skip-mount-path-check",{"type":46,"tag":102,"props":1251,"children":1252},{"style":1151},[1253],{"type":52,"value":1154},{"type":46,"tag":102,"props":1255,"children":1257},{"class":104,"line":1256},8,[1258],{"type":46,"tag":102,"props":1259,"children":1260},{"style":114},[1261],{"type":52,"value":1262},"  --skip-update-check\n",{"type":46,"tag":55,"props":1264,"children":1265},{},[1266,1271,1273,1278,1280,1286,1287,1293],{"type":46,"tag":98,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":52,"value":585},{"type":52,"value":1272}," is optional if ",{"type":46,"tag":98,"props":1274,"children":1276},{"className":1275},[],[1277],{"type":52,"value":1044},{"type":52,"value":1279}," has the framework's Cloudflare adapter (",{"type":46,"tag":98,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":52,"value":1285},"@opennextjs\u002Fcloudflare",{"type":52,"value":572},{"type":46,"tag":98,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":52,"value":1292},"@astrojs\u002Fcloudflare",{"type":52,"value":1294},"). Pass it explicitly for monorepos or when auto-detection is unreliable.",{"type":46,"tag":55,"props":1296,"children":1297},{},[1298,1300,1305,1307,1311,1313,1318,1319,1327],{"type":52,"value":1299},"If the agent doesn't know the user's ",{"type":46,"tag":98,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":52,"value":570},{"type":52,"value":1306},", do ",{"type":46,"tag":61,"props":1308,"children":1309},{},[1310],{"type":52,"value":668},{"type":52,"value":1312}," ask for a raw ",{"type":46,"tag":98,"props":1314,"children":1316},{"className":1315},[],[1317],{"type":52,"value":737},{"type":52,"value":739},{"type":46,"tag":708,"props":1320,"children":1321},{"href":742},[1322],{"type":46,"tag":98,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":52,"value":749},{"type":52,"value":1328}," to fetch the user's sites and present readable display names to pick from.",{"type":46,"tag":55,"props":1330,"children":1331},{},[1332],{"type":46,"tag":61,"props":1333,"children":1334},{},[1335,1337,1342],{"type":52,"value":1336},"A1-b — Project app, ",{"type":46,"tag":98,"props":1338,"children":1340},{"className":1339},[],[1341],{"type":52,"value":593},{"type":52,"value":1119},{"type":46,"tag":90,"props":1344,"children":1346},{"className":92,"code":1345,"language":94,"meta":95,"style":95},"webflow cloud deploy --no-input \\\n  --workspace-id ws_abc123 \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[1347],{"type":46,"tag":98,"props":1348,"children":1349},{"__ignoreMap":95},[1350,1373,1390,1405,1420,1436,1451,1462],{"type":46,"tag":102,"props":1351,"children":1352},{"class":104,"line":105},[1353,1357,1361,1365,1369],{"type":46,"tag":102,"props":1354,"children":1355},{"style":109},[1356],{"type":52,"value":9},{"type":46,"tag":102,"props":1358,"children":1359},{"style":114},[1360],{"type":52,"value":1138},{"type":46,"tag":102,"props":1362,"children":1363},{"style":114},[1364],{"type":52,"value":1143},{"type":46,"tag":102,"props":1366,"children":1367},{"style":114},[1368],{"type":52,"value":1148},{"type":46,"tag":102,"props":1370,"children":1371},{"style":1151},[1372],{"type":52,"value":1154},{"type":46,"tag":102,"props":1374,"children":1375},{"class":104,"line":155},[1376,1381,1386],{"type":46,"tag":102,"props":1377,"children":1378},{"style":114},[1379],{"type":52,"value":1380},"  --workspace-id",{"type":46,"tag":102,"props":1382,"children":1383},{"style":114},[1384],{"type":52,"value":1385}," ws_abc123",{"type":46,"tag":102,"props":1387,"children":1388},{"style":1151},[1389],{"type":52,"value":1154},{"type":46,"tag":102,"props":1391,"children":1392},{"class":104,"line":165},[1393,1397,1401],{"type":46,"tag":102,"props":1394,"children":1395},{"style":114},[1396],{"type":52,"value":1179},{"type":46,"tag":102,"props":1398,"children":1399},{"style":114},[1400],{"type":52,"value":1184},{"type":46,"tag":102,"props":1402,"children":1403},{"style":1151},[1404],{"type":52,"value":1154},{"type":46,"tag":102,"props":1406,"children":1407},{"class":104,"line":227},[1408,1412,1416],{"type":46,"tag":102,"props":1409,"children":1410},{"style":114},[1411],{"type":52,"value":1196},{"type":46,"tag":102,"props":1413,"children":1414},{"style":114},[1415],{"type":52,"value":1201},{"type":46,"tag":102,"props":1417,"children":1418},{"style":1151},[1419],{"type":52,"value":1154},{"type":46,"tag":102,"props":1421,"children":1422},{"class":104,"line":236},[1423,1427,1432],{"type":46,"tag":102,"props":1424,"children":1425},{"style":114},[1426],{"type":52,"value":1213},{"type":46,"tag":102,"props":1428,"children":1429},{"style":114},[1430],{"type":52,"value":1431}," \u002F",{"type":46,"tag":102,"props":1433,"children":1434},{"style":1151},[1435],{"type":52,"value":1154},{"type":46,"tag":102,"props":1437,"children":1438},{"class":104,"line":1225},[1439,1443,1447],{"type":46,"tag":102,"props":1440,"children":1441},{"style":114},[1442],{"type":52,"value":1231},{"type":46,"tag":102,"props":1444,"children":1445},{"style":114},[1446],{"type":52,"value":1236},{"type":46,"tag":102,"props":1448,"children":1449},{"style":1151},[1450],{"type":52,"value":1154},{"type":46,"tag":102,"props":1452,"children":1453},{"class":104,"line":1243},[1454,1458],{"type":46,"tag":102,"props":1455,"children":1456},{"style":114},[1457],{"type":52,"value":1249},{"type":46,"tag":102,"props":1459,"children":1460},{"style":1151},[1461],{"type":52,"value":1154},{"type":46,"tag":102,"props":1463,"children":1464},{"class":104,"line":1256},[1465],{"type":46,"tag":102,"props":1466,"children":1467},{"style":114},[1468],{"type":52,"value":1262},{"type":46,"tag":55,"props":1470,"children":1471},{},[1472,1477],{"type":46,"tag":61,"props":1473,"children":1474},{},[1475],{"type":52,"value":1476},"A1-c — Project app, workspace ID is unknown",{"type":52,"value":1478}," (the common gap):",{"type":46,"tag":55,"props":1480,"children":1481},{},[1482,1487],{"type":46,"tag":61,"props":1483,"children":1484},{},[1485],{"type":52,"value":1486},"The workspace ID is not visible anywhere in the Webflow dashboard UI.",{"type":52,"value":1488}," Users cannot look it up by hand — the only way to discover it is to run the CLI. So the path is:",{"type":46,"tag":55,"props":1490,"children":1491},{},[1492,1497],{"type":46,"tag":61,"props":1493,"children":1494},{},[1495],{"type":52,"value":1496},"Ask the user to run one interactive deploy locally.",{"type":52,"value":1498}," From inside their project directory:",{"type":46,"tag":90,"props":1500,"children":1502},{"className":92,"code":1501,"language":94,"meta":95,"style":95},"webflow cloud deploy\n",[1503],{"type":46,"tag":98,"props":1504,"children":1505},{"__ignoreMap":95},[1506],{"type":46,"tag":102,"props":1507,"children":1508},{"class":104,"line":105},[1509,1513,1517],{"type":46,"tag":102,"props":1510,"children":1511},{"style":109},[1512],{"type":52,"value":9},{"type":46,"tag":102,"props":1514,"children":1515},{"style":114},[1516],{"type":52,"value":1138},{"type":46,"tag":102,"props":1518,"children":1519},{"style":114},[1520],{"type":52,"value":1521}," deploy\n",{"type":46,"tag":55,"props":1523,"children":1524},{},[1525,1527,1532,1534,1539,1541,1546,1548,1554,1556,1561,1562,1568,1569,1575,1577,1582],{"type":52,"value":1526},"With no ",{"type":46,"tag":98,"props":1528,"children":1530},{"className":1529},[],[1531],{"type":52,"value":437},{"type":52,"value":1533}," and no identity flags, the preflight prompts: ",{"type":46,"tag":686,"props":1535,"children":1536},{},[1537],{"type":52,"value":1538},"\"This project isn't initialized for Webflow Cloud. How would you like to deploy?\"",{"type":52,"value":1540}," → user picks \"Create a new app\" → workspace picker → done. After this one human-driven deploy, ",{"type":46,"tag":98,"props":1542,"children":1544},{"className":1543},[],[1545],{"type":52,"value":647},{"type":52,"value":1547}," and ",{"type":46,"tag":98,"props":1549,"children":1551},{"className":1550},[],[1552],{"type":52,"value":1553},"siteId",{"type":52,"value":1555}," are written to ",{"type":46,"tag":98,"props":1557,"children":1559},{"className":1558},[],[1560],{"type":52,"value":306},{"type":52,"value":1547},{"type":46,"tag":98,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":52,"value":1567},"WEBFLOW_SITE_ID",{"type":52,"value":649},{"type":46,"tag":98,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":52,"value":1574},".env",{"type":52,"value":1576},". The agent can then run all subsequent deploys with ",{"type":46,"tag":98,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":52,"value":570},{"type":52,"value":1583}," (the newly provisioned site).",{"type":46,"tag":393,"props":1585,"children":1586},{},[1587],{"type":46,"tag":55,"props":1588,"children":1589},{},[1590,1592,1596,1598,1603,1605,1610,1612,1617,1619,1624],{"type":52,"value":1591},"Do ",{"type":46,"tag":61,"props":1593,"children":1594},{},[1595],{"type":52,"value":668},{"type":52,"value":1597}," ask the user to run ",{"type":46,"tag":98,"props":1599,"children":1601},{"className":1600},[],[1602],{"type":52,"value":496},{"type":52,"value":1604}," to \"discover\" their workspace ID. On an existing project that creates a discarded ",{"type":46,"tag":98,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":52,"value":860},{"type":52,"value":1611}," scratch directory with a hello-world scaffold inside the user's repo. Use the interactive ",{"type":46,"tag":98,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":52,"value":519},{"type":52,"value":1618}," path above — it discovers the workspace ID ",{"type":46,"tag":686,"props":1620,"children":1621},{},[1622],{"type":52,"value":1623},"and",{"type":52,"value":1625}," completes the first deploy in the same step.",{"type":46,"tag":55,"props":1627,"children":1628},{},[1629,1634],{"type":46,"tag":61,"props":1630,"children":1631},{},[1632],{"type":52,"value":1633},"Step 3: Set up git",{"type":52,"value":1635}," (if not already) — same as Path A2 step 3 below.",{"type":46,"tag":389,"props":1637,"children":1638},{},[],{"type":46,"tag":1021,"props":1640,"children":1642},{"id":1641},"path-a2-empty-directory-scaffold-from-scratch",[1643],{"type":52,"value":1644},"Path A2: empty directory, scaffold from scratch",{"type":46,"tag":1646,"props":1647,"children":1648},"ol",{},[1649],{"type":46,"tag":1650,"props":1651,"children":1652},"li",{},[1653,1658,1660,1747,1842,1846,1848,1857,1859,1862,1867,1869,1874,1876,1881,1883,1895,1897,1966,2045,2048,2050,2054,2056,2061,2063,2068,2070,2073,2078,2080,2085],{"type":46,"tag":61,"props":1654,"children":1655},{},[1656],{"type":52,"value":1657},"Scaffold the project",{"type":52,"value":1659}," — pick the form that matches the user's intent:",{"type":46,"tag":90,"props":1661,"children":1663},{"className":92,"code":1662,"language":94,"meta":95,"style":95},"# Project app (no site attachment). --workspace-id avoids the multi-workspace hang.\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework astro \\\n  --workspace-id ws_abc123\n",[1664],{"type":46,"tag":98,"props":1665,"children":1666},{"__ignoreMap":95},[1667,1675,1704,1719,1735],{"type":46,"tag":102,"props":1668,"children":1669},{"class":104,"line":105},[1670],{"type":46,"tag":102,"props":1671,"children":1672},{"style":159},[1673],{"type":52,"value":1674},"# Project app (no site attachment). --workspace-id avoids the multi-workspace hang.\n",{"type":46,"tag":102,"props":1676,"children":1677},{"class":104,"line":155},[1678,1682,1686,1691,1696,1700],{"type":46,"tag":102,"props":1679,"children":1680},{"style":109},[1681],{"type":52,"value":9},{"type":46,"tag":102,"props":1683,"children":1684},{"style":114},[1685],{"type":52,"value":1138},{"type":46,"tag":102,"props":1687,"children":1688},{"style":114},[1689],{"type":52,"value":1690}," init",{"type":46,"tag":102,"props":1692,"children":1693},{"style":114},[1694],{"type":52,"value":1695}," --new",{"type":46,"tag":102,"props":1697,"children":1698},{"style":114},[1699],{"type":52,"value":1148},{"type":46,"tag":102,"props":1701,"children":1702},{"style":1151},[1703],{"type":52,"value":1154},{"type":46,"tag":102,"props":1705,"children":1706},{"class":104,"line":165},[1707,1711,1715],{"type":46,"tag":102,"props":1708,"children":1709},{"style":114},[1710],{"type":52,"value":1179},{"type":46,"tag":102,"props":1712,"children":1713},{"style":114},[1714],{"type":52,"value":1184},{"type":46,"tag":102,"props":1716,"children":1717},{"style":1151},[1718],{"type":52,"value":1154},{"type":46,"tag":102,"props":1720,"children":1721},{"class":104,"line":227},[1722,1726,1731],{"type":46,"tag":102,"props":1723,"children":1724},{"style":114},[1725],{"type":52,"value":1196},{"type":46,"tag":102,"props":1727,"children":1728},{"style":114},[1729],{"type":52,"value":1730}," astro",{"type":46,"tag":102,"props":1732,"children":1733},{"style":1151},[1734],{"type":52,"value":1154},{"type":46,"tag":102,"props":1736,"children":1737},{"class":104,"line":236},[1738,1742],{"type":46,"tag":102,"props":1739,"children":1740},{"style":114},[1741],{"type":52,"value":1380},{"type":46,"tag":102,"props":1743,"children":1744},{"style":114},[1745],{"type":52,"value":1746}," ws_abc123\n",{"type":46,"tag":90,"props":1748,"children":1750},{"className":92,"code":1749,"language":94,"meta":95,"style":95},"# Site-attached (connect to an existing Webflow site). Requires --site-id.\nwebflow cloud init --no-input \\\n  --project-name my-app \\\n  --framework astro \\\n  --mount \u002Fapp \\\n  --site-id site_abc123\n",[1751],{"type":46,"tag":98,"props":1752,"children":1753},{"__ignoreMap":95},[1754,1762,1785,1800,1815,1830],{"type":46,"tag":102,"props":1755,"children":1756},{"class":104,"line":105},[1757],{"type":46,"tag":102,"props":1758,"children":1759},{"style":159},[1760],{"type":52,"value":1761},"# Site-attached (connect to an existing Webflow site). Requires --site-id.\n",{"type":46,"tag":102,"props":1763,"children":1764},{"class":104,"line":155},[1765,1769,1773,1777,1781],{"type":46,"tag":102,"props":1766,"children":1767},{"style":109},[1768],{"type":52,"value":9},{"type":46,"tag":102,"props":1770,"children":1771},{"style":114},[1772],{"type":52,"value":1138},{"type":46,"tag":102,"props":1774,"children":1775},{"style":114},[1776],{"type":52,"value":1690},{"type":46,"tag":102,"props":1778,"children":1779},{"style":114},[1780],{"type":52,"value":1148},{"type":46,"tag":102,"props":1782,"children":1783},{"style":1151},[1784],{"type":52,"value":1154},{"type":46,"tag":102,"props":1786,"children":1787},{"class":104,"line":165},[1788,1792,1796],{"type":46,"tag":102,"props":1789,"children":1790},{"style":114},[1791],{"type":52,"value":1179},{"type":46,"tag":102,"props":1793,"children":1794},{"style":114},[1795],{"type":52,"value":1184},{"type":46,"tag":102,"props":1797,"children":1798},{"style":1151},[1799],{"type":52,"value":1154},{"type":46,"tag":102,"props":1801,"children":1802},{"class":104,"line":227},[1803,1807,1811],{"type":46,"tag":102,"props":1804,"children":1805},{"style":114},[1806],{"type":52,"value":1196},{"type":46,"tag":102,"props":1808,"children":1809},{"style":114},[1810],{"type":52,"value":1730},{"type":46,"tag":102,"props":1812,"children":1813},{"style":1151},[1814],{"type":52,"value":1154},{"type":46,"tag":102,"props":1816,"children":1817},{"class":104,"line":236},[1818,1822,1826],{"type":46,"tag":102,"props":1819,"children":1820},{"style":114},[1821],{"type":52,"value":1213},{"type":46,"tag":102,"props":1823,"children":1824},{"style":114},[1825],{"type":52,"value":1218},{"type":46,"tag":102,"props":1827,"children":1828},{"style":1151},[1829],{"type":52,"value":1154},{"type":46,"tag":102,"props":1831,"children":1832},{"class":104,"line":1225},[1833,1837],{"type":46,"tag":102,"props":1834,"children":1835},{"style":114},[1836],{"type":52,"value":1162},{"type":46,"tag":102,"props":1838,"children":1839},{"style":114},[1840],{"type":52,"value":1841}," site_abc123\n",{"type":46,"tag":1843,"props":1844,"children":1845},"br",{},[],{"type":52,"value":1847},"See ",{"type":46,"tag":708,"props":1849,"children":1851},{"href":1850},"#webflow-cloud-init",[1852],{"type":46,"tag":98,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":52,"value":473},{"type":52,"value":1858}," for all flags.",{"type":46,"tag":1843,"props":1860,"children":1861},{},[],{"type":46,"tag":61,"props":1863,"children":1864},{},[1865],{"type":52,"value":1866},"Workspace ID discovery for project apps in Path A2 only:",{"type":52,"value":1868}," because Path A2 starts from an empty directory, ",{"type":46,"tag":98,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":52,"value":496},{"type":52,"value":1875}," creates a fresh scaffold either way — there's nothing to pollute. So if the agent doesn't have ",{"type":46,"tag":98,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":52,"value":593},{"type":52,"value":1882},", it's safe to ",{"type":46,"tag":61,"props":1884,"children":1885},{},[1886,1888,1893],{"type":52,"value":1887},"try ",{"type":46,"tag":98,"props":1889,"children":1891},{"className":1890},[],[1892],{"type":52,"value":496},{"type":52,"value":1894}," without it first",{"type":52,"value":1896},":",{"type":46,"tag":90,"props":1898,"children":1900},{"className":92,"code":1899,"language":94,"meta":95,"style":95},"# Try this first if --workspace-id is unknown (Path A2 only — empty dir)\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework astro\n",[1901],{"type":46,"tag":98,"props":1902,"children":1903},{"__ignoreMap":95},[1904,1912,1939,1954],{"type":46,"tag":102,"props":1905,"children":1906},{"class":104,"line":105},[1907],{"type":46,"tag":102,"props":1908,"children":1909},{"style":159},[1910],{"type":52,"value":1911},"# Try this first if --workspace-id is unknown (Path A2 only — empty dir)\n",{"type":46,"tag":102,"props":1913,"children":1914},{"class":104,"line":155},[1915,1919,1923,1927,1931,1935],{"type":46,"tag":102,"props":1916,"children":1917},{"style":109},[1918],{"type":52,"value":9},{"type":46,"tag":102,"props":1920,"children":1921},{"style":114},[1922],{"type":52,"value":1138},{"type":46,"tag":102,"props":1924,"children":1925},{"style":114},[1926],{"type":52,"value":1690},{"type":46,"tag":102,"props":1928,"children":1929},{"style":114},[1930],{"type":52,"value":1695},{"type":46,"tag":102,"props":1932,"children":1933},{"style":114},[1934],{"type":52,"value":1148},{"type":46,"tag":102,"props":1936,"children":1937},{"style":1151},[1938],{"type":52,"value":1154},{"type":46,"tag":102,"props":1940,"children":1941},{"class":104,"line":165},[1942,1946,1950],{"type":46,"tag":102,"props":1943,"children":1944},{"style":114},[1945],{"type":52,"value":1179},{"type":46,"tag":102,"props":1947,"children":1948},{"style":114},[1949],{"type":52,"value":1184},{"type":46,"tag":102,"props":1951,"children":1952},{"style":1151},[1953],{"type":52,"value":1154},{"type":46,"tag":102,"props":1955,"children":1956},{"class":104,"line":227},[1957,1961],{"type":46,"tag":102,"props":1958,"children":1959},{"style":114},[1960],{"type":52,"value":1196},{"type":46,"tag":102,"props":1962,"children":1963},{"style":114},[1964],{"type":52,"value":1965}," astro\n",{"type":46,"tag":1967,"props":1968,"children":1969},"ul",{},[1970,2006],{"type":46,"tag":1650,"props":1971,"children":1972},{},[1973,1978,1980,1985,1986,1991,1993,1998,1999,2004],{"type":46,"tag":61,"props":1974,"children":1975},{},[1976],{"type":52,"value":1977},"Single-workspace tokens:",{"type":52,"value":1979}," the CLI auto-selects the only workspace, writes ",{"type":46,"tag":98,"props":1981,"children":1983},{"className":1982},[],[1984],{"type":52,"value":647},{"type":52,"value":649},{"type":46,"tag":98,"props":1987,"children":1989},{"className":1988},[],[1990],{"type":52,"value":306},{"type":52,"value":1992},", and exits 0. Read it back from the manifest and pass it as ",{"type":46,"tag":98,"props":1994,"children":1996},{"className":1995},[],[1997],{"type":52,"value":593},{"type":52,"value":649},{"type":46,"tag":98,"props":2000,"children":2002},{"className":2001},[],[2003],{"type":52,"value":519},{"type":52,"value":2005}," in step 2.",{"type":46,"tag":1650,"props":2007,"children":2008},{},[2009,2014,2016,2021,2023,2029,2031,2037,2039,2044],{"type":46,"tag":61,"props":2010,"children":2011},{},[2012],{"type":52,"value":2013},"Multi-workspace tokens:",{"type":52,"value":2015}," the workspace picker fires and the command hangs (no TTY). ",{"type":46,"tag":61,"props":2017,"children":2018},{},[2019],{"type":52,"value":2020},"Set a 30-second timeout on the Bash call",{"type":52,"value":2022}," (or wrap the command in ",{"type":46,"tag":98,"props":2024,"children":2026},{"className":2025},[],[2027],{"type":52,"value":2028},"timeout 30s ...",{"type":52,"value":2030},") — a successful single-workspace init completes in 10–20 seconds (OAuth check + ",{"type":46,"tag":98,"props":2032,"children":2034},{"className":2033},[],[2035],{"type":52,"value":2036},"GET \u002Fv2\u002Fworkspaces",{"type":52,"value":2038}," + scaffold download from GitHub), so anything past 30s with no output is the picker hanging. Once the timeout fires, ask the user for the workspace ID directly and re-run with ",{"type":46,"tag":98,"props":2040,"children":2042},{"className":2041},[],[2043],{"type":52,"value":593},{"type":52,"value":421},{"type":46,"tag":1843,"props":2046,"children":2047},{},[],{"type":52,"value":2049},"For ",{"type":46,"tag":61,"props":2051,"children":2052},{},[2053],{"type":52,"value":65},{"type":52,"value":2055}," in Path A2, there is no equivalent auto-discovery — ",{"type":46,"tag":98,"props":2057,"children":2059},{"className":2058},[],[2060],{"type":52,"value":570},{"type":52,"value":2062}," is always required up front. Use the ",{"type":46,"tag":708,"props":2064,"children":2065},{"href":742},[2066],{"type":52,"value":2067},"site picker",{"type":52,"value":2069}," pattern below to help the user pick.",{"type":46,"tag":1843,"props":2071,"children":2072},{},[],{"type":46,"tag":61,"props":2074,"children":2075},{},[2076],{"type":52,"value":2077},"Path A1 (existing codebase) does not get this trick.",{"type":52,"value":2079}," Running ",{"type":46,"tag":98,"props":2081,"children":2083},{"className":2082},[],[2084],{"type":52,"value":496},{"type":52,"value":2086}," in an existing project creates a discarded scratch subdirectory. The Path A1 workspace-ID discovery path stays as documented in Path A1-c.",{"type":46,"tag":1021,"props":2088,"children":2090},{"id":2089},"picking-a-site-id-from-a-list",[2091,2093,2098],{"type":52,"value":2092},"Picking a ",{"type":46,"tag":98,"props":2094,"children":2096},{"className":2095},[],[2097],{"type":52,"value":570},{"type":52,"value":2099}," from a list",{"type":46,"tag":55,"props":2101,"children":2102},{},[2103,2105,2110,2112,2118],{"type":52,"value":2104},"When ",{"type":46,"tag":98,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":52,"value":570},{"type":52,"value":2111}," is needed (Path A1 site-attached, Path A2 site-attached, or anywhere else) and the user hasn't given one, use ",{"type":46,"tag":98,"props":2113,"children":2115},{"className":2114},[],[2116],{"type":52,"value":2117},"webflow sites list --json",{"type":52,"value":2119}," to enumerate sites the token can see, then present a short list of readable names for the user to choose from. The site ID is visible in the Webflow dashboard URL config, but a numeric-ID prompt is bad UX; surface display names instead unless asked for IDs.",{"type":46,"tag":90,"props":2121,"children":2123},{"className":92,"code":2122,"language":94,"meta":95,"style":95},"# Returns a JSON array of sites with id, displayName, lastPublished, etc.\nwebflow sites list --json\n",[2124],{"type":46,"tag":98,"props":2125,"children":2126},{"__ignoreMap":95},[2127,2135],{"type":46,"tag":102,"props":2128,"children":2129},{"class":104,"line":105},[2130],{"type":46,"tag":102,"props":2131,"children":2132},{"style":159},[2133],{"type":52,"value":2134},"# Returns a JSON array of sites with id, displayName, lastPublished, etc.\n",{"type":46,"tag":102,"props":2136,"children":2137},{"class":104,"line":155},[2138,2142,2147,2152],{"type":46,"tag":102,"props":2139,"children":2140},{"style":109},[2141],{"type":52,"value":9},{"type":46,"tag":102,"props":2143,"children":2144},{"style":114},[2145],{"type":52,"value":2146}," sites",{"type":46,"tag":102,"props":2148,"children":2149},{"style":114},[2150],{"type":52,"value":2151}," list",{"type":46,"tag":102,"props":2153,"children":2154},{"style":114},[2155],{"type":52,"value":2156}," --json\n",{"type":46,"tag":55,"props":2158,"children":2159},{},[2160],{"type":52,"value":2161},"Workflow:",{"type":46,"tag":1646,"props":2163,"children":2164},{},[2165,2176,2207],{"type":46,"tag":1650,"props":2166,"children":2167},{},[2168,2169,2174],{"type":52,"value":887},{"type":46,"tag":98,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":52,"value":2117},{"type":52,"value":2175},". The CLI exits 0 with a JSON array.",{"type":46,"tag":1650,"props":2177,"children":2178},{},[2179,2181,2187,2189,2195,2197],{"type":52,"value":2180},"Parse the output. Show the user a short list keyed by ",{"type":46,"tag":98,"props":2182,"children":2184},{"className":2183},[],[2185],{"type":52,"value":2186},"displayName",{"type":52,"value":2188}," (and ",{"type":46,"tag":98,"props":2190,"children":2192},{"className":2191},[],[2193],{"type":52,"value":2194},"lastPublished",{"type":52,"value":2196}," if the user has many sites). Example:",{"type":46,"tag":90,"props":2198,"children":2202},{"className":2199,"code":2201,"language":52},[2200],"language-text","Which site should this project deploy to?\n\n1. Acme Marketing  (last published 2 days ago)\n2. Acme Docs       (last published 3 weeks ago)\n3. Acme Internal   (never published)\n",[2203],{"type":46,"tag":98,"props":2204,"children":2205},{"__ignoreMap":95},[2206],{"type":52,"value":2201},{"type":46,"tag":1650,"props":2208,"children":2209},{},[2210,2212,2218,2220,2225],{"type":52,"value":2211},"Map the user's pick back to its ",{"type":46,"tag":98,"props":2213,"children":2215},{"className":2214},[],[2216],{"type":52,"value":2217},"id",{"type":52,"value":2219}," field. Pass that as ",{"type":46,"tag":98,"props":2221,"children":2223},{"className":2222},[],[2224],{"type":52,"value":570},{"type":52,"value":421},{"type":46,"tag":55,"props":2227,"children":2228},{},[2229,2231,2236,2238,2244],{"type":52,"value":2230},"If ",{"type":46,"tag":98,"props":2232,"children":2234},{"className":2233},[],[2235],{"type":52,"value":749},{"type":52,"value":2237}," errors (auth missing \u002F expired), surface the error and ask the user to run ",{"type":46,"tag":98,"props":2239,"children":2241},{"className":2240},[],[2242],{"type":52,"value":2243},"webflow auth login",{"type":52,"value":2245}," locally; do not try to drive it from the agent.",{"type":46,"tag":1646,"props":2247,"children":2248},{"start":155},[2249,2545,2676],{"type":46,"tag":1650,"props":2250,"children":2251},{},[2252,2257,2259,2264,2266,2271,2273,2398,2521,2524,2526,2531,2532,2537,2539,2544],{"type":46,"tag":61,"props":2253,"children":2254},{},[2255],{"type":52,"value":2256},"Deploy:",{"type":52,"value":2258}," pick the form matching the init form above. Pass ",{"type":46,"tag":98,"props":2260,"children":2262},{"className":2261},[],[2263],{"type":52,"value":570},{"type":52,"value":2265}," (or ",{"type":46,"tag":98,"props":2267,"children":2269},{"className":2268},[],[2270],{"type":52,"value":593},{"type":52,"value":2272}," for project-app first deploy) so the deploy can't misread the manifest if something is half-written.",{"type":46,"tag":90,"props":2274,"children":2276},{"className":92,"code":2275,"language":94,"meta":95,"style":95},"# Project-app first deploy — provisions the Cloud site\u002Fproject\u002Fenv\nwebflow cloud deploy \\\n  --no-input \\\n  --project-name my-app \\\n  --workspace-id ws_abc123 \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[2277],{"type":46,"tag":98,"props":2278,"children":2279},{"__ignoreMap":95},[2280,2288,2307,2319,2334,2349,2364,2379,2390],{"type":46,"tag":102,"props":2281,"children":2282},{"class":104,"line":105},[2283],{"type":46,"tag":102,"props":2284,"children":2285},{"style":159},[2286],{"type":52,"value":2287},"# Project-app first deploy — provisions the Cloud site\u002Fproject\u002Fenv\n",{"type":46,"tag":102,"props":2289,"children":2290},{"class":104,"line":155},[2291,2295,2299,2303],{"type":46,"tag":102,"props":2292,"children":2293},{"style":109},[2294],{"type":52,"value":9},{"type":46,"tag":102,"props":2296,"children":2297},{"style":114},[2298],{"type":52,"value":1138},{"type":46,"tag":102,"props":2300,"children":2301},{"style":114},[2302],{"type":52,"value":1143},{"type":46,"tag":102,"props":2304,"children":2305},{"style":1151},[2306],{"type":52,"value":1154},{"type":46,"tag":102,"props":2308,"children":2309},{"class":104,"line":165},[2310,2315],{"type":46,"tag":102,"props":2311,"children":2312},{"style":114},[2313],{"type":52,"value":2314},"  --no-input",{"type":46,"tag":102,"props":2316,"children":2317},{"style":1151},[2318],{"type":52,"value":1154},{"type":46,"tag":102,"props":2320,"children":2321},{"class":104,"line":227},[2322,2326,2330],{"type":46,"tag":102,"props":2323,"children":2324},{"style":114},[2325],{"type":52,"value":1179},{"type":46,"tag":102,"props":2327,"children":2328},{"style":114},[2329],{"type":52,"value":1184},{"type":46,"tag":102,"props":2331,"children":2332},{"style":1151},[2333],{"type":52,"value":1154},{"type":46,"tag":102,"props":2335,"children":2336},{"class":104,"line":236},[2337,2341,2345],{"type":46,"tag":102,"props":2338,"children":2339},{"style":114},[2340],{"type":52,"value":1380},{"type":46,"tag":102,"props":2342,"children":2343},{"style":114},[2344],{"type":52,"value":1385},{"type":46,"tag":102,"props":2346,"children":2347},{"style":1151},[2348],{"type":52,"value":1154},{"type":46,"tag":102,"props":2350,"children":2351},{"class":104,"line":1225},[2352,2356,2360],{"type":46,"tag":102,"props":2353,"children":2354},{"style":114},[2355],{"type":52,"value":1213},{"type":46,"tag":102,"props":2357,"children":2358},{"style":114},[2359],{"type":52,"value":1431},{"type":46,"tag":102,"props":2361,"children":2362},{"style":1151},[2363],{"type":52,"value":1154},{"type":46,"tag":102,"props":2365,"children":2366},{"class":104,"line":1243},[2367,2371,2375],{"type":46,"tag":102,"props":2368,"children":2369},{"style":114},[2370],{"type":52,"value":1231},{"type":46,"tag":102,"props":2372,"children":2373},{"style":114},[2374],{"type":52,"value":1236},{"type":46,"tag":102,"props":2376,"children":2377},{"style":1151},[2378],{"type":52,"value":1154},{"type":46,"tag":102,"props":2380,"children":2381},{"class":104,"line":1256},[2382,2386],{"type":46,"tag":102,"props":2383,"children":2384},{"style":114},[2385],{"type":52,"value":1249},{"type":46,"tag":102,"props":2387,"children":2388},{"style":1151},[2389],{"type":52,"value":1154},{"type":46,"tag":102,"props":2391,"children":2393},{"class":104,"line":2392},9,[2394],{"type":46,"tag":102,"props":2395,"children":2396},{"style":114},[2397],{"type":52,"value":1262},{"type":46,"tag":90,"props":2399,"children":2401},{"className":92,"code":2400,"language":94,"meta":95,"style":95},"# Site-attached first deploy — uses the existing Webflow site\nwebflow cloud deploy \\\n  --no-input \\\n  --project-name my-app \\\n  --site-id site_abc123 \\\n  --mount \u002Fapp \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[2402],{"type":46,"tag":98,"props":2403,"children":2404},{"__ignoreMap":95},[2405,2413,2432,2443,2458,2473,2488,2503,2514],{"type":46,"tag":102,"props":2406,"children":2407},{"class":104,"line":105},[2408],{"type":46,"tag":102,"props":2409,"children":2410},{"style":159},[2411],{"type":52,"value":2412},"# Site-attached first deploy — uses the existing Webflow site\n",{"type":46,"tag":102,"props":2414,"children":2415},{"class":104,"line":155},[2416,2420,2424,2428],{"type":46,"tag":102,"props":2417,"children":2418},{"style":109},[2419],{"type":52,"value":9},{"type":46,"tag":102,"props":2421,"children":2422},{"style":114},[2423],{"type":52,"value":1138},{"type":46,"tag":102,"props":2425,"children":2426},{"style":114},[2427],{"type":52,"value":1143},{"type":46,"tag":102,"props":2429,"children":2430},{"style":1151},[2431],{"type":52,"value":1154},{"type":46,"tag":102,"props":2433,"children":2434},{"class":104,"line":165},[2435,2439],{"type":46,"tag":102,"props":2436,"children":2437},{"style":114},[2438],{"type":52,"value":2314},{"type":46,"tag":102,"props":2440,"children":2441},{"style":1151},[2442],{"type":52,"value":1154},{"type":46,"tag":102,"props":2444,"children":2445},{"class":104,"line":227},[2446,2450,2454],{"type":46,"tag":102,"props":2447,"children":2448},{"style":114},[2449],{"type":52,"value":1179},{"type":46,"tag":102,"props":2451,"children":2452},{"style":114},[2453],{"type":52,"value":1184},{"type":46,"tag":102,"props":2455,"children":2456},{"style":1151},[2457],{"type":52,"value":1154},{"type":46,"tag":102,"props":2459,"children":2460},{"class":104,"line":236},[2461,2465,2469],{"type":46,"tag":102,"props":2462,"children":2463},{"style":114},[2464],{"type":52,"value":1162},{"type":46,"tag":102,"props":2466,"children":2467},{"style":114},[2468],{"type":52,"value":1167},{"type":46,"tag":102,"props":2470,"children":2471},{"style":1151},[2472],{"type":52,"value":1154},{"type":46,"tag":102,"props":2474,"children":2475},{"class":104,"line":1225},[2476,2480,2484],{"type":46,"tag":102,"props":2477,"children":2478},{"style":114},[2479],{"type":52,"value":1213},{"type":46,"tag":102,"props":2481,"children":2482},{"style":114},[2483],{"type":52,"value":1218},{"type":46,"tag":102,"props":2485,"children":2486},{"style":1151},[2487],{"type":52,"value":1154},{"type":46,"tag":102,"props":2489,"children":2490},{"class":104,"line":1243},[2491,2495,2499],{"type":46,"tag":102,"props":2492,"children":2493},{"style":114},[2494],{"type":52,"value":1231},{"type":46,"tag":102,"props":2496,"children":2497},{"style":114},[2498],{"type":52,"value":1236},{"type":46,"tag":102,"props":2500,"children":2501},{"style":1151},[2502],{"type":52,"value":1154},{"type":46,"tag":102,"props":2504,"children":2505},{"class":104,"line":1256},[2506,2510],{"type":46,"tag":102,"props":2507,"children":2508},{"style":114},[2509],{"type":52,"value":1249},{"type":46,"tag":102,"props":2511,"children":2512},{"style":1151},[2513],{"type":52,"value":1154},{"type":46,"tag":102,"props":2515,"children":2516},{"class":104,"line":2392},[2517],{"type":46,"tag":102,"props":2518,"children":2519},{"style":114},[2520],{"type":52,"value":1262},{"type":46,"tag":1843,"props":2522,"children":2523},{},[],{"type":52,"value":2525},"This creates the project on Webflow Cloud and sets ",{"type":46,"tag":98,"props":2527,"children":2529},{"className":2528},[],[2530],{"type":52,"value":298},{"type":52,"value":300},{"type":46,"tag":98,"props":2533,"children":2535},{"className":2534},[],[2536],{"type":52,"value":306},{"type":52,"value":2538},". Commit the updated ",{"type":46,"tag":98,"props":2540,"children":2542},{"className":2541},[],[2543],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":1650,"props":2546,"children":2547},{},[2548,2553,2555],{"type":46,"tag":61,"props":2549,"children":2550},{},[2551],{"type":52,"value":2552},"Set up git",{"type":52,"value":2554}," (if not already):",{"type":46,"tag":90,"props":2556,"children":2558},{"className":92,"code":2557,"language":94,"meta":95,"style":95},"git init && git add . && git commit -m \"init\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fmy-app.git\ngit push -u origin main\n",[2559],{"type":46,"tag":98,"props":2560,"children":2561},{"__ignoreMap":95},[2562,2626,2650],{"type":46,"tag":102,"props":2563,"children":2564},{"class":104,"line":105},[2565,2569,2573,2578,2583,2588,2593,2597,2601,2606,2611,2616,2621],{"type":46,"tag":102,"props":2566,"children":2567},{"style":109},[2568],{"type":52,"value":242},{"type":46,"tag":102,"props":2570,"children":2571},{"style":114},[2572],{"type":52,"value":1690},{"type":46,"tag":102,"props":2574,"children":2575},{"style":260},[2576],{"type":52,"value":2577}," &&",{"type":46,"tag":102,"props":2579,"children":2580},{"style":109},[2581],{"type":52,"value":2582}," git",{"type":46,"tag":102,"props":2584,"children":2585},{"style":114},[2586],{"type":52,"value":2587}," add",{"type":46,"tag":102,"props":2589,"children":2590},{"style":114},[2591],{"type":52,"value":2592}," .",{"type":46,"tag":102,"props":2594,"children":2595},{"style":260},[2596],{"type":52,"value":2577},{"type":46,"tag":102,"props":2598,"children":2599},{"style":109},[2600],{"type":52,"value":2582},{"type":46,"tag":102,"props":2602,"children":2603},{"style":114},[2604],{"type":52,"value":2605}," commit",{"type":46,"tag":102,"props":2607,"children":2608},{"style":114},[2609],{"type":52,"value":2610}," -m",{"type":46,"tag":102,"props":2612,"children":2613},{"style":260},[2614],{"type":52,"value":2615}," \"",{"type":46,"tag":102,"props":2617,"children":2618},{"style":114},[2619],{"type":52,"value":2620},"init",{"type":46,"tag":102,"props":2622,"children":2623},{"style":260},[2624],{"type":52,"value":2625},"\"\n",{"type":46,"tag":102,"props":2627,"children":2628},{"class":104,"line":155},[2629,2633,2637,2641,2645],{"type":46,"tag":102,"props":2630,"children":2631},{"style":109},[2632],{"type":52,"value":242},{"type":46,"tag":102,"props":2634,"children":2635},{"style":114},[2636],{"type":52,"value":247},{"type":46,"tag":102,"props":2638,"children":2639},{"style":114},[2640],{"type":52,"value":2587},{"type":46,"tag":102,"props":2642,"children":2643},{"style":114},[2644],{"type":52,"value":257},{"type":46,"tag":102,"props":2646,"children":2647},{"style":114},[2648],{"type":52,"value":2649}," https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fmy-app.git\n",{"type":46,"tag":102,"props":2651,"children":2652},{"class":104,"line":165},[2653,2657,2662,2667,2671],{"type":46,"tag":102,"props":2654,"children":2655},{"style":109},[2656],{"type":52,"value":242},{"type":46,"tag":102,"props":2658,"children":2659},{"style":114},[2660],{"type":52,"value":2661}," push",{"type":46,"tag":102,"props":2663,"children":2664},{"style":114},[2665],{"type":52,"value":2666}," -u",{"type":46,"tag":102,"props":2668,"children":2669},{"style":114},[2670],{"type":52,"value":257},{"type":46,"tag":102,"props":2672,"children":2673},{"style":114},[2674],{"type":52,"value":2675}," main\n",{"type":46,"tag":1650,"props":2677,"children":2678},{},[2679,2684,2686,2690,2692,2727,2730,2732,2737],{"type":46,"tag":61,"props":2680,"children":2681},{},[2682],{"type":52,"value":2683},"(Optional) Enable push-to-deploy via the Webflow dashboard.",{"type":52,"value":2685}," Pushing to GitHub alone does ",{"type":46,"tag":61,"props":2687,"children":2688},{},[2689],{"type":52,"value":668},{"type":52,"value":2691}," trigger deploys — that wiring lives in the Webflow dashboard, not in the CLI or the repo. Tell the user:",{"type":46,"tag":1646,"props":2693,"children":2694},{},[2695,2712,2717,2722],{"type":46,"tag":1650,"props":2696,"children":2697},{},[2698,2700,2705,2707],{"type":52,"value":2699},"Open the Webflow dashboard → their Cloud project → ",{"type":46,"tag":61,"props":2701,"children":2702},{},[2703],{"type":52,"value":2704},"Settings",{"type":52,"value":2706}," → ",{"type":46,"tag":61,"props":2708,"children":2709},{},[2710],{"type":52,"value":2711},"Git",{"type":46,"tag":1650,"props":2713,"children":2714},{},[2715],{"type":52,"value":2716},"Connect their GitHub account, then select the repository and branch",{"type":46,"tag":1650,"props":2718,"children":2719},{},[2720],{"type":52,"value":2721},"Confirm — the dashboard runs one initial deploy automatically to verify the connection",{"type":46,"tag":1650,"props":2723,"children":2724},{},[2725],{"type":52,"value":2726},"From that moment on, every push to the connected branch triggers a deploy",{"type":46,"tag":1843,"props":2728,"children":2729},{},[],{"type":52,"value":2731},"The CLI cannot perform any of these steps. If the user skips this, every deploy must be a manual ",{"type":46,"tag":98,"props":2733,"children":2735},{"className":2734},[],[2736],{"type":52,"value":639},{"type":52,"value":2738}," invocation (Path B–style) or a CI\u002FCD pipeline.",{"type":46,"tag":393,"props":2740,"children":2741},{},[2742],{"type":46,"tag":55,"props":2743,"children":2744},{},[2745,2747,2752],{"type":52,"value":2746},"If a deploy auth error occurs in step 2: run ",{"type":46,"tag":98,"props":2748,"children":2750},{"className":2749},[],[2751],{"type":52,"value":2243},{"type":52,"value":2753},", complete the browser flow, then retry.",{"type":46,"tag":389,"props":2755,"children":2756},{},[],{"type":46,"tag":83,"props":2758,"children":2760},{"id":2759},"path-b-project_id-exists-no-git-remote-existing-project-no-git",[2761,2763,2768],{"type":52,"value":2762},"Path B: ",{"type":46,"tag":98,"props":2764,"children":2766},{"className":2765},[],[2767],{"type":52,"value":766},{"type":52,"value":2769}," exists, no git remote — existing project, no git",{"type":46,"tag":55,"props":2771,"children":2772},{},[2773],{"type":52,"value":2774},"The project is already on Webflow Cloud but has no git repo. Deploy directly and nudge toward git setup.",{"type":46,"tag":1646,"props":2776,"children":2777},{},[2778,2921],{"type":46,"tag":1650,"props":2779,"children":2780},{},[2781,2785,2787,2792,2794,2799,2801,2806,2808,2813,2814,2819,2821],{"type":46,"tag":61,"props":2782,"children":2783},{},[2784],{"type":52,"value":2256},{"type":52,"value":2786}," read ",{"type":46,"tag":98,"props":2788,"children":2790},{"className":2789},[],[2791],{"type":52,"value":306},{"type":52,"value":2793}," first. If ",{"type":46,"tag":98,"props":2795,"children":2797},{"className":2796},[],[2798],{"type":52,"value":1553},{"type":52,"value":2800}," is set, pass ",{"type":46,"tag":98,"props":2802,"children":2804},{"className":2803},[],[2805],{"type":52,"value":570},{"type":52,"value":2807}," matching it. If only ",{"type":46,"tag":98,"props":2809,"children":2811},{"className":2810},[],[2812],{"type":52,"value":647},{"type":52,"value":2800},{"type":46,"tag":98,"props":2815,"children":2817},{"className":2816},[],[2818],{"type":52,"value":593},{"type":52,"value":2820}," matching it.",{"type":46,"tag":90,"props":2822,"children":2824},{"className":92,"code":2823,"language":94,"meta":95,"style":95},"webflow cloud deploy \\\n  --no-input \\\n  --site-id site_abc123 \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[2825],{"type":46,"tag":98,"props":2826,"children":2827},{"__ignoreMap":95},[2828,2847,2858,2873,2888,2903,2914],{"type":46,"tag":102,"props":2829,"children":2830},{"class":104,"line":105},[2831,2835,2839,2843],{"type":46,"tag":102,"props":2832,"children":2833},{"style":109},[2834],{"type":52,"value":9},{"type":46,"tag":102,"props":2836,"children":2837},{"style":114},[2838],{"type":52,"value":1138},{"type":46,"tag":102,"props":2840,"children":2841},{"style":114},[2842],{"type":52,"value":1143},{"type":46,"tag":102,"props":2844,"children":2845},{"style":1151},[2846],{"type":52,"value":1154},{"type":46,"tag":102,"props":2848,"children":2849},{"class":104,"line":155},[2850,2854],{"type":46,"tag":102,"props":2851,"children":2852},{"style":114},[2853],{"type":52,"value":2314},{"type":46,"tag":102,"props":2855,"children":2856},{"style":1151},[2857],{"type":52,"value":1154},{"type":46,"tag":102,"props":2859,"children":2860},{"class":104,"line":165},[2861,2865,2869],{"type":46,"tag":102,"props":2862,"children":2863},{"style":114},[2864],{"type":52,"value":1162},{"type":46,"tag":102,"props":2866,"children":2867},{"style":114},[2868],{"type":52,"value":1167},{"type":46,"tag":102,"props":2870,"children":2871},{"style":1151},[2872],{"type":52,"value":1154},{"type":46,"tag":102,"props":2874,"children":2875},{"class":104,"line":227},[2876,2880,2884],{"type":46,"tag":102,"props":2877,"children":2878},{"style":114},[2879],{"type":52,"value":1213},{"type":46,"tag":102,"props":2881,"children":2882},{"style":114},[2883],{"type":52,"value":1431},{"type":46,"tag":102,"props":2885,"children":2886},{"style":1151},[2887],{"type":52,"value":1154},{"type":46,"tag":102,"props":2889,"children":2890},{"class":104,"line":236},[2891,2895,2899],{"type":46,"tag":102,"props":2892,"children":2893},{"style":114},[2894],{"type":52,"value":1231},{"type":46,"tag":102,"props":2896,"children":2897},{"style":114},[2898],{"type":52,"value":1236},{"type":46,"tag":102,"props":2900,"children":2901},{"style":1151},[2902],{"type":52,"value":1154},{"type":46,"tag":102,"props":2904,"children":2905},{"class":104,"line":1225},[2906,2910],{"type":46,"tag":102,"props":2907,"children":2908},{"style":114},[2909],{"type":52,"value":1249},{"type":46,"tag":102,"props":2911,"children":2912},{"style":1151},[2913],{"type":52,"value":1154},{"type":46,"tag":102,"props":2915,"children":2916},{"class":104,"line":1243},[2917],{"type":46,"tag":102,"props":2918,"children":2919},{"style":114},[2920],{"type":52,"value":1262},{"type":46,"tag":1650,"props":2922,"children":2923},{},[2924,2929,2931,2936],{"type":46,"tag":61,"props":2925,"children":2926},{},[2927],{"type":52,"value":2928},"Nudge toward push-to-deploy:",{"type":52,"value":2930}," suggest the user initialize a git repo, push to GitHub, ",{"type":46,"tag":61,"props":2932,"children":2933},{},[2934],{"type":52,"value":2935},"and then connect the repo in the Webflow dashboard",{"type":52,"value":2937}," (project → Settings → Git). The dashboard step is what activates push-to-deploy — the CLI can't do this. See Path A, steps 3–4.",{"type":46,"tag":393,"props":2939,"children":2940},{},[2941],{"type":46,"tag":55,"props":2942,"children":2943},{},[2944,2946,2951],{"type":52,"value":2945},"If a deploy auth error occurs: run ",{"type":46,"tag":98,"props":2947,"children":2949},{"className":2948},[],[2950],{"type":52,"value":2243},{"type":52,"value":2952},", complete the browser flow, then retry step 1.",{"type":46,"tag":389,"props":2954,"children":2955},{},[],{"type":46,"tag":83,"props":2957,"children":2959},{"id":2958},"path-c-project_id-exists-git-remote-possibly-ideal",[2960,2962,2967],{"type":52,"value":2961},"Path C: ",{"type":46,"tag":98,"props":2963,"children":2965},{"className":2964},[],[2966],{"type":52,"value":766},{"type":52,"value":2968}," exists + git remote — possibly ideal",{"type":46,"tag":55,"props":2970,"children":2971},{},[2972,2974,2979],{"type":52,"value":2973},"The project is deployed and has a git remote, ",{"type":46,"tag":61,"props":2975,"children":2976},{},[2977],{"type":52,"value":2978},"but the existence of a remote is not proof that push-to-deploy is wired up.",{"type":52,"value":2980}," That wiring is a dashboard-side connection that the CLI can't introspect. Confirm before suggesting anything.",{"type":46,"tag":393,"props":2982,"children":2983},{},[2984,3001],{"type":46,"tag":55,"props":2985,"children":2986},{},[2987,2992,2994,2999],{"type":46,"tag":61,"props":2988,"children":2989},{},[2990],{"type":52,"value":2991},"Always ask the user:",{"type":52,"value":2993}," ",{"type":46,"tag":686,"props":2995,"children":2996},{},[2997],{"type":52,"value":2998},"\"Is this repo connected to your Webflow Cloud project in the dashboard (project → Settings → Git, with a branch selected)?\"",{"type":52,"value":3000}," The answer changes the recommendation:",{"type":46,"tag":1967,"props":3002,"children":3003},{},[3004,3022,3039],{"type":46,"tag":1650,"props":3005,"children":3006},{},[3007,3012,3014,3020],{"type":46,"tag":61,"props":3008,"children":3009},{},[3010],{"type":52,"value":3011},"Yes, connected",{"type":52,"value":3013}," — push-to-deploy is active. The only action needed is ",{"type":46,"tag":98,"props":3015,"children":3017},{"className":3016},[],[3018],{"type":52,"value":3019},"git push",{"type":52,"value":3021},". Do not suggest re-linking or re-deploying.",{"type":46,"tag":1650,"props":3023,"children":3024},{},[3025,3030,3032,3037],{"type":46,"tag":61,"props":3026,"children":3027},{},[3028],{"type":52,"value":3029},"No, not connected",{"type":52,"value":3031}," — ",{"type":46,"tag":98,"props":3033,"children":3035},{"className":3034},[],[3036],{"type":52,"value":3019},{"type":52,"value":3038}," does nothing on the Webflow side. Either run a manual deploy now, or have the user connect the repo in the dashboard first to activate push-to-deploy for future commits.",{"type":46,"tag":1650,"props":3040,"children":3041},{},[3042,3047],{"type":46,"tag":61,"props":3043,"children":3044},{},[3045],{"type":52,"value":3046},"Don't know",{"type":52,"value":3048}," — assume not connected and recommend the dashboard connection (one-time setup, then push-to-deploy is permanent).",{"type":46,"tag":1646,"props":3050,"children":3051},{},[3052,3130],{"type":46,"tag":1650,"props":3053,"children":3054},{},[3055,3060,3062,3125,3128],{"type":46,"tag":61,"props":3056,"children":3057},{},[3058],{"type":52,"value":3059},"If connected",{"type":52,"value":3061}," — just commit and push:",{"type":46,"tag":90,"props":3063,"children":3065},{"className":92,"code":3064,"language":94,"meta":95,"style":95},"git add .\ngit commit -m \"your message\"\ngit push\n",[3066],{"type":46,"tag":98,"props":3067,"children":3068},{"__ignoreMap":95},[3069,3085,3113],{"type":46,"tag":102,"props":3070,"children":3071},{"class":104,"line":105},[3072,3076,3080],{"type":46,"tag":102,"props":3073,"children":3074},{"style":109},[3075],{"type":52,"value":242},{"type":46,"tag":102,"props":3077,"children":3078},{"style":114},[3079],{"type":52,"value":2587},{"type":46,"tag":102,"props":3081,"children":3082},{"style":114},[3083],{"type":52,"value":3084}," .\n",{"type":46,"tag":102,"props":3086,"children":3087},{"class":104,"line":155},[3088,3092,3096,3100,3104,3109],{"type":46,"tag":102,"props":3089,"children":3090},{"style":109},[3091],{"type":52,"value":242},{"type":46,"tag":102,"props":3093,"children":3094},{"style":114},[3095],{"type":52,"value":2605},{"type":46,"tag":102,"props":3097,"children":3098},{"style":114},[3099],{"type":52,"value":2610},{"type":46,"tag":102,"props":3101,"children":3102},{"style":260},[3103],{"type":52,"value":2615},{"type":46,"tag":102,"props":3105,"children":3106},{"style":114},[3107],{"type":52,"value":3108},"your message",{"type":46,"tag":102,"props":3110,"children":3111},{"style":260},[3112],{"type":52,"value":2625},{"type":46,"tag":102,"props":3114,"children":3115},{"class":104,"line":165},[3116,3120],{"type":46,"tag":102,"props":3117,"children":3118},{"style":109},[3119],{"type":52,"value":242},{"type":46,"tag":102,"props":3121,"children":3122},{"style":114},[3123],{"type":52,"value":3124}," push\n",{"type":46,"tag":1843,"props":3126,"children":3127},{},[],{"type":52,"value":3129},"Webflow Cloud picks up the push and deploys automatically. The first deploy after connection is run by the dashboard itself; subsequent pushes are picked up automatically.",{"type":46,"tag":1650,"props":3131,"children":3132},{},[3133,3138,3140],{"type":46,"tag":61,"props":3134,"children":3135},{},[3136],{"type":52,"value":3137},"If not connected",{"type":52,"value":3139}," — two routes:",{"type":46,"tag":1967,"props":3141,"children":3142},{},[3143,3171],{"type":46,"tag":1650,"props":3144,"children":3145},{},[3146,3151,3153,3157,3158,3162,3164,3169],{"type":46,"tag":61,"props":3147,"children":3148},{},[3149],{"type":52,"value":3150},"Activate push-to-deploy for future commits",{"type":52,"value":3152}," (recommended). Tell the user to open the Webflow dashboard → their Cloud project → ",{"type":46,"tag":61,"props":3154,"children":3155},{},[3156],{"type":52,"value":2704},{"type":52,"value":2706},{"type":46,"tag":61,"props":3159,"children":3160},{},[3161],{"type":52,"value":2711},{"type":52,"value":3163},", connect the repo, select the branch. The dashboard runs an initial deploy automatically to verify the connection. From then on, every ",{"type":46,"tag":98,"props":3165,"children":3167},{"className":3166},[],[3168],{"type":52,"value":3019},{"type":52,"value":3170}," to that branch deploys.",{"type":46,"tag":1650,"props":3172,"children":3173},{},[3174,3179,3181,3186,3188,3193,3194,3199,3201,3300,3302,3306,3308,3313],{"type":46,"tag":61,"props":3175,"children":3176},{},[3177],{"type":52,"value":3178},"One-off manual deploy now",{"type":52,"value":3180},", without enabling push-to-deploy. Pass ",{"type":46,"tag":98,"props":3182,"children":3184},{"className":3183},[],[3185],{"type":52,"value":570},{"type":52,"value":3187}," matching the ",{"type":46,"tag":98,"props":3189,"children":3191},{"className":3190},[],[3192],{"type":52,"value":1553},{"type":52,"value":300},{"type":46,"tag":98,"props":3195,"children":3197},{"className":3196},[],[3198],{"type":52,"value":306},{"type":52,"value":3200},":\n",{"type":46,"tag":90,"props":3202,"children":3203},{"className":92,"code":2823,"language":94,"meta":95,"style":95},[3204],{"type":46,"tag":98,"props":3205,"children":3206},{"__ignoreMap":95},[3207,3226,3237,3252,3267,3282,3293],{"type":46,"tag":102,"props":3208,"children":3209},{"class":104,"line":105},[3210,3214,3218,3222],{"type":46,"tag":102,"props":3211,"children":3212},{"style":109},[3213],{"type":52,"value":9},{"type":46,"tag":102,"props":3215,"children":3216},{"style":114},[3217],{"type":52,"value":1138},{"type":46,"tag":102,"props":3219,"children":3220},{"style":114},[3221],{"type":52,"value":1143},{"type":46,"tag":102,"props":3223,"children":3224},{"style":1151},[3225],{"type":52,"value":1154},{"type":46,"tag":102,"props":3227,"children":3228},{"class":104,"line":155},[3229,3233],{"type":46,"tag":102,"props":3230,"children":3231},{"style":114},[3232],{"type":52,"value":2314},{"type":46,"tag":102,"props":3234,"children":3235},{"style":1151},[3236],{"type":52,"value":1154},{"type":46,"tag":102,"props":3238,"children":3239},{"class":104,"line":165},[3240,3244,3248],{"type":46,"tag":102,"props":3241,"children":3242},{"style":114},[3243],{"type":52,"value":1162},{"type":46,"tag":102,"props":3245,"children":3246},{"style":114},[3247],{"type":52,"value":1167},{"type":46,"tag":102,"props":3249,"children":3250},{"style":1151},[3251],{"type":52,"value":1154},{"type":46,"tag":102,"props":3253,"children":3254},{"class":104,"line":227},[3255,3259,3263],{"type":46,"tag":102,"props":3256,"children":3257},{"style":114},[3258],{"type":52,"value":1213},{"type":46,"tag":102,"props":3260,"children":3261},{"style":114},[3262],{"type":52,"value":1431},{"type":46,"tag":102,"props":3264,"children":3265},{"style":1151},[3266],{"type":52,"value":1154},{"type":46,"tag":102,"props":3268,"children":3269},{"class":104,"line":236},[3270,3274,3278],{"type":46,"tag":102,"props":3271,"children":3272},{"style":114},[3273],{"type":52,"value":1231},{"type":46,"tag":102,"props":3275,"children":3276},{"style":114},[3277],{"type":52,"value":1236},{"type":46,"tag":102,"props":3279,"children":3280},{"style":1151},[3281],{"type":52,"value":1154},{"type":46,"tag":102,"props":3283,"children":3284},{"class":104,"line":1225},[3285,3289],{"type":46,"tag":102,"props":3286,"children":3287},{"style":114},[3288],{"type":52,"value":1249},{"type":46,"tag":102,"props":3290,"children":3291},{"style":1151},[3292],{"type":52,"value":1154},{"type":46,"tag":102,"props":3294,"children":3295},{"class":104,"line":1243},[3296],{"type":46,"tag":102,"props":3297,"children":3298},{"style":114},[3299],{"type":52,"value":1262},{"type":52,"value":3301},"\nThis deploys the current state but does ",{"type":46,"tag":61,"props":3303,"children":3304},{},[3305],{"type":52,"value":668},{"type":52,"value":3307}," wire up push-to-deploy. The next ",{"type":46,"tag":98,"props":3309,"children":3311},{"className":3310},[],[3312],{"type":52,"value":3019},{"type":52,"value":3314}," will still be a no-op on the Webflow side.",{"type":46,"tag":393,"props":3316,"children":3317},{},[3318],{"type":46,"tag":55,"props":3319,"children":3320},{},[3321,3322,3327],{"type":52,"value":2945},{"type":46,"tag":98,"props":3323,"children":3325},{"className":3324},[],[3326],{"type":52,"value":2243},{"type":52,"value":2753},{"type":46,"tag":83,"props":3329,"children":3331},{"id":3330},"tool-usage",[3332],{"type":52,"value":3333},"Tool usage",{"type":46,"tag":1967,"props":3335,"children":3336},{},[3337,3357,3381,3392],{"type":46,"tag":1650,"props":3338,"children":3339},{},[3340,3342,3347,3349,3355],{"type":52,"value":3341},"Use the ",{"type":46,"tag":61,"props":3343,"children":3344},{},[3345],{"type":52,"value":3346},"Bash tool",{"type":52,"value":3348}," for all ",{"type":46,"tag":98,"props":3350,"children":3352},{"className":3351},[],[3353],{"type":52,"value":3354},"webflow cloud",{"type":52,"value":3356}," commands",{"type":46,"tag":1650,"props":3358,"children":3359},{},[3360,3361,3366,3368,3373,3374,3379],{"type":52,"value":3341},{"type":46,"tag":61,"props":3362,"children":3363},{},[3364],{"type":52,"value":3365},"Read tool",{"type":52,"value":3367}," to examine ",{"type":46,"tag":98,"props":3369,"children":3371},{"className":3370},[],[3372],{"type":52,"value":306},{"type":52,"value":572},{"type":46,"tag":98,"props":3375,"children":3377},{"className":3376},[],[3378],{"type":52,"value":1044},{"type":52,"value":3380}," — never modify these directly",{"type":46,"tag":1650,"props":3382,"children":3383},{},[3384,3385,3390],{"type":52,"value":3341},{"type":46,"tag":61,"props":3386,"children":3387},{},[3388],{"type":52,"value":3389},"Glob tool",{"type":52,"value":3391}," to discover project files",{"type":46,"tag":1650,"props":3393,"children":3394},{},[3395,3400],{"type":46,"tag":61,"props":3396,"children":3397},{},[3398],{"type":52,"value":3399},"Do not",{"type":52,"value":3401}," use Webflow MCP tools for CLI workflows",{"type":46,"tag":83,"props":3403,"children":3405},{"id":3404},"authentication",[3406],{"type":52,"value":3407},"Authentication",{"type":46,"tag":90,"props":3409,"children":3411},{"className":92,"code":3410,"language":94,"meta":95,"style":95},"# Interactive — local-only, opens a browser. NOT for agents or CI.\nwebflow auth login\n",[3412],{"type":46,"tag":98,"props":3413,"children":3414},{"__ignoreMap":95},[3415,3423],{"type":46,"tag":102,"props":3416,"children":3417},{"class":104,"line":105},[3418],{"type":46,"tag":102,"props":3419,"children":3420},{"style":159},[3421],{"type":52,"value":3422},"# Interactive — local-only, opens a browser. NOT for agents or CI.\n",{"type":46,"tag":102,"props":3424,"children":3425},{"class":104,"line":155},[3426,3430,3434],{"type":46,"tag":102,"props":3427,"children":3428},{"style":109},[3429],{"type":52,"value":9},{"type":46,"tag":102,"props":3431,"children":3432},{"style":114},[3433],{"type":52,"value":1089},{"type":46,"tag":102,"props":3435,"children":3436},{"style":114},[3437],{"type":52,"value":1094},{"type":46,"tag":393,"props":3439,"children":3440},{},[3441],{"type":46,"tag":55,"props":3442,"children":3443},{},[3444,3449,3451,3456,3458,3463,3465,3471,3473,3478,3480,3485],{"type":46,"tag":98,"props":3445,"children":3447},{"className":3446},[],[3448],{"type":52,"value":2243},{"type":52,"value":3450}," performs an OAuth flow in the user's browser and then writes the token to ",{"type":46,"tag":98,"props":3452,"children":3454},{"className":3453},[],[3455],{"type":52,"value":1574},{"type":52,"value":3457},". It refuses to run with ",{"type":46,"tag":98,"props":3459,"children":3461},{"className":3460},[],[3462],{"type":52,"value":437},{"type":52,"value":3464}," (exits with ",{"type":46,"tag":98,"props":3466,"children":3468},{"className":3467},[],[3469],{"type":52,"value":3470},"No-input mode enabled. Aborting OAuth authentication",{"type":52,"value":3472},"). ",{"type":46,"tag":61,"props":3474,"children":3475},{},[3476],{"type":52,"value":3477},"Agents cannot drive this command.",{"type":52,"value":3479}," If ",{"type":46,"tag":98,"props":3481,"children":3483},{"className":3482},[],[3484],{"type":52,"value":2243},{"type":52,"value":3486}," is needed (missing or expired token), ask the user to run it locally once and report back when it's done.",{"type":46,"tag":55,"props":3488,"children":3489},{},[3490,3492,3497],{"type":52,"value":3491},"The CLI writes the same token env var for ",{"type":46,"tag":61,"props":3493,"children":3494},{},[3495],{"type":52,"value":3496},"both",{"type":52,"value":3498}," modes. There is no per-mode split.",{"type":46,"tag":55,"props":3500,"children":3501},{},[3502],{"type":46,"tag":61,"props":3503,"children":3504},{},[3505,3510,3512,3517],{"type":46,"tag":98,"props":3506,"children":3508},{"className":3507},[],[3509],{"type":52,"value":2243},{"type":52,"value":3511}," writes to ",{"type":46,"tag":98,"props":3513,"children":3515},{"className":3514},[],[3516],{"type":52,"value":1574},{"type":52,"value":1896},{"type":46,"tag":278,"props":3519,"children":3520},{},[3521,3542],{"type":46,"tag":282,"props":3522,"children":3523},{},[3524],{"type":46,"tag":286,"props":3525,"children":3526},{},[3527,3532,3537],{"type":46,"tag":290,"props":3528,"children":3529},{},[3530],{"type":52,"value":3531},"Variable",{"type":46,"tag":290,"props":3533,"children":3534},{},[3535],{"type":52,"value":3536},"Always written?",{"type":46,"tag":290,"props":3538,"children":3539},{},[3540],{"type":52,"value":3541},"Description",{"type":46,"tag":318,"props":3543,"children":3544},{},[3545,3573],{"type":46,"tag":286,"props":3546,"children":3547},{},[3548,3557,3562],{"type":46,"tag":325,"props":3549,"children":3550},{},[3551],{"type":46,"tag":98,"props":3552,"children":3554},{"className":3553},[],[3555],{"type":52,"value":3556},"WEBFLOW_API_TOKEN",{"type":46,"tag":325,"props":3558,"children":3559},{},[3560],{"type":52,"value":3561},"Yes (both modes)",{"type":46,"tag":325,"props":3563,"children":3564},{},[3565,3567,3572],{"type":52,"value":3566},"OAuth access token. The canonical token env var. Set by ",{"type":46,"tag":98,"props":3568,"children":3570},{"className":3569},[],[3571],{"type":52,"value":2243},{"type":52,"value":421},{"type":46,"tag":286,"props":3574,"children":3575},{},[3576,3584,3589],{"type":46,"tag":325,"props":3577,"children":3578},{},[3579],{"type":46,"tag":98,"props":3580,"children":3582},{"className":3581},[],[3583],{"type":52,"value":1567},{"type":46,"tag":325,"props":3585,"children":3586},{},[3587],{"type":52,"value":3588},"Site-attached only (or after first project-app deploy)",{"type":46,"tag":325,"props":3590,"children":3591},{},[3592,3594,3599,3601,3606],{"type":52,"value":3593},"Site ID. Written by ",{"type":46,"tag":98,"props":3595,"children":3597},{"className":3596},[],[3598],{"type":52,"value":473},{"type":52,"value":3600}," for site-attached projects, or by ",{"type":46,"tag":98,"props":3602,"children":3604},{"className":3603},[],[3605],{"type":52,"value":519},{"type":52,"value":3607}," for project apps after the first deploy provisions a site.",{"type":46,"tag":55,"props":3609,"children":3610},{},[3611,3613,3618,3620,3625,3626,3631,3633,3638],{"type":52,"value":3612},"After the ",{"type":46,"tag":61,"props":3614,"children":3615},{},[3616],{"type":52,"value":3617},"first project-app deploy",{"type":52,"value":3619},", the CLI provisions a site on the backend and writes ",{"type":46,"tag":98,"props":3621,"children":3623},{"className":3622},[],[3624],{"type":52,"value":1567},{"type":52,"value":649},{"type":46,"tag":98,"props":3627,"children":3629},{"className":3628},[],[3630],{"type":52,"value":1574},{"type":52,"value":3632},". From that point on, the project behaves like a site-attached project — but the token env var is still ",{"type":46,"tag":98,"props":3634,"children":3636},{"className":3635},[],[3637],{"type":52,"value":3556},{"type":52,"value":421},{"type":46,"tag":55,"props":3640,"children":3641},{},[3642,3647,3648,3654,3655,3661,3663,3668,3670,3675,3677,3682,3683,3688,3690,3695],{"type":46,"tag":61,"props":3643,"children":3644},{},[3645],{"type":52,"value":3646},"Deprecated legacy:",{"type":52,"value":2993},{"type":46,"tag":98,"props":3649,"children":3651},{"className":3650},[],[3652],{"type":52,"value":3653},"WEBFLOW_SITE_API_TOKEN",{"type":52,"value":2188},{"type":46,"tag":98,"props":3656,"children":3658},{"className":3657},[],[3659],{"type":52,"value":3660},"WEBFLOW_WORKSPACE_API_TOKEN",{"type":52,"value":3662},") are read-only legacy fallbacks. The CLI never writes them, but if it finds one of them set in the environment when ",{"type":46,"tag":98,"props":3664,"children":3666},{"className":3665},[],[3667],{"type":52,"value":3556},{"type":52,"value":3669}," is not set, it uses the legacy value ",{"type":46,"tag":61,"props":3671,"children":3672},{},[3673],{"type":52,"value":3674},"and prints a deprecation warning on every run",{"type":52,"value":3676},". Do not put ",{"type":46,"tag":98,"props":3678,"children":3680},{"className":3679},[],[3681],{"type":52,"value":3653},{"type":52,"value":300},{"type":46,"tag":98,"props":3684,"children":3686},{"className":3685},[],[3687],{"type":52,"value":1574},{"type":52,"value":3689}," or CI secrets for new projects — use ",{"type":46,"tag":98,"props":3691,"children":3693},{"className":3692},[],[3694],{"type":52,"value":3556},{"type":52,"value":421},{"type":46,"tag":55,"props":3697,"children":3698},{},[3699],{"type":52,"value":3700},"Other env vars (any mode):",{"type":46,"tag":278,"props":3702,"children":3703},{},[3704,3718],{"type":46,"tag":282,"props":3705,"children":3706},{},[3707],{"type":46,"tag":286,"props":3708,"children":3709},{},[3710,3714],{"type":46,"tag":290,"props":3711,"children":3712},{},[3713],{"type":52,"value":3531},{"type":46,"tag":290,"props":3715,"children":3716},{},[3717],{"type":52,"value":3541},{"type":46,"tag":318,"props":3719,"children":3720},{},[3721,3746],{"type":46,"tag":286,"props":3722,"children":3723},{},[3724,3733],{"type":46,"tag":325,"props":3725,"children":3726},{},[3727],{"type":46,"tag":98,"props":3728,"children":3730},{"className":3729},[],[3731],{"type":52,"value":3732},"DO_NOT_TRACK",{"type":46,"tag":325,"props":3734,"children":3735},{},[3736,3738,3744],{"type":52,"value":3737},"Set to ",{"type":46,"tag":98,"props":3739,"children":3741},{"className":3740},[],[3742],{"type":52,"value":3743},"1",{"type":52,"value":3745}," to opt out of telemetry.",{"type":46,"tag":286,"props":3747,"children":3748},{},[3749,3758],{"type":46,"tag":325,"props":3750,"children":3751},{},[3752],{"type":46,"tag":98,"props":3753,"children":3755},{"className":3754},[],[3756],{"type":52,"value":3757},"WEBFLOW_SKIP_UPDATE_CHECKS",{"type":46,"tag":325,"props":3759,"children":3760},{},[3761,3762,3768],{"type":52,"value":3737},{"type":46,"tag":98,"props":3763,"children":3765},{"className":3764},[],[3766],{"type":52,"value":3767},"true",{"type":52,"value":3769}," to skip the @webflow package update check.",{"type":46,"tag":393,"props":3771,"children":3772},{},[3773],{"type":46,"tag":55,"props":3774,"children":3775},{},[3776,3786,3788,3793,3795,3801,3802,3807,3809,3814,3815,3820],{"type":46,"tag":61,"props":3777,"children":3778},{},[3779,3784],{"type":46,"tag":98,"props":3780,"children":3782},{"className":3781},[],[3783],{"type":52,"value":1567},{"type":52,"value":3785}," env var is read-only.",{"type":52,"value":3787}," Used at runtime when no flag or manifest value is set, but never written back to ",{"type":46,"tag":98,"props":3789,"children":3791},{"className":3790},[],[3792],{"type":52,"value":306},{"type":52,"value":3794},". Setting ",{"type":46,"tag":98,"props":3796,"children":3798},{"className":3797},[],[3799],{"type":52,"value":3800},"WEBFLOW_SITE_ID=X",{"type":52,"value":300},{"type":46,"tag":98,"props":3803,"children":3805},{"className":3804},[],[3806],{"type":52,"value":1574},{"type":52,"value":3808}," will not update the manifest — only ",{"type":46,"tag":98,"props":3810,"children":3812},{"className":3811},[],[3813],{"type":52,"value":473},{"type":52,"value":572},{"type":46,"tag":98,"props":3816,"children":3818},{"className":3817},[],[3819],{"type":52,"value":519},{"type":52,"value":3821},", and the manifest itself drive that.",{"type":46,"tag":393,"props":3823,"children":3824},{},[3825],{"type":46,"tag":55,"props":3826,"children":3827},{},[3828,3833,3835,3840,3842,3847,3849,3854,3856,3861],{"type":46,"tag":61,"props":3829,"children":3830},{},[3831],{"type":52,"value":3832},"GitHub Secrets:",{"type":52,"value":3834}," use ",{"type":46,"tag":98,"props":3836,"children":3838},{"className":3837},[],[3839],{"type":52,"value":3556},{"type":52,"value":3841}," for the token in every mode. Also set ",{"type":46,"tag":98,"props":3843,"children":3845},{"className":3844},[],[3846],{"type":52,"value":1567},{"type":52,"value":3848}," for site-attached projects and project apps that have already had their first deploy. Never commit ",{"type":46,"tag":98,"props":3850,"children":3852},{"className":3851},[],[3853],{"type":52,"value":1574},{"type":52,"value":3855}," files. If existing CI uses ",{"type":46,"tag":98,"props":3857,"children":3859},{"className":3858},[],[3860],{"type":52,"value":3653},{"type":52,"value":3862},", rename it — the deploy will still succeed but every run prints a deprecation warning until you switch.",{"type":46,"tag":83,"props":3864,"children":3866},{"id":3865},"configuration-webflowjson",[3867],{"type":52,"value":3868},"Configuration — webflow.json",{"type":46,"tag":90,"props":3870,"children":3874},{"className":3871,"code":3872,"language":3873,"meta":95,"style":95},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"siteId\": \"site_abc123\",\n  \"cloud\": {\n    \"project_id\": \"proj_xyz\",\n    \"environment_id\": \"env_xyz\",\n    \"workspace_id\": \"ws_xyz\",\n    \"framework\": \"nextjs\",\n    \"skipMountPathCheck\": false\n  }\n}\n","json",[3875],{"type":46,"tag":98,"props":3876,"children":3877},{"__ignoreMap":95},[3878,3886,3926,3950,3987,4024,4061,4098,4123,4131],{"type":46,"tag":102,"props":3879,"children":3880},{"class":104,"line":105},[3881],{"type":46,"tag":102,"props":3882,"children":3883},{"style":260},[3884],{"type":52,"value":3885},"{\n",{"type":46,"tag":102,"props":3887,"children":3888},{"class":104,"line":155},[3889,3894,3899,3904,3908,3912,3917,3921],{"type":46,"tag":102,"props":3890,"children":3891},{"style":260},[3892],{"type":52,"value":3893},"  \"",{"type":46,"tag":102,"props":3895,"children":3897},{"style":3896},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[3898],{"type":52,"value":1553},{"type":46,"tag":102,"props":3900,"children":3901},{"style":260},[3902],{"type":52,"value":3903},"\"",{"type":46,"tag":102,"props":3905,"children":3906},{"style":260},[3907],{"type":52,"value":1896},{"type":46,"tag":102,"props":3909,"children":3910},{"style":260},[3911],{"type":52,"value":2615},{"type":46,"tag":102,"props":3913,"children":3914},{"style":114},[3915],{"type":52,"value":3916},"site_abc123",{"type":46,"tag":102,"props":3918,"children":3919},{"style":260},[3920],{"type":52,"value":3903},{"type":46,"tag":102,"props":3922,"children":3923},{"style":260},[3924],{"type":52,"value":3925},",\n",{"type":46,"tag":102,"props":3927,"children":3928},{"class":104,"line":165},[3929,3933,3937,3941,3945],{"type":46,"tag":102,"props":3930,"children":3931},{"style":260},[3932],{"type":52,"value":3893},{"type":46,"tag":102,"props":3934,"children":3935},{"style":3896},[3936],{"type":52,"value":25},{"type":46,"tag":102,"props":3938,"children":3939},{"style":260},[3940],{"type":52,"value":3903},{"type":46,"tag":102,"props":3942,"children":3943},{"style":260},[3944],{"type":52,"value":1896},{"type":46,"tag":102,"props":3946,"children":3947},{"style":260},[3948],{"type":52,"value":3949}," {\n",{"type":46,"tag":102,"props":3951,"children":3952},{"class":104,"line":227},[3953,3958,3962,3966,3970,3974,3979,3983],{"type":46,"tag":102,"props":3954,"children":3955},{"style":260},[3956],{"type":52,"value":3957},"    \"",{"type":46,"tag":102,"props":3959,"children":3960},{"style":109},[3961],{"type":52,"value":766},{"type":46,"tag":102,"props":3963,"children":3964},{"style":260},[3965],{"type":52,"value":3903},{"type":46,"tag":102,"props":3967,"children":3968},{"style":260},[3969],{"type":52,"value":1896},{"type":46,"tag":102,"props":3971,"children":3972},{"style":260},[3973],{"type":52,"value":2615},{"type":46,"tag":102,"props":3975,"children":3976},{"style":114},[3977],{"type":52,"value":3978},"proj_xyz",{"type":46,"tag":102,"props":3980,"children":3981},{"style":260},[3982],{"type":52,"value":3903},{"type":46,"tag":102,"props":3984,"children":3985},{"style":260},[3986],{"type":52,"value":3925},{"type":46,"tag":102,"props":3988,"children":3989},{"class":104,"line":236},[3990,3994,3999,4003,4007,4011,4016,4020],{"type":46,"tag":102,"props":3991,"children":3992},{"style":260},[3993],{"type":52,"value":3957},{"type":46,"tag":102,"props":3995,"children":3996},{"style":109},[3997],{"type":52,"value":3998},"environment_id",{"type":46,"tag":102,"props":4000,"children":4001},{"style":260},[4002],{"type":52,"value":3903},{"type":46,"tag":102,"props":4004,"children":4005},{"style":260},[4006],{"type":52,"value":1896},{"type":46,"tag":102,"props":4008,"children":4009},{"style":260},[4010],{"type":52,"value":2615},{"type":46,"tag":102,"props":4012,"children":4013},{"style":114},[4014],{"type":52,"value":4015},"env_xyz",{"type":46,"tag":102,"props":4017,"children":4018},{"style":260},[4019],{"type":52,"value":3903},{"type":46,"tag":102,"props":4021,"children":4022},{"style":260},[4023],{"type":52,"value":3925},{"type":46,"tag":102,"props":4025,"children":4026},{"class":104,"line":1225},[4027,4031,4036,4040,4044,4048,4053,4057],{"type":46,"tag":102,"props":4028,"children":4029},{"style":260},[4030],{"type":52,"value":3957},{"type":46,"tag":102,"props":4032,"children":4033},{"style":109},[4034],{"type":52,"value":4035},"workspace_id",{"type":46,"tag":102,"props":4037,"children":4038},{"style":260},[4039],{"type":52,"value":3903},{"type":46,"tag":102,"props":4041,"children":4042},{"style":260},[4043],{"type":52,"value":1896},{"type":46,"tag":102,"props":4045,"children":4046},{"style":260},[4047],{"type":52,"value":2615},{"type":46,"tag":102,"props":4049,"children":4050},{"style":114},[4051],{"type":52,"value":4052},"ws_xyz",{"type":46,"tag":102,"props":4054,"children":4055},{"style":260},[4056],{"type":52,"value":3903},{"type":46,"tag":102,"props":4058,"children":4059},{"style":260},[4060],{"type":52,"value":3925},{"type":46,"tag":102,"props":4062,"children":4063},{"class":104,"line":1243},[4064,4068,4073,4077,4081,4085,4090,4094],{"type":46,"tag":102,"props":4065,"children":4066},{"style":260},[4067],{"type":52,"value":3957},{"type":46,"tag":102,"props":4069,"children":4070},{"style":109},[4071],{"type":52,"value":4072},"framework",{"type":46,"tag":102,"props":4074,"children":4075},{"style":260},[4076],{"type":52,"value":3903},{"type":46,"tag":102,"props":4078,"children":4079},{"style":260},[4080],{"type":52,"value":1896},{"type":46,"tag":102,"props":4082,"children":4083},{"style":260},[4084],{"type":52,"value":2615},{"type":46,"tag":102,"props":4086,"children":4087},{"style":114},[4088],{"type":52,"value":4089},"nextjs",{"type":46,"tag":102,"props":4091,"children":4092},{"style":260},[4093],{"type":52,"value":3903},{"type":46,"tag":102,"props":4095,"children":4096},{"style":260},[4097],{"type":52,"value":3925},{"type":46,"tag":102,"props":4099,"children":4100},{"class":104,"line":1256},[4101,4105,4110,4114,4118],{"type":46,"tag":102,"props":4102,"children":4103},{"style":260},[4104],{"type":52,"value":3957},{"type":46,"tag":102,"props":4106,"children":4107},{"style":109},[4108],{"type":52,"value":4109},"skipMountPathCheck",{"type":46,"tag":102,"props":4111,"children":4112},{"style":260},[4113],{"type":52,"value":3903},{"type":46,"tag":102,"props":4115,"children":4116},{"style":260},[4117],{"type":52,"value":1896},{"type":46,"tag":102,"props":4119,"children":4120},{"style":260},[4121],{"type":52,"value":4122}," false\n",{"type":46,"tag":102,"props":4124,"children":4125},{"class":104,"line":2392},[4126],{"type":46,"tag":102,"props":4127,"children":4128},{"style":260},[4129],{"type":52,"value":4130},"  }\n",{"type":46,"tag":102,"props":4132,"children":4134},{"class":104,"line":4133},10,[4135],{"type":46,"tag":102,"props":4136,"children":4137},{"style":260},[4138],{"type":52,"value":4139},"}\n",{"type":46,"tag":55,"props":4141,"children":4142},{},[4143,4145,4151,4153,4158,4160,4165,4167,4173],{"type":52,"value":4144},"All ",{"type":46,"tag":98,"props":4146,"children":4148},{"className":4147},[],[4149],{"type":52,"value":4150},"cloud.*",{"type":52,"value":4152}," keys are ",{"type":46,"tag":61,"props":4154,"children":4155},{},[4156],{"type":52,"value":4157},"snake_case",{"type":52,"value":4159}," (",{"type":46,"tag":98,"props":4161,"children":4163},{"className":4162},[],[4164],{"type":52,"value":766},{"type":52,"value":4166},", not ",{"type":46,"tag":98,"props":4168,"children":4170},{"className":4169},[],[4171],{"type":52,"value":4172},"projectId",{"type":52,"value":1004},{"type":46,"tag":278,"props":4175,"children":4176},{},[4177,4198],{"type":46,"tag":282,"props":4178,"children":4179},{},[4180],{"type":46,"tag":286,"props":4181,"children":4182},{},[4183,4188,4193],{"type":46,"tag":290,"props":4184,"children":4185},{},[4186],{"type":52,"value":4187},"Key",{"type":46,"tag":290,"props":4189,"children":4190},{},[4191],{"type":52,"value":4192},"When set",{"type":46,"tag":290,"props":4194,"children":4195},{},[4196],{"type":52,"value":4197},"Notes",{"type":46,"tag":318,"props":4199,"children":4200},{},[4201,4229,4257,4278,4314,4348],{"type":46,"tag":286,"props":4202,"children":4203},{},[4204,4212,4224],{"type":46,"tag":325,"props":4205,"children":4206},{},[4207],{"type":46,"tag":98,"props":4208,"children":4210},{"className":4209},[],[4211],{"type":52,"value":1553},{"type":46,"tag":325,"props":4213,"children":4214},{},[4215,4217,4222],{"type":52,"value":4216},"Site-attached: at ",{"type":46,"tag":98,"props":4218,"children":4220},{"className":4219},[],[4221],{"type":52,"value":473},{"type":52,"value":4223},". Project app: after first deploy (CLI provisions a site).",{"type":46,"tag":325,"props":4225,"children":4226},{},[4227],{"type":52,"value":4228},"Absent on project apps that have not been deployed yet.",{"type":46,"tag":286,"props":4230,"children":4231},{},[4232,4241,4252],{"type":46,"tag":325,"props":4233,"children":4234},{},[4235],{"type":46,"tag":98,"props":4236,"children":4238},{"className":4237},[],[4239],{"type":52,"value":4240},"cloud.framework",{"type":46,"tag":325,"props":4242,"children":4243},{},[4244,4246,4251],{"type":52,"value":4245},"At ",{"type":46,"tag":98,"props":4247,"children":4249},{"className":4248},[],[4250],{"type":52,"value":473},{"type":52,"value":421},{"type":46,"tag":325,"props":4253,"children":4254},{},[4255],{"type":52,"value":4256},"Required for deploy resolution — see below.",{"type":46,"tag":286,"props":4258,"children":4259},{},[4260,4268,4273],{"type":46,"tag":325,"props":4261,"children":4262},{},[4263],{"type":46,"tag":98,"props":4264,"children":4266},{"className":4265},[],[4267],{"type":52,"value":298},{"type":46,"tag":325,"props":4269,"children":4270},{},[4271],{"type":52,"value":4272},"After first deploy.",{"type":46,"tag":325,"props":4274,"children":4275},{},[4276],{"type":52,"value":4277},"Auto-written.",{"type":46,"tag":286,"props":4279,"children":4280},{},[4281,4290,4302],{"type":46,"tag":325,"props":4282,"children":4283},{},[4284],{"type":46,"tag":98,"props":4285,"children":4287},{"className":4286},[],[4288],{"type":52,"value":4289},"cloud.environment_id",{"type":46,"tag":325,"props":4291,"children":4292},{},[4293,4295,4300],{"type":52,"value":4294},"After first ",{"type":46,"tag":61,"props":4296,"children":4297},{},[4298],{"type":52,"value":4299},"project-app",{"type":52,"value":4301}," deploy.",{"type":46,"tag":325,"props":4303,"children":4304},{},[4305,4307,4313],{"type":52,"value":4306},"Auto-written by ",{"type":46,"tag":98,"props":4308,"children":4310},{"className":4309},[],[4311],{"type":52,"value":4312},"createCloudApp",{"type":52,"value":421},{"type":46,"tag":286,"props":4315,"children":4316},{},[4317,4325,4343],{"type":46,"tag":325,"props":4318,"children":4319},{},[4320],{"type":46,"tag":98,"props":4321,"children":4323},{"className":4322},[],[4324],{"type":52,"value":647},{"type":46,"tag":325,"props":4326,"children":4327},{},[4328,4330,4335,4336,4342],{"type":52,"value":4329},"At project-app ",{"type":46,"tag":98,"props":4331,"children":4333},{"className":4332},[],[4334],{"type":52,"value":473},{"type":52,"value":4159},{"type":46,"tag":98,"props":4337,"children":4339},{"className":4338},[],[4340],{"type":52,"value":4341},"--new",{"type":52,"value":1004},{"type":46,"tag":325,"props":4344,"children":4345},{},[4346],{"type":52,"value":4347},"Used by the first deploy to provision the site.",{"type":46,"tag":286,"props":4349,"children":4350},{},[4351,4360,4365],{"type":46,"tag":325,"props":4352,"children":4353},{},[4354],{"type":46,"tag":98,"props":4355,"children":4357},{"className":4356},[],[4358],{"type":52,"value":4359},"cloud.skipMountPathCheck",{"type":46,"tag":325,"props":4361,"children":4362},{},[4363],{"type":52,"value":4364},"User-managed.",{"type":46,"tag":325,"props":4366,"children":4367},{},[4368,4370,4376],{"type":52,"value":4369},"Equivalent to ",{"type":46,"tag":98,"props":4371,"children":4373},{"className":4372},[],[4374],{"type":52,"value":4375},"--skip-mount-path-check",{"type":52,"value":421},{"type":46,"tag":55,"props":4378,"children":4379},{},[4380,4382,4388,4389,4395,4397,4403,4405,4410,4411,4416,4418,4423],{"type":52,"value":4381},"The CLI also writes ",{"type":46,"tag":98,"props":4383,"children":4385},{"className":4384},[],[4386],{"type":52,"value":4387},"cloud.deployment_type",{"type":52,"value":4159},{"type":46,"tag":98,"props":4390,"children":4392},{"className":4391},[],[4393],{"type":52,"value":4394},"\"ssr\" | \"ssg\" | \"spa\"",{"type":52,"value":4396},") and ",{"type":46,"tag":98,"props":4398,"children":4400},{"className":4399},[],[4401],{"type":52,"value":4402},"cloud.entrypoint_path",{"type":52,"value":4404}," into the ",{"type":46,"tag":61,"props":4406,"children":4407},{},[4408],{"type":52,"value":4409},"bundled",{"type":52,"value":2993},{"type":46,"tag":98,"props":4412,"children":4414},{"className":4413},[],[4415],{"type":52,"value":306},{"type":52,"value":4417}," at build time (these power the cosmic deployer's wrangler config). They're build-time outputs — do not strip them from the source ",{"type":46,"tag":98,"props":4419,"children":4421},{"className":4420},[],[4422],{"type":52,"value":306},{"type":52,"value":4424}," if you find them there; missing values silently break Next.js server-side deploys.",{"type":46,"tag":55,"props":4426,"children":4427},{},[4428],{"type":46,"tag":61,"props":4429,"children":4430},{},[4431,4436],{"type":46,"tag":98,"props":4432,"children":4434},{"className":4433},[],[4435],{"type":52,"value":4240},{"type":52,"value":4437}," resolution at deploy time:",{"type":46,"tag":1646,"props":4439,"children":4440},{},[4441,4461,4498],{"type":46,"tag":1650,"props":4442,"children":4443},{},[4444,4459],{"type":46,"tag":61,"props":4445,"children":4446},{},[4447,4452,4454],{"type":46,"tag":98,"props":4448,"children":4450},{"className":4449},[],[4451],{"type":52,"value":306},{"type":52,"value":4453}," exists with ",{"type":46,"tag":98,"props":4455,"children":4457},{"className":4456},[],[4458],{"type":52,"value":4240},{"type":52,"value":4460}," — used as-is. Invalid value exits with code 1.",{"type":46,"tag":1650,"props":4462,"children":4463},{},[4464,4481,4483,4488,4490,4496],{"type":46,"tag":61,"props":4465,"children":4466},{},[4467,4472,4474,4479],{"type":46,"tag":98,"props":4468,"children":4470},{"className":4469},[],[4471],{"type":52,"value":306},{"type":52,"value":4473}," exists but ",{"type":46,"tag":98,"props":4475,"children":4477},{"className":4476},[],[4478],{"type":52,"value":4240},{"type":52,"value":4480}," is absent",{"type":52,"value":4482}," — throws: ",{"type":46,"tag":686,"props":4484,"children":4485},{},[4486],{"type":52,"value":4487},"\"webflow.json exists but doesn't contain valid framework information under the 'cloud' key\"",{"type":52,"value":4489},". Add ",{"type":46,"tag":98,"props":4491,"children":4493},{"className":4492},[],[4494],{"type":52,"value":4495},"\"cloud\": { \"framework\": \"nextjs\" }",{"type":52,"value":4497}," manually.",{"type":46,"tag":1650,"props":4499,"children":4500},{},[4501,4511,4513,4518,4520,4530],{"type":46,"tag":61,"props":4502,"children":4503},{},[4504,4506],{"type":52,"value":4505},"No ",{"type":46,"tag":98,"props":4507,"children":4509},{"className":4508},[],[4510],{"type":52,"value":306},{"type":52,"value":4512}," — auto-detected from ",{"type":46,"tag":98,"props":4514,"children":4516},{"className":4515},[],[4517],{"type":52,"value":1044},{"type":52,"value":4519},". CLI ",{"type":46,"tag":61,"props":4521,"children":4522},{},[4523,4525],{"type":52,"value":4524},"writes a new ",{"type":46,"tag":98,"props":4526,"children":4528},{"className":4527},[],[4529],{"type":52,"value":306},{"type":52,"value":4531}," on success.",{"type":46,"tag":55,"props":4533,"children":4534},{},[4535,4537,4542],{"type":52,"value":4536},"Projects created via ",{"type":46,"tag":98,"props":4538,"children":4540},{"className":4539},[],[4541],{"type":52,"value":473},{"type":52,"value":4543}," always land in case 1.",{"type":46,"tag":83,"props":4545,"children":4547},{"id":4546},"commands",[4548],{"type":52,"value":4549},"Commands",{"type":46,"tag":1021,"props":4551,"children":4553},{"id":4552},"webflow-cloud-list",[4554],{"type":52,"value":4555},"webflow cloud list",{"type":46,"tag":90,"props":4557,"children":4559},{"className":92,"code":4558,"language":94,"meta":95,"style":95},"webflow cloud list\n",[4560],{"type":46,"tag":98,"props":4561,"children":4562},{"__ignoreMap":95},[4563],{"type":46,"tag":102,"props":4564,"children":4565},{"class":104,"line":105},[4566,4570,4574],{"type":46,"tag":102,"props":4567,"children":4568},{"style":109},[4569],{"type":52,"value":9},{"type":46,"tag":102,"props":4571,"children":4572},{"style":114},[4573],{"type":52,"value":1138},{"type":46,"tag":102,"props":4575,"children":4576},{"style":114},[4577],{"type":52,"value":4578}," list\n",{"type":46,"tag":55,"props":4580,"children":4581},{},[4582,4584,4590],{"type":52,"value":4583},"Lists available scaffold templates. Check this before ",{"type":46,"tag":98,"props":4585,"children":4587},{"className":4586},[],[4588],{"type":52,"value":4589},"cloud init --framework",{"type":52,"value":4591}," to confirm valid scaffold IDs.",{"type":46,"tag":1021,"props":4593,"children":4595},{"id":4594},"webflow-cloud-init",[4596],{"type":52,"value":4597},"webflow cloud init",{"type":46,"tag":55,"props":4599,"children":4600},{},[4601,4603,4607,4608,4613],{"type":52,"value":4602},"Bootstrap a new project locally. Two modes: ",{"type":46,"tag":61,"props":4604,"children":4605},{},[4606],{"type":52,"value":65},{"type":52,"value":1547},{"type":46,"tag":61,"props":4609,"children":4610},{},[4611],{"type":52,"value":4612},"app",{"type":52,"value":421},{"type":46,"tag":55,"props":4615,"children":4616},{},[4617,4621],{"type":46,"tag":61,"props":4618,"children":4619},{},[4620],{"type":52,"value":964},{"type":52,"value":4622}," (connects to an existing Webflow site):",{"type":46,"tag":90,"props":4624,"children":4626},{"className":92,"code":4625,"language":94,"meta":95,"style":95},"# Agent \u002F non-TTY — always pass every flag\nwebflow cloud init \\\n  --no-input \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --mount \u002Fapp \\\n  --site-id site_abc123\n\n# Human at a real terminal — interactive prompts will fill in any missing flag\nwebflow cloud init\n",[4627],{"type":46,"tag":98,"props":4628,"children":4629},{"__ignoreMap":95},[4630,4638,4657,4668,4683,4698,4713,4724,4731,4739],{"type":46,"tag":102,"props":4631,"children":4632},{"class":104,"line":105},[4633],{"type":46,"tag":102,"props":4634,"children":4635},{"style":159},[4636],{"type":52,"value":4637},"# Agent \u002F non-TTY — always pass every flag\n",{"type":46,"tag":102,"props":4639,"children":4640},{"class":104,"line":155},[4641,4645,4649,4653],{"type":46,"tag":102,"props":4642,"children":4643},{"style":109},[4644],{"type":52,"value":9},{"type":46,"tag":102,"props":4646,"children":4647},{"style":114},[4648],{"type":52,"value":1138},{"type":46,"tag":102,"props":4650,"children":4651},{"style":114},[4652],{"type":52,"value":1690},{"type":46,"tag":102,"props":4654,"children":4655},{"style":1151},[4656],{"type":52,"value":1154},{"type":46,"tag":102,"props":4658,"children":4659},{"class":104,"line":165},[4660,4664],{"type":46,"tag":102,"props":4661,"children":4662},{"style":114},[4663],{"type":52,"value":2314},{"type":46,"tag":102,"props":4665,"children":4666},{"style":1151},[4667],{"type":52,"value":1154},{"type":46,"tag":102,"props":4669,"children":4670},{"class":104,"line":227},[4671,4675,4679],{"type":46,"tag":102,"props":4672,"children":4673},{"style":114},[4674],{"type":52,"value":1179},{"type":46,"tag":102,"props":4676,"children":4677},{"style":114},[4678],{"type":52,"value":1184},{"type":46,"tag":102,"props":4680,"children":4681},{"style":1151},[4682],{"type":52,"value":1154},{"type":46,"tag":102,"props":4684,"children":4685},{"class":104,"line":236},[4686,4690,4694],{"type":46,"tag":102,"props":4687,"children":4688},{"style":114},[4689],{"type":52,"value":1196},{"type":46,"tag":102,"props":4691,"children":4692},{"style":114},[4693],{"type":52,"value":1201},{"type":46,"tag":102,"props":4695,"children":4696},{"style":1151},[4697],{"type":52,"value":1154},{"type":46,"tag":102,"props":4699,"children":4700},{"class":104,"line":1225},[4701,4705,4709],{"type":46,"tag":102,"props":4702,"children":4703},{"style":114},[4704],{"type":52,"value":1213},{"type":46,"tag":102,"props":4706,"children":4707},{"style":114},[4708],{"type":52,"value":1218},{"type":46,"tag":102,"props":4710,"children":4711},{"style":1151},[4712],{"type":52,"value":1154},{"type":46,"tag":102,"props":4714,"children":4715},{"class":104,"line":1243},[4716,4720],{"type":46,"tag":102,"props":4717,"children":4718},{"style":114},[4719],{"type":52,"value":1162},{"type":46,"tag":102,"props":4721,"children":4722},{"style":114},[4723],{"type":52,"value":1841},{"type":46,"tag":102,"props":4725,"children":4726},{"class":104,"line":1256},[4727],{"type":46,"tag":102,"props":4728,"children":4729},{"emptyLinePlaceholder":221},[4730],{"type":52,"value":224},{"type":46,"tag":102,"props":4732,"children":4733},{"class":104,"line":2392},[4734],{"type":46,"tag":102,"props":4735,"children":4736},{"style":159},[4737],{"type":52,"value":4738},"# Human at a real terminal — interactive prompts will fill in any missing flag\n",{"type":46,"tag":102,"props":4740,"children":4741},{"class":104,"line":4133},[4742,4746,4750],{"type":46,"tag":102,"props":4743,"children":4744},{"style":109},[4745],{"type":52,"value":9},{"type":46,"tag":102,"props":4747,"children":4748},{"style":114},[4749],{"type":52,"value":1138},{"type":46,"tag":102,"props":4751,"children":4752},{"style":114},[4753],{"type":52,"value":4754}," init\n",{"type":46,"tag":55,"props":4756,"children":4757},{},[4758],{"type":52,"value":4759},"Flags:",{"type":46,"tag":278,"props":4761,"children":4762},{},[4763,4783],{"type":46,"tag":282,"props":4764,"children":4765},{},[4766],{"type":46,"tag":286,"props":4767,"children":4768},{},[4769,4774,4779],{"type":46,"tag":290,"props":4770,"children":4771},{},[4772],{"type":52,"value":4773},"Flag",{"type":46,"tag":290,"props":4775,"children":4776},{},[4777],{"type":52,"value":4778},"Short",{"type":46,"tag":290,"props":4780,"children":4781},{},[4782],{"type":52,"value":3541},{"type":46,"tag":318,"props":4784,"children":4785},{},[4786,4819,4866,4914,4946,4985,5005],{"type":46,"tag":286,"props":4787,"children":4788},{},[4789,4798,4807],{"type":46,"tag":325,"props":4790,"children":4791},{},[4792],{"type":46,"tag":98,"props":4793,"children":4795},{"className":4794},[],[4796],{"type":52,"value":4797},"--project-name \u003Cname>",{"type":46,"tag":325,"props":4799,"children":4800},{},[4801],{"type":46,"tag":98,"props":4802,"children":4804},{"className":4803},[],[4805],{"type":52,"value":4806},"-n",{"type":46,"tag":325,"props":4808,"children":4809},{},[4810,4812,4817],{"type":52,"value":4811},"Project name. ",{"type":46,"tag":61,"props":4813,"children":4814},{},[4815],{"type":52,"value":4816},"Must be 3–39 characters",{"type":52,"value":4818}," — the CLI rejects anything outside this range at init and at the first project-app deploy.",{"type":46,"tag":286,"props":4820,"children":4821},{},[4822,4831,4840],{"type":46,"tag":325,"props":4823,"children":4824},{},[4825],{"type":46,"tag":98,"props":4826,"children":4828},{"className":4827},[],[4829],{"type":52,"value":4830},"--framework \u003Cframework>",{"type":46,"tag":325,"props":4832,"children":4833},{},[4834],{"type":46,"tag":98,"props":4835,"children":4837},{"className":4836},[],[4838],{"type":52,"value":4839},"-f",{"type":46,"tag":325,"props":4841,"children":4842},{},[4843,4845,4851,4853,4858,4859,4865],{"type":52,"value":4844},"Must match a scaffold ID from ",{"type":46,"tag":98,"props":4846,"children":4848},{"className":4847},[],[4849],{"type":52,"value":4850},"cloud list",{"type":52,"value":4852},". Currently: ",{"type":46,"tag":98,"props":4854,"children":4856},{"className":4855},[],[4857],{"type":52,"value":4089},{"type":52,"value":572},{"type":46,"tag":98,"props":4860,"children":4862},{"className":4861},[],[4863],{"type":52,"value":4864},"astro",{"type":52,"value":421},{"type":46,"tag":286,"props":4867,"children":4868},{},[4869,4878,4887],{"type":46,"tag":325,"props":4870,"children":4871},{},[4872],{"type":46,"tag":98,"props":4873,"children":4875},{"className":4874},[],[4876],{"type":52,"value":4877},"--mount \u003Cpath>",{"type":46,"tag":325,"props":4879,"children":4880},{},[4881],{"type":46,"tag":98,"props":4882,"children":4884},{"className":4883},[],[4885],{"type":52,"value":4886},"-m",{"type":46,"tag":325,"props":4888,"children":4889},{},[4890,4892,4898,4900,4906,4908,4913],{"type":52,"value":4891},"Mount path (default ",{"type":46,"tag":98,"props":4893,"children":4895},{"className":4894},[],[4896],{"type":52,"value":4897},"\u002Fapp",{"type":52,"value":4899}," for site-attached, ",{"type":46,"tag":98,"props":4901,"children":4903},{"className":4902},[],[4904],{"type":52,"value":4905},"\u002F",{"type":52,"value":4907}," for app). Substituted into config files at scaffold time. Not stored in ",{"type":46,"tag":98,"props":4909,"children":4911},{"className":4910},[],[4912],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":286,"props":4915,"children":4916},{},[4917,4926,4935],{"type":46,"tag":325,"props":4918,"children":4919},{},[4920],{"type":46,"tag":98,"props":4921,"children":4923},{"className":4922},[],[4924],{"type":52,"value":4925},"--site-id \u003Cid>",{"type":46,"tag":325,"props":4927,"children":4928},{},[4929],{"type":46,"tag":98,"props":4930,"children":4932},{"className":4931},[],[4933],{"type":52,"value":4934},"-s",{"type":46,"tag":325,"props":4936,"children":4937},{},[4938,4940,4945],{"type":52,"value":4939},"Required in non-interactive site-attached mode. Mutually exclusive with ",{"type":46,"tag":98,"props":4941,"children":4943},{"className":4942},[],[4944],{"type":52,"value":593},{"type":52,"value":421},{"type":46,"tag":286,"props":4947,"children":4948},{},[4949,4958,4967],{"type":46,"tag":325,"props":4950,"children":4951},{},[4952],{"type":46,"tag":98,"props":4953,"children":4955},{"className":4954},[],[4956],{"type":52,"value":4957},"--workspace-id \u003Cid>",{"type":46,"tag":325,"props":4959,"children":4960},{},[4961],{"type":46,"tag":98,"props":4962,"children":4964},{"className":4963},[],[4965],{"type":52,"value":4966},"-w",{"type":46,"tag":325,"props":4968,"children":4969},{},[4970,4972,4977,4979,4984],{"type":52,"value":4971},"Skips the workspace picker for ",{"type":46,"tag":98,"props":4973,"children":4975},{"className":4974},[],[4976],{"type":52,"value":4341},{"type":52,"value":4978}," (app mode). Mutually exclusive with ",{"type":46,"tag":98,"props":4980,"children":4982},{"className":4981},[],[4983],{"type":52,"value":570},{"type":52,"value":421},{"type":46,"tag":286,"props":4986,"children":4987},{},[4988,4996,5000],{"type":46,"tag":325,"props":4989,"children":4990},{},[4991],{"type":46,"tag":98,"props":4992,"children":4994},{"className":4993},[],[4995],{"type":52,"value":4341},{"type":46,"tag":325,"props":4997,"children":4998},{},[4999],{"type":52,"value":334},{"type":46,"tag":325,"props":5001,"children":5002},{},[5003],{"type":52,"value":5004},"Project-app mode (no site).",{"type":46,"tag":286,"props":5006,"children":5007},{},[5008,5016,5020],{"type":46,"tag":325,"props":5009,"children":5010},{},[5011],{"type":46,"tag":98,"props":5012,"children":5014},{"className":5013},[],[5015],{"type":52,"value":437},{"type":46,"tag":325,"props":5017,"children":5018},{},[5019],{"type":52,"value":334},{"type":46,"tag":325,"props":5021,"children":5022},{},[5023,5025,5030,5031,5036,5038,5043],{"type":52,"value":5024},"CI mode. Requires ",{"type":46,"tag":98,"props":5026,"children":5028},{"className":5027},[],[5029],{"type":52,"value":537},{"type":52,"value":1547},{"type":46,"tag":98,"props":5032,"children":5034},{"className":5033},[],[5035],{"type":52,"value":585},{"type":52,"value":5037},". Without ",{"type":46,"tag":98,"props":5039,"children":5041},{"className":5040},[],[5042],{"type":52,"value":4341},{"type":52,"value":5044},", defaults to app behavior.",{"type":46,"tag":55,"props":5046,"children":5047},{},[5048,5050,5055,5057,5062,5064,5069,5070,5075,5076,5081],{"type":52,"value":5049},"Credential resolution for ",{"type":46,"tag":98,"props":5051,"children":5053},{"className":5052},[],[5054],{"type":52,"value":437},{"type":52,"value":5056}," site-attached: ",{"type":46,"tag":98,"props":5058,"children":5060},{"className":5059},[],[5061],{"type":52,"value":570},{"type":52,"value":5063}," flag → ",{"type":46,"tag":98,"props":5065,"children":5067},{"className":5066},[],[5068],{"type":52,"value":1553},{"type":52,"value":300},{"type":46,"tag":98,"props":5071,"children":5073},{"className":5072},[],[5074],{"type":52,"value":306},{"type":52,"value":2706},{"type":46,"tag":98,"props":5077,"children":5079},{"className":5078},[],[5080],{"type":52,"value":1567},{"type":52,"value":5082}," env var → error.",{"type":46,"tag":55,"props":5084,"children":5085},{},[5086,5088,5093],{"type":52,"value":5087},"After scaffolding a site-attached project, the CLI automatically runs a ",{"type":46,"tag":61,"props":5089,"children":5090},{},[5091],{"type":52,"value":5092},"DevLink sync",{"type":52,"value":421},{"type":46,"tag":55,"props":5095,"children":5096},{},[5097,5101],{"type":46,"tag":61,"props":5098,"children":5099},{},[5100],{"type":52,"value":991},{"type":52,"value":5102}," (no site attachment):",{"type":46,"tag":90,"props":5104,"children":5106},{"className":92,"code":5105,"language":94,"meta":95,"style":95},"# Agent \u002F non-TTY — always pass --workspace-id to skip the workspace picker\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --workspace-id ws_abc123\n\n# Human at a real terminal — prompts for workspace if not passed\nwebflow cloud init --new\n",[5107],{"type":46,"tag":98,"props":5108,"children":5109},{"__ignoreMap":95},[5110,5118,5145,5160,5175,5186,5193,5201],{"type":46,"tag":102,"props":5111,"children":5112},{"class":104,"line":105},[5113],{"type":46,"tag":102,"props":5114,"children":5115},{"style":159},[5116],{"type":52,"value":5117},"# Agent \u002F non-TTY — always pass --workspace-id to skip the workspace picker\n",{"type":46,"tag":102,"props":5119,"children":5120},{"class":104,"line":155},[5121,5125,5129,5133,5137,5141],{"type":46,"tag":102,"props":5122,"children":5123},{"style":109},[5124],{"type":52,"value":9},{"type":46,"tag":102,"props":5126,"children":5127},{"style":114},[5128],{"type":52,"value":1138},{"type":46,"tag":102,"props":5130,"children":5131},{"style":114},[5132],{"type":52,"value":1690},{"type":46,"tag":102,"props":5134,"children":5135},{"style":114},[5136],{"type":52,"value":1695},{"type":46,"tag":102,"props":5138,"children":5139},{"style":114},[5140],{"type":52,"value":1148},{"type":46,"tag":102,"props":5142,"children":5143},{"style":1151},[5144],{"type":52,"value":1154},{"type":46,"tag":102,"props":5146,"children":5147},{"class":104,"line":165},[5148,5152,5156],{"type":46,"tag":102,"props":5149,"children":5150},{"style":114},[5151],{"type":52,"value":1179},{"type":46,"tag":102,"props":5153,"children":5154},{"style":114},[5155],{"type":52,"value":1184},{"type":46,"tag":102,"props":5157,"children":5158},{"style":1151},[5159],{"type":52,"value":1154},{"type":46,"tag":102,"props":5161,"children":5162},{"class":104,"line":227},[5163,5167,5171],{"type":46,"tag":102,"props":5164,"children":5165},{"style":114},[5166],{"type":52,"value":1196},{"type":46,"tag":102,"props":5168,"children":5169},{"style":114},[5170],{"type":52,"value":1201},{"type":46,"tag":102,"props":5172,"children":5173},{"style":1151},[5174],{"type":52,"value":1154},{"type":46,"tag":102,"props":5176,"children":5177},{"class":104,"line":236},[5178,5182],{"type":46,"tag":102,"props":5179,"children":5180},{"style":114},[5181],{"type":52,"value":1380},{"type":46,"tag":102,"props":5183,"children":5184},{"style":114},[5185],{"type":52,"value":1746},{"type":46,"tag":102,"props":5187,"children":5188},{"class":104,"line":1225},[5189],{"type":46,"tag":102,"props":5190,"children":5191},{"emptyLinePlaceholder":221},[5192],{"type":52,"value":224},{"type":46,"tag":102,"props":5194,"children":5195},{"class":104,"line":1243},[5196],{"type":46,"tag":102,"props":5197,"children":5198},{"style":159},[5199],{"type":52,"value":5200},"# Human at a real terminal — prompts for workspace if not passed\n",{"type":46,"tag":102,"props":5202,"children":5203},{"class":104,"line":1256},[5204,5208,5212,5216],{"type":46,"tag":102,"props":5205,"children":5206},{"style":109},[5207],{"type":52,"value":9},{"type":46,"tag":102,"props":5209,"children":5210},{"style":114},[5211],{"type":52,"value":1138},{"type":46,"tag":102,"props":5213,"children":5214},{"style":114},[5215],{"type":52,"value":1690},{"type":46,"tag":102,"props":5217,"children":5218},{"style":114},[5219],{"type":52,"value":5220}," --new\n",{"type":46,"tag":393,"props":5222,"children":5223},{},[5224],{"type":46,"tag":55,"props":5225,"children":5226},{},[5227,5229,5234,5236,5241,5242,5247],{"type":52,"value":5228},"If the token sees multiple workspaces and the agent doesn't have a workspace ID, ask the user to run ",{"type":46,"tag":98,"props":5230,"children":5232},{"className":5231},[],[5233],{"type":52,"value":639},{"type":52,"value":5235}," interactively from inside their project — the preflight prompt picks a workspace and writes ",{"type":46,"tag":98,"props":5237,"children":5239},{"className":5238},[],[5240],{"type":52,"value":647},{"type":52,"value":649},{"type":46,"tag":98,"props":5243,"children":5245},{"className":5244},[],[5246],{"type":52,"value":306},{"type":52,"value":5248}," for subsequent agent-driven runs. The workspace ID is not exposed in the Webflow dashboard UI, so the interactive CLI run is the only practical way to discover it.",{"type":46,"tag":278,"props":5250,"children":5251},{},[5252,5277],{"type":46,"tag":282,"props":5253,"children":5254},{},[5255],{"type":46,"tag":286,"props":5256,"children":5257},{},[5258,5261,5265],{"type":46,"tag":290,"props":5259,"children":5260},{},[],{"type":46,"tag":290,"props":5262,"children":5263},{},[5264],{"type":52,"value":964},{"type":46,"tag":290,"props":5266,"children":5267},{},[5268,5270,5275],{"type":52,"value":5269},"Project app (",{"type":46,"tag":98,"props":5271,"children":5273},{"className":5272},[],[5274],{"type":52,"value":4341},{"type":52,"value":5276},")",{"type":46,"tag":318,"props":5278,"children":5279},{},[5280,5298,5332,5358,5385,5421,5450],{"type":46,"tag":286,"props":5281,"children":5282},{},[5283,5288,5293],{"type":46,"tag":325,"props":5284,"children":5285},{},[5286],{"type":52,"value":5287},"OAuth \u002F site selection",{"type":46,"tag":325,"props":5289,"children":5290},{},[5291],{"type":52,"value":5292},"Required at init",{"type":46,"tag":325,"props":5294,"children":5295},{},[5296],{"type":52,"value":5297},"Skipped (workspace selection instead)",{"type":46,"tag":286,"props":5299,"children":5300},{},[5301,5315,5320],{"type":46,"tag":325,"props":5302,"children":5303},{},[5304,5309,5310],{"type":46,"tag":98,"props":5305,"children":5307},{"className":5306},[],[5308],{"type":52,"value":1567},{"type":52,"value":300},{"type":46,"tag":98,"props":5311,"children":5313},{"className":5312},[],[5314],{"type":52,"value":1574},{"type":46,"tag":325,"props":5316,"children":5317},{},[5318],{"type":52,"value":5319},"Written at init",{"type":46,"tag":325,"props":5321,"children":5322},{},[5323,5325,5330],{"type":52,"value":5324},"Written ",{"type":46,"tag":61,"props":5326,"children":5327},{},[5328],{"type":52,"value":5329},"after first deploy",{"type":52,"value":5331}," only",{"type":46,"tag":286,"props":5333,"children":5334},{},[5335,5349,5354],{"type":46,"tag":325,"props":5336,"children":5337},{},[5338,5343,5344],{"type":46,"tag":98,"props":5339,"children":5341},{"className":5340},[],[5342],{"type":52,"value":3556},{"type":52,"value":300},{"type":46,"tag":98,"props":5345,"children":5347},{"className":5346},[],[5348],{"type":52,"value":1574},{"type":46,"tag":325,"props":5350,"children":5351},{},[5352],{"type":52,"value":5353},"Written",{"type":46,"tag":325,"props":5355,"children":5356},{},[5357],{"type":52,"value":5353},{"type":46,"tag":286,"props":5359,"children":5360},{},[5361,5375,5380],{"type":46,"tag":325,"props":5362,"children":5363},{},[5364,5369,5370],{"type":46,"tag":98,"props":5365,"children":5367},{"className":5366},[],[5368],{"type":52,"value":647},{"type":52,"value":300},{"type":46,"tag":98,"props":5371,"children":5373},{"className":5372},[],[5374],{"type":52,"value":306},{"type":46,"tag":325,"props":5376,"children":5377},{},[5378],{"type":52,"value":5379},"Not set",{"type":46,"tag":325,"props":5381,"children":5382},{},[5383],{"type":52,"value":5384},"Set at init (used by first deploy)",{"type":46,"tag":286,"props":5386,"children":5387},{},[5388,5393,5407],{"type":46,"tag":325,"props":5389,"children":5390},{},[5391],{"type":52,"value":5392},"Scaffold",{"type":46,"tag":325,"props":5394,"children":5395},{},[5396,5401,5402],{"type":46,"tag":98,"props":5397,"children":5399},{"className":5398},[],[5400],{"type":52,"value":4864},{"type":52,"value":572},{"type":46,"tag":98,"props":5403,"children":5405},{"className":5404},[],[5406],{"type":52,"value":4089},{"type":46,"tag":325,"props":5408,"children":5409},{},[5410,5415,5416],{"type":46,"tag":98,"props":5411,"children":5413},{"className":5412},[],[5414],{"type":52,"value":4864},{"type":52,"value":572},{"type":46,"tag":98,"props":5417,"children":5419},{"className":5418},[],[5420],{"type":52,"value":4089},{"type":46,"tag":286,"props":5422,"children":5423},{},[5424,5429,5440],{"type":46,"tag":325,"props":5425,"children":5426},{},[5427],{"type":52,"value":5428},"Mount path",{"type":46,"tag":325,"props":5430,"children":5431},{},[5432,5434,5439],{"type":52,"value":5433},"Configurable (default ",{"type":46,"tag":98,"props":5435,"children":5437},{"className":5436},[],[5438],{"type":52,"value":4897},{"type":52,"value":5276},{"type":46,"tag":325,"props":5441,"children":5442},{},[5443,5445],{"type":52,"value":5444},"Always ",{"type":46,"tag":98,"props":5446,"children":5448},{"className":5447},[],[5449],{"type":52,"value":4905},{"type":46,"tag":286,"props":5451,"children":5452},{},[5453,5457,5462],{"type":46,"tag":325,"props":5454,"children":5455},{},[5456],{"type":52,"value":5092},{"type":46,"tag":325,"props":5458,"children":5459},{},[5460],{"type":52,"value":5461},"Runs after init",{"type":46,"tag":325,"props":5463,"children":5464},{},[5465],{"type":52,"value":5466},"Skipped",{"type":46,"tag":55,"props":5468,"children":5469},{},[5470,5475,5477,5482,5484,5488,5490,5495,5497,5502,5504,5509,5511,5516,5517,5522],{"type":46,"tag":61,"props":5471,"children":5472},{},[5473],{"type":52,"value":5474},"Workspace selection (project-app mode only):",{"type":52,"value":5476}," if ",{"type":46,"tag":98,"props":5478,"children":5480},{"className":5479},[],[5481],{"type":52,"value":593},{"type":52,"value":5483}," is ",{"type":46,"tag":61,"props":5485,"children":5486},{},[5487],{"type":52,"value":668},{"type":52,"value":5489}," passed, the CLI calls ",{"type":46,"tag":98,"props":5491,"children":5493},{"className":5492},[],[5494],{"type":52,"value":2036},{"type":52,"value":5496}," to enumerate workspaces the token has access to. Single workspace is auto-selected; multiple workspaces trigger an interactive picker. With ",{"type":46,"tag":98,"props":5498,"children":5500},{"className":5499},[],[5501],{"type":52,"value":593},{"type":52,"value":5503}," the API roundtrip is skipped — the CLI trusts the flag and surfaces a 404 later via ",{"type":46,"tag":98,"props":5505,"children":5507},{"className":5506},[],[5508],{"type":52,"value":4312},{"type":52,"value":5510}," if it's invalid. The chosen ID is persisted as ",{"type":46,"tag":98,"props":5512,"children":5514},{"className":5513},[],[5515],{"type":52,"value":647},{"type":52,"value":300},{"type":46,"tag":98,"props":5518,"children":5520},{"className":5519},[],[5521],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":55,"props":5524,"children":5525},{},[5526,5531,5533,5538,5540,5552,5554,5559,5561,5566,5567,5572,5573,5578,5580,5585,5587,5592,5593,5598,5600,5605],{"type":46,"tag":61,"props":5527,"children":5528},{},[5529],{"type":52,"value":5530},"Agent caveat:",{"type":52,"value":5532}," if the user's token sees more than one workspace and the agent can't pass ",{"type":46,"tag":98,"props":5534,"children":5536},{"className":5535},[],[5537],{"type":52,"value":593},{"type":52,"value":5539},", the picker fires and hangs in non-TTY contexts. The workspace ID is not visible in the Webflow dashboard UI, so the recovery is: ",{"type":46,"tag":61,"props":5541,"children":5542},{},[5543,5545,5550],{"type":52,"value":5544},"ask the user to run ",{"type":46,"tag":98,"props":5546,"children":5548},{"className":5547},[],[5549],{"type":52,"value":639},{"type":52,"value":5551}," interactively once from inside their project.",{"type":52,"value":5553}," The preflight prompt picks the workspace, completes a first deploy, and writes ",{"type":46,"tag":98,"props":5555,"children":5557},{"className":5556},[],[5558],{"type":52,"value":647},{"type":52,"value":5560}," (plus ",{"type":46,"tag":98,"props":5562,"children":5564},{"className":5563},[],[5565],{"type":52,"value":1553},{"type":52,"value":572},{"type":46,"tag":98,"props":5568,"children":5570},{"className":5569},[],[5571],{"type":52,"value":766},{"type":52,"value":572},{"type":46,"tag":98,"props":5574,"children":5576},{"className":5575},[],[5577],{"type":52,"value":3998},{"type":52,"value":5579},") to ",{"type":46,"tag":98,"props":5581,"children":5583},{"className":5582},[],[5584],{"type":52,"value":306},{"type":52,"value":5586},". The agent can then read the workspace ID from the manifest and pass ",{"type":46,"tag":98,"props":5588,"children":5590},{"className":5589},[],[5591],{"type":52,"value":593},{"type":52,"value":2265},{"type":46,"tag":98,"props":5594,"children":5596},{"className":5595},[],[5597],{"type":52,"value":570},{"type":52,"value":5599},", now that the site exists) on subsequent runs. To target a different workspace later, delete ",{"type":46,"tag":98,"props":5601,"children":5603},{"className":5602},[],[5604],{"type":52,"value":647},{"type":52,"value":5606}," and have the user repeat the interactive deploy.",{"type":46,"tag":1021,"props":5608,"children":5610},{"id":5609},"webflow-cloud-create-deprecated",[5611],{"type":52,"value":5612},"webflow cloud create (deprecated)",{"type":46,"tag":55,"props":5614,"children":5615},{},[5616,5622,5624,5629,5631,5636,5638,5643,5645,5650,5651,5656],{"type":46,"tag":98,"props":5617,"children":5619},{"className":5618},[],[5620],{"type":52,"value":5621},"webflow cloud create \u003Cname>",{"type":52,"value":5623}," still works but ",{"type":46,"tag":61,"props":5625,"children":5626},{},[5627],{"type":52,"value":5628},"emits a deprecation warning",{"type":52,"value":5630}," and will be removed in a future major release. It's hardcoded to ",{"type":46,"tag":98,"props":5632,"children":5634},{"className":5633},[],[5635],{"type":52,"value":4897},{"type":52,"value":5637}," mount in site-attached mode and offers a strict subset of ",{"type":46,"tag":98,"props":5639,"children":5641},{"className":5640},[],[5642],{"type":52,"value":473},{"type":52,"value":5644},". Always prefer ",{"type":46,"tag":98,"props":5646,"children":5648},{"className":5647},[],[5649],{"type":52,"value":473},{"type":52,"value":2265},{"type":46,"tag":98,"props":5652,"children":5654},{"className":5653},[],[5655],{"type":52,"value":496},{"type":52,"value":5657}," for app mode).",{"type":46,"tag":1021,"props":5659,"children":5661},{"id":5660},"webflow-cloud-deploy",[5662],{"type":52,"value":639},{"type":46,"tag":55,"props":5664,"children":5665},{},[5666,5671,5673,5678],{"type":46,"tag":61,"props":5667,"children":5668},{},[5669],{"type":52,"value":5670},"Preflight phase: identity resolution.",{"type":52,"value":5672}," Before any backend call, ",{"type":46,"tag":98,"props":5674,"children":5676},{"className":5675},[],[5677],{"type":52,"value":519},{"type":52,"value":5679}," runs a preflight step that resolves whether this is a site-attached deploy or a project-app first deploy. Resolution order (first match wins):",{"type":46,"tag":278,"props":5681,"children":5682},{},[5683,5704],{"type":46,"tag":282,"props":5684,"children":5685},{},[5686],{"type":46,"tag":286,"props":5687,"children":5688},{},[5689,5694,5699],{"type":46,"tag":290,"props":5690,"children":5691},{},[5692],{"type":52,"value":5693},"#",{"type":46,"tag":290,"props":5695,"children":5696},{},[5697],{"type":52,"value":5698},"Source",{"type":46,"tag":290,"props":5700,"children":5701},{},[5702],{"type":52,"value":5703},"Result",{"type":46,"tag":318,"props":5705,"children":5706},{},[5707,5729,5756,5785,5807,5836,5860],{"type":46,"tag":286,"props":5708,"children":5709},{},[5710,5714,5724],{"type":46,"tag":325,"props":5711,"children":5712},{},[5713],{"type":52,"value":3743},{"type":46,"tag":325,"props":5715,"children":5716},{},[5717,5722],{"type":46,"tag":98,"props":5718,"children":5720},{"className":5719},[],[5721],{"type":52,"value":4925},{"type":52,"value":5723}," flag",{"type":46,"tag":325,"props":5725,"children":5726},{},[5727],{"type":52,"value":5728},"Site-attached, overrides manifest",{"type":46,"tag":286,"props":5730,"children":5731},{},[5732,5737,5746],{"type":46,"tag":325,"props":5733,"children":5734},{},[5735],{"type":52,"value":5736},"2",{"type":46,"tag":325,"props":5738,"children":5739},{},[5740,5745],{"type":46,"tag":98,"props":5741,"children":5743},{"className":5742},[],[5744],{"type":52,"value":4957},{"type":52,"value":5723},{"type":46,"tag":325,"props":5747,"children":5748},{},[5749,5751],{"type":52,"value":5750},"Project-app first deploy, overrides manifest. Mutually exclusive with ",{"type":46,"tag":98,"props":5752,"children":5754},{"className":5753},[],[5755],{"type":52,"value":570},{"type":46,"tag":286,"props":5757,"children":5758},{},[5759,5764,5781],{"type":46,"tag":325,"props":5760,"children":5761},{},[5762],{"type":52,"value":5763},"3",{"type":46,"tag":325,"props":5765,"children":5766},{},[5767,5773,5775,5780],{"type":46,"tag":98,"props":5768,"children":5770},{"className":5769},[],[5771],{"type":52,"value":5772},"manifest.siteId",{"type":52,"value":5774}," (from ",{"type":46,"tag":98,"props":5776,"children":5778},{"className":5777},[],[5779],{"type":52,"value":306},{"type":52,"value":5276},{"type":46,"tag":325,"props":5782,"children":5783},{},[5784],{"type":52,"value":964},{"type":46,"tag":286,"props":5786,"children":5787},{},[5788,5793,5802],{"type":46,"tag":325,"props":5789,"children":5790},{},[5791],{"type":52,"value":5792},"4",{"type":46,"tag":325,"props":5794,"children":5795},{},[5796],{"type":46,"tag":98,"props":5797,"children":5799},{"className":5798},[],[5800],{"type":52,"value":5801},"manifest.cloud.workspace_id",{"type":46,"tag":325,"props":5803,"children":5804},{},[5805],{"type":52,"value":5806},"Project-app first deploy",{"type":46,"tag":286,"props":5808,"children":5809},{},[5810,5815,5825],{"type":46,"tag":325,"props":5811,"children":5812},{},[5813],{"type":52,"value":5814},"5",{"type":46,"tag":325,"props":5816,"children":5817},{},[5818,5823],{"type":46,"tag":98,"props":5819,"children":5821},{"className":5820},[],[5822],{"type":52,"value":1567},{"type":52,"value":5824}," env var",{"type":46,"tag":325,"props":5826,"children":5827},{},[5828,5830,5835],{"type":52,"value":5829},"Site-attached (used at runtime only; not persisted back to ",{"type":46,"tag":98,"props":5831,"children":5833},{"className":5832},[],[5834],{"type":52,"value":306},{"type":52,"value":5276},{"type":46,"tag":286,"props":5837,"children":5838},{},[5839,5844,5855],{"type":46,"tag":325,"props":5840,"children":5841},{},[5842],{"type":52,"value":5843},"6",{"type":46,"tag":325,"props":5845,"children":5846},{},[5847,5849,5854],{"type":52,"value":5848},"Interactive picker (no ",{"type":46,"tag":98,"props":5850,"children":5852},{"className":5851},[],[5853],{"type":52,"value":437},{"type":52,"value":5276},{"type":46,"tag":325,"props":5856,"children":5857},{},[5858],{"type":52,"value":5859},"Choose: create a new app \u002F attach to existing site \u002F cancel",{"type":46,"tag":286,"props":5861,"children":5862},{},[5863,5868,5878],{"type":46,"tag":325,"props":5864,"children":5865},{},[5866],{"type":52,"value":5867},"7",{"type":46,"tag":325,"props":5869,"children":5870},{},[5871,5873],{"type":52,"value":5872},"No match + ",{"type":46,"tag":98,"props":5874,"children":5876},{"className":5875},[],[5877],{"type":52,"value":437},{"type":46,"tag":325,"props":5879,"children":5880},{},[5881],{"type":52,"value":5882},"Hard error listing required flags",{"type":46,"tag":55,"props":5884,"children":5885},{},[5886],{"type":52,"value":5887},"This preflight phase exists to prevent the project-app deploy path from running and provisioning a Cloud app before identity is locked in — earlier versions could orphan a new Webflow site if any later step failed.",{"type":46,"tag":393,"props":5889,"children":5890},{},[5891],{"type":46,"tag":55,"props":5892,"children":5893},{},[5894,5913,5915,5920,5922,5927,5929,5934],{"type":46,"tag":61,"props":5895,"children":5896},{},[5897,5899,5904,5906,5911],{"type":52,"value":5898},"Pass ",{"type":46,"tag":98,"props":5900,"children":5902},{"className":5901},[],[5903],{"type":52,"value":570},{"type":52,"value":5905}," or ",{"type":46,"tag":98,"props":5907,"children":5909},{"className":5908},[],[5910],{"type":52,"value":593},{"type":52,"value":5912}," explicitly whenever you can.",{"type":52,"value":5914}," It defends against half-written manifests and removes the dependence on whatever state ",{"type":46,"tag":98,"props":5916,"children":5918},{"className":5917},[],[5919],{"type":52,"value":473},{"type":52,"value":5921}," happened to leave behind. If the user wants site-attached, pass ",{"type":46,"tag":98,"props":5923,"children":5925},{"className":5924},[],[5926],{"type":52,"value":570},{"type":52,"value":5928},". For project-app first deploy, pass ",{"type":46,"tag":98,"props":5930,"children":5932},{"className":5931},[],[5933],{"type":52,"value":593},{"type":52,"value":421},{"type":46,"tag":55,"props":5936,"children":5937},{},[5938,5942,5944,5949,5951,5956,5958,5964,5966,5971,5972,5977,5978,5983,5985,5990,5992,5997,5998,6003,6005,6010],{"type":46,"tag":61,"props":5939,"children":5940},{},[5941],{"type":52,"value":5806},{"type":52,"value":5943}," (triggered by ",{"type":46,"tag":98,"props":5945,"children":5947},{"className":5946},[],[5948],{"type":52,"value":593},{"type":52,"value":5950}," flag or ",{"type":46,"tag":98,"props":5952,"children":5954},{"className":5953},[],[5955],{"type":52,"value":5801},{"type":52,"value":5957},") calls ",{"type":46,"tag":98,"props":5959,"children":5961},{"className":5960},[],[5962],{"type":52,"value":5963},"POST \u002Fcosmic\u002Fworkspaces\u002F:workspace_id\u002FcloudApps",{"type":52,"value":5965}," to atomically create a site, project, and environment. On success it writes ",{"type":46,"tag":98,"props":5967,"children":5969},{"className":5968},[],[5970],{"type":52,"value":1553},{"type":52,"value":572},{"type":46,"tag":98,"props":5973,"children":5975},{"className":5974},[],[5976],{"type":52,"value":298},{"type":52,"value":587},{"type":46,"tag":98,"props":5979,"children":5981},{"className":5980},[],[5982],{"type":52,"value":4289},{"type":52,"value":5984}," into ",{"type":46,"tag":98,"props":5986,"children":5988},{"className":5987},[],[5989],{"type":52,"value":306},{"type":52,"value":5991},", writes ",{"type":46,"tag":98,"props":5993,"children":5995},{"className":5994},[],[5996],{"type":52,"value":1567},{"type":52,"value":5984},{"type":46,"tag":98,"props":5999,"children":6001},{"className":6000},[],[6002],{"type":52,"value":1574},{"type":52,"value":6004},", and forces ",{"type":46,"tag":98,"props":6006,"children":6008},{"className":6007},[],[6009],{"type":52,"value":4375},{"type":52,"value":6011}," for that one deploy. Subsequent deploys behave like normal site-attached deploys.",{"type":46,"tag":55,"props":6013,"children":6014},{},[6015,6016,6021,6023,6028,6030,6036,6038,6043],{"type":52,"value":2230},{"type":46,"tag":98,"props":6017,"children":6019},{"className":6018},[],[6020],{"type":52,"value":537},{"type":52,"value":6022}," is omitted on the first project-app deploy, the CLI uses the ",{"type":46,"tag":61,"props":6024,"children":6025},{},[6026],{"type":52,"value":6027},"cwd folder name",{"type":52,"value":6029}," (when 3–39 chars) and falls back to ",{"type":46,"tag":98,"props":6031,"children":6033},{"className":6032},[],[6034],{"type":52,"value":6035},"\"Cloud App\"",{"type":52,"value":6037},". Provide ",{"type":46,"tag":98,"props":6039,"children":6041},{"className":6040},[],[6042],{"type":52,"value":537},{"type":52,"value":6044}," explicitly in CI to avoid surprises.",{"type":46,"tag":55,"props":6046,"children":6047},{},[6048,6053,6055,6060,6062,6067,6069,6074,6076,6081,6083,6088,6089,6094],{"type":46,"tag":61,"props":6049,"children":6050},{},[6051],{"type":52,"value":6052},"Uninitialized projects",{"type":52,"value":6054}," (no ",{"type":46,"tag":98,"props":6056,"children":6058},{"className":6057},[],[6059],{"type":52,"value":1553},{"type":52,"value":6061},", no ",{"type":46,"tag":98,"props":6063,"children":6065},{"className":6064},[],[6066],{"type":52,"value":4035},{"type":52,"value":6068},", no flag): the CLI prompts the user to create a new project app, attach to an existing site, or cancel. With ",{"type":46,"tag":98,"props":6070,"children":6072},{"className":6071},[],[6073],{"type":52,"value":437},{"type":52,"value":6075}," it hard-errors listing the required flags. Agents running with ",{"type":46,"tag":98,"props":6077,"children":6079},{"className":6078},[],[6080],{"type":52,"value":437},{"type":52,"value":6082}," must always supply ",{"type":46,"tag":98,"props":6084,"children":6086},{"className":6085},[],[6087],{"type":52,"value":570},{"type":52,"value":5905},{"type":46,"tag":98,"props":6090,"children":6092},{"className":6091},[],[6093],{"type":52,"value":593},{"type":52,"value":6095}," on the first deploy of an uninitialized project.",{"type":46,"tag":55,"props":6097,"children":6098},{},[6099,6101,6106],{"type":52,"value":6100},"There are two deployment approaches. ",{"type":46,"tag":61,"props":6102,"children":6103},{},[6104],{"type":52,"value":6105},"GitHub-linked deployment is recommended",{"type":52,"value":6107}," — it requires no CI configuration. After a one-time dashboard setup (which the CLI can't do), every push to the connected branch triggers a deploy.",{"type":46,"tag":55,"props":6109,"children":6110},{},[6111],{"type":46,"tag":61,"props":6112,"children":6113},{},[6114],{"type":52,"value":6115},"Option 1 (recommended): GitHub-linked deployment",{"type":46,"tag":55,"props":6117,"children":6118},{},[6119,6121,6126],{"type":52,"value":6120},"Once a one-time dashboard setup is done, every push to the connected branch triggers a deploy — no CLI commands, no workflow file. ",{"type":46,"tag":61,"props":6122,"children":6123},{},[6124],{"type":52,"value":6125},"The setup is dashboard-only — the CLI cannot reach this state on its own.",{"type":52,"value":6127}," Pushing a repo to GitHub does not, by itself, enable push-to-deploy.",{"type":46,"tag":1646,"props":6129,"children":6130},{},[6131,6136,6157,6169,6174],{"type":46,"tag":1650,"props":6132,"children":6133},{},[6134],{"type":52,"value":6135},"Push the project to GitHub (the user needs at least one commit pushed)",{"type":46,"tag":1650,"props":6137,"children":6138},{},[6139,6144,6146,6150,6151,6155],{"type":46,"tag":61,"props":6140,"children":6141},{},[6142],{"type":52,"value":6143},"Tell the user to open the Webflow dashboard",{"type":52,"value":6145}," → their Cloud project → ",{"type":46,"tag":61,"props":6147,"children":6148},{},[6149],{"type":52,"value":2704},{"type":52,"value":2706},{"type":46,"tag":61,"props":6152,"children":6153},{},[6154],{"type":52,"value":2711},{"type":52,"value":6156}," and connect their GitHub account if not already connected",{"type":46,"tag":1650,"props":6158,"children":6159},{},[6160,6162,6168],{"type":52,"value":6161},"Select the repository, then the branch to deploy from (e.g. ",{"type":46,"tag":98,"props":6163,"children":6165},{"className":6164},[],[6166],{"type":52,"value":6167},"main",{"type":52,"value":5276},{"type":46,"tag":1650,"props":6170,"children":6171},{},[6172],{"type":52,"value":6173},"Confirm — the dashboard runs an initial deploy automatically to verify the connection",{"type":46,"tag":1650,"props":6175,"children":6176},{},[6177,6179,6184],{"type":52,"value":6178},"From that point on: ",{"type":46,"tag":98,"props":6180,"children":6182},{"className":6181},[],[6183],{"type":52,"value":3019},{"type":52,"value":6185}," to the connected branch = deploy",{"type":46,"tag":55,"props":6187,"children":6188},{},[6189],{"type":52,"value":6190},"Steps 2–4 cannot be scripted. If the user wants push-to-deploy, they have to click through the dashboard once. After that, the agent's job for this project is essentially done — future deploys happen on push.",{"type":46,"tag":393,"props":6192,"children":6193},{},[6194],{"type":46,"tag":55,"props":6195,"children":6196},{},[6197],{"type":52,"value":6198},"When suggesting a deployment setup to a user, always lead with this option. Only suggest GitHub Actions if the user needs custom pre\u002Fpost steps, secrets injection, or multi-environment logic that the native GitHub integration does not cover.",{"type":46,"tag":55,"props":6200,"children":6201},{},[6202],{"type":46,"tag":61,"props":6203,"children":6204},{},[6205],{"type":52,"value":6206},"Option 2: GitHub Actions (manual CI\u002FCD)",{"type":46,"tag":55,"props":6208,"children":6209},{},[6210,6212,6218],{"type":52,"value":6211},"Use when you need custom build steps, environment-specific secrets, or deploy gates not supported by the native GitHub integration. See the ",{"type":46,"tag":708,"props":6213,"children":6215},{"href":6214},"#github-actions-cicd-pipeline",[6216],{"type":52,"value":6217},"GitHub Actions example",{"type":52,"value":6219}," in the Examples section.",{"type":46,"tag":55,"props":6221,"children":6222},{},[6223],{"type":46,"tag":61,"props":6224,"children":6225},{},[6226],{"type":52,"value":6227},"Option 3: Local \u002F manual deploy",{"type":46,"tag":55,"props":6229,"children":6230},{},[6231],{"type":52,"value":6232},"For development and one-off deploys:",{"type":46,"tag":90,"props":6234,"children":6236},{"className":92,"code":6235,"language":94,"meta":95,"style":95},"webflow cloud deploy \\\n  --no-input \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[6237],{"type":46,"tag":98,"props":6238,"children":6239},{"__ignoreMap":95},[6240,6259,6270,6285,6300,6311],{"type":46,"tag":102,"props":6241,"children":6242},{"class":104,"line":105},[6243,6247,6251,6255],{"type":46,"tag":102,"props":6244,"children":6245},{"style":109},[6246],{"type":52,"value":9},{"type":46,"tag":102,"props":6248,"children":6249},{"style":114},[6250],{"type":52,"value":1138},{"type":46,"tag":102,"props":6252,"children":6253},{"style":114},[6254],{"type":52,"value":1143},{"type":46,"tag":102,"props":6256,"children":6257},{"style":1151},[6258],{"type":52,"value":1154},{"type":46,"tag":102,"props":6260,"children":6261},{"class":104,"line":155},[6262,6266],{"type":46,"tag":102,"props":6263,"children":6264},{"style":114},[6265],{"type":52,"value":2314},{"type":46,"tag":102,"props":6267,"children":6268},{"style":1151},[6269],{"type":52,"value":1154},{"type":46,"tag":102,"props":6271,"children":6272},{"class":104,"line":165},[6273,6277,6281],{"type":46,"tag":102,"props":6274,"children":6275},{"style":114},[6276],{"type":52,"value":1213},{"type":46,"tag":102,"props":6278,"children":6279},{"style":114},[6280],{"type":52,"value":1431},{"type":46,"tag":102,"props":6282,"children":6283},{"style":1151},[6284],{"type":52,"value":1154},{"type":46,"tag":102,"props":6286,"children":6287},{"class":104,"line":227},[6288,6292,6296],{"type":46,"tag":102,"props":6289,"children":6290},{"style":114},[6291],{"type":52,"value":1231},{"type":46,"tag":102,"props":6293,"children":6294},{"style":114},[6295],{"type":52,"value":1236},{"type":46,"tag":102,"props":6297,"children":6298},{"style":1151},[6299],{"type":52,"value":1154},{"type":46,"tag":102,"props":6301,"children":6302},{"class":104,"line":236},[6303,6307],{"type":46,"tag":102,"props":6304,"children":6305},{"style":114},[6306],{"type":52,"value":1249},{"type":46,"tag":102,"props":6308,"children":6309},{"style":1151},[6310],{"type":52,"value":1154},{"type":46,"tag":102,"props":6312,"children":6313},{"class":104,"line":1225},[6314],{"type":46,"tag":102,"props":6315,"children":6316},{"style":114},[6317],{"type":52,"value":1262},{"type":46,"tag":55,"props":6319,"children":6320},{},[6321,6322,6327],{"type":52,"value":4144},{"type":46,"tag":98,"props":6323,"children":6325},{"className":6324},[],[6326],{"type":52,"value":519},{"type":52,"value":6328}," flags:",{"type":46,"tag":278,"props":6330,"children":6331},{},[6332,6350],{"type":46,"tag":282,"props":6333,"children":6334},{},[6335],{"type":46,"tag":286,"props":6336,"children":6337},{},[6338,6342,6346],{"type":46,"tag":290,"props":6339,"children":6340},{},[6341],{"type":52,"value":4773},{"type":46,"tag":290,"props":6343,"children":6344},{},[6345],{"type":52,"value":4778},{"type":46,"tag":290,"props":6347,"children":6348},{},[6349],{"type":52,"value":3541},{"type":46,"tag":318,"props":6351,"children":6352},{},[6353,6379,6422,6455,6505,6554,6596,6638,6694,6720,6741,6775,6803],{"type":46,"tag":286,"props":6354,"children":6355},{},[6356,6364,6368],{"type":46,"tag":325,"props":6357,"children":6358},{},[6359],{"type":46,"tag":98,"props":6360,"children":6362},{"className":6361},[],[6363],{"type":52,"value":437},{"type":46,"tag":325,"props":6365,"children":6366},{},[6367],{"type":52,"value":334},{"type":46,"tag":325,"props":6369,"children":6370},{},[6371,6373,6377],{"type":52,"value":6372},"CI mode. Disables most prompts but ",{"type":46,"tag":61,"props":6374,"children":6375},{},[6376],{"type":52,"value":668},{"type":52,"value":6378}," the project-select prompt — see callout below.",{"type":46,"tag":286,"props":6380,"children":6381},{},[6382,6390,6398],{"type":46,"tag":325,"props":6383,"children":6384},{},[6385],{"type":46,"tag":98,"props":6386,"children":6388},{"className":6387},[],[6389],{"type":52,"value":4877},{"type":46,"tag":325,"props":6391,"children":6392},{},[6393],{"type":46,"tag":98,"props":6394,"children":6396},{"className":6395},[],[6397],{"type":52,"value":4886},{"type":46,"tag":325,"props":6399,"children":6400},{},[6401,6403,6414,6416,6421],{"type":52,"value":6402},"Mount path. ",{"type":46,"tag":61,"props":6404,"children":6405},{},[6406,6408,6413],{"type":52,"value":6407},"Always required with ",{"type":46,"tag":98,"props":6409,"children":6411},{"className":6410},[],[6412],{"type":52,"value":437},{"type":52,"value":421},{"type":52,"value":6415}," Not auto-read from ",{"type":46,"tag":98,"props":6417,"children":6419},{"className":6418},[],[6420],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":286,"props":6423,"children":6424},{},[6425,6434,6443],{"type":46,"tag":325,"props":6426,"children":6427},{},[6428],{"type":46,"tag":98,"props":6429,"children":6431},{"className":6430},[],[6432],{"type":52,"value":6433},"--environment \u003Cenv>",{"type":46,"tag":325,"props":6435,"children":6436},{},[6437],{"type":46,"tag":98,"props":6438,"children":6440},{"className":6439},[],[6441],{"type":52,"value":6442},"-e",{"type":46,"tag":325,"props":6444,"children":6445},{},[6446,6448,6454],{"type":52,"value":6447},"Environment name. Creates if it does not exist. Must be passed with ",{"type":46,"tag":98,"props":6449,"children":6451},{"className":6450},[],[6452],{"type":52,"value":6453},"--mount",{"type":52,"value":421},{"type":46,"tag":286,"props":6456,"children":6457},{},[6458,6466,6474],{"type":46,"tag":325,"props":6459,"children":6460},{},[6461],{"type":46,"tag":98,"props":6462,"children":6464},{"className":6463},[],[6465],{"type":52,"value":4797},{"type":46,"tag":325,"props":6467,"children":6468},{},[6469],{"type":46,"tag":98,"props":6470,"children":6472},{"className":6471},[],[6473],{"type":52,"value":4806},{"type":46,"tag":325,"props":6475,"children":6476},{},[6477,6479,6484,6486,6491,6492,6497,6499,6503],{"type":52,"value":6478},"Required on first deploy with ",{"type":46,"tag":98,"props":6480,"children":6482},{"className":6481},[],[6483],{"type":52,"value":437},{"type":52,"value":6485}," when no ",{"type":46,"tag":98,"props":6487,"children":6489},{"className":6488},[],[6490],{"type":52,"value":298},{"type":52,"value":300},{"type":46,"tag":98,"props":6493,"children":6495},{"className":6494},[],[6496],{"type":52,"value":306},{"type":52,"value":6498},". ",{"type":46,"tag":61,"props":6500,"children":6501},{},[6502],{"type":52,"value":4816},{"type":52,"value":6504}," for project-app first deploy.",{"type":46,"tag":286,"props":6506,"children":6507},{},[6508,6516,6524],{"type":46,"tag":325,"props":6509,"children":6510},{},[6511],{"type":46,"tag":98,"props":6512,"children":6514},{"className":6513},[],[6515],{"type":52,"value":4925},{"type":46,"tag":325,"props":6517,"children":6518},{},[6519],{"type":46,"tag":98,"props":6520,"children":6522},{"className":6521},[],[6523],{"type":52,"value":4934},{"type":46,"tag":325,"props":6525,"children":6526},{},[6527,6532,6534,6539,6540,6545,6547,6552],{"type":46,"tag":61,"props":6528,"children":6529},{},[6530],{"type":52,"value":6531},"New.",{"type":52,"value":6533}," Webflow site ID for site-attached deploys. Overrides ",{"type":46,"tag":98,"props":6535,"children":6537},{"className":6536},[],[6538],{"type":52,"value":1553},{"type":52,"value":300},{"type":46,"tag":98,"props":6541,"children":6543},{"className":6542},[],[6544],{"type":52,"value":306},{"type":52,"value":6546},". Mutually exclusive with ",{"type":46,"tag":98,"props":6548,"children":6550},{"className":6549},[],[6551],{"type":52,"value":593},{"type":52,"value":6553},". Use this to recover from a half-written manifest without editing JSON.",{"type":46,"tag":286,"props":6555,"children":6556},{},[6557,6565,6573],{"type":46,"tag":325,"props":6558,"children":6559},{},[6560],{"type":46,"tag":98,"props":6561,"children":6563},{"className":6562},[],[6564],{"type":52,"value":4957},{"type":46,"tag":325,"props":6566,"children":6567},{},[6568],{"type":46,"tag":98,"props":6569,"children":6571},{"className":6570},[],[6572],{"type":52,"value":4966},{"type":46,"tag":325,"props":6574,"children":6575},{},[6576,6578,6583,6584,6589,6590,6595],{"type":52,"value":6577},"Workspace ID for project-app first deploys. Overrides ",{"type":46,"tag":98,"props":6579,"children":6581},{"className":6580},[],[6582],{"type":52,"value":647},{"type":52,"value":300},{"type":46,"tag":98,"props":6585,"children":6587},{"className":6586},[],[6588],{"type":52,"value":306},{"type":52,"value":6546},{"type":46,"tag":98,"props":6591,"children":6593},{"className":6592},[],[6594],{"type":52,"value":570},{"type":52,"value":421},{"type":46,"tag":286,"props":6597,"children":6598},{},[6599,6608,6617],{"type":46,"tag":325,"props":6600,"children":6601},{},[6602],{"type":46,"tag":98,"props":6603,"children":6605},{"className":6604},[],[6606],{"type":52,"value":6607},"--project-id \u003Cid>",{"type":46,"tag":325,"props":6609,"children":6610},{},[6611],{"type":46,"tag":98,"props":6612,"children":6614},{"className":6613},[],[6615],{"type":52,"value":6616},"-p",{"type":46,"tag":325,"props":6618,"children":6619},{},[6620,6624,6626,6631,6632,6637],{"type":46,"tag":61,"props":6621,"children":6622},{},[6623],{"type":52,"value":6531},{"type":52,"value":6625}," Cloud project ID. Skips the app picker. Overrides ",{"type":46,"tag":98,"props":6627,"children":6629},{"className":6628},[],[6630],{"type":52,"value":298},{"type":52,"value":300},{"type":46,"tag":98,"props":6633,"children":6635},{"className":6634},[],[6636],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":286,"props":6639,"children":6640},{},[6641,6650,6658],{"type":46,"tag":325,"props":6642,"children":6643},{},[6644],{"type":46,"tag":98,"props":6645,"children":6647},{"className":6646},[],[6648],{"type":52,"value":6649},"--framework \u003Cfw>",{"type":46,"tag":325,"props":6651,"children":6652},{},[6653],{"type":46,"tag":98,"props":6654,"children":6656},{"className":6655},[],[6657],{"type":52,"value":4839},{"type":46,"tag":325,"props":6659,"children":6660},{},[6661,6665,6667,6672,6673,6678,6680,6685,6687,6692],{"type":46,"tag":61,"props":6662,"children":6663},{},[6664],{"type":52,"value":6531},{"type":52,"value":6666}," Override framework detection. Must be ",{"type":46,"tag":98,"props":6668,"children":6670},{"className":6669},[],[6671],{"type":52,"value":4089},{"type":52,"value":5905},{"type":46,"tag":98,"props":6674,"children":6676},{"className":6675},[],[6677],{"type":52,"value":4864},{"type":52,"value":6679},". Writes the value back into ",{"type":46,"tag":98,"props":6681,"children":6683},{"className":6682},[],[6684],{"type":52,"value":306},{"type":52,"value":6686},". Use when auto-detection from ",{"type":46,"tag":98,"props":6688,"children":6690},{"className":6689},[],[6691],{"type":52,"value":1044},{"type":52,"value":6693}," is unreliable (monorepos, missing dependencies, etc.).",{"type":46,"tag":286,"props":6695,"children":6696},{},[6697,6706,6715],{"type":46,"tag":325,"props":6698,"children":6699},{},[6700],{"type":46,"tag":98,"props":6701,"children":6703},{"className":6702},[],[6704],{"type":52,"value":6705},"--directory \u003Cpath>",{"type":46,"tag":325,"props":6707,"children":6708},{},[6709],{"type":46,"tag":98,"props":6710,"children":6712},{"className":6711},[],[6713],{"type":52,"value":6714},"-d",{"type":46,"tag":325,"props":6716,"children":6717},{},[6718],{"type":52,"value":6719},"Project directory (default: cwd). Use for monorepos.",{"type":46,"tag":286,"props":6721,"children":6722},{},[6723,6732,6736],{"type":46,"tag":325,"props":6724,"children":6725},{},[6726],{"type":46,"tag":98,"props":6727,"children":6729},{"className":6728},[],[6730],{"type":52,"value":6731},"--description \u003Ctext>",{"type":46,"tag":325,"props":6733,"children":6734},{},[6735],{"type":52,"value":334},{"type":46,"tag":325,"props":6737,"children":6738},{},[6739],{"type":52,"value":6740},"Project description for the first deploy.",{"type":46,"tag":286,"props":6742,"children":6743},{},[6744,6752,6756],{"type":46,"tag":325,"props":6745,"children":6746},{},[6747],{"type":46,"tag":98,"props":6748,"children":6750},{"className":6749},[],[6751],{"type":52,"value":4375},{"type":46,"tag":325,"props":6753,"children":6754},{},[6755],{"type":52,"value":334},{"type":46,"tag":325,"props":6757,"children":6758},{},[6759,6761,6766,6768,6774],{"type":52,"value":6760},"Skip domain manifest validation. Required in CI. Can also be set in ",{"type":46,"tag":98,"props":6762,"children":6764},{"className":6763},[],[6765],{"type":52,"value":306},{"type":52,"value":6767}," as ",{"type":46,"tag":98,"props":6769,"children":6771},{"className":6770},[],[6772],{"type":52,"value":6773},"cloud.skipMountPathCheck: true",{"type":52,"value":421},{"type":46,"tag":286,"props":6776,"children":6777},{},[6778,6787,6791],{"type":46,"tag":325,"props":6779,"children":6780},{},[6781],{"type":46,"tag":98,"props":6782,"children":6784},{"className":6783},[],[6785],{"type":52,"value":6786},"--auto-publish",{"type":46,"tag":325,"props":6788,"children":6789},{},[6790],{"type":52,"value":334},{"type":46,"tag":325,"props":6792,"children":6793},{},[6794,6796,6801],{"type":52,"value":6795},"Publish the Webflow ",{"type":46,"tag":61,"props":6797,"children":6798},{},[6799],{"type":52,"value":6800},"site",{"type":52,"value":6802}," to sync mount path routing. Does not affect app deployment.",{"type":46,"tag":286,"props":6804,"children":6805},{},[6806,6815,6819],{"type":46,"tag":325,"props":6807,"children":6808},{},[6809],{"type":46,"tag":98,"props":6810,"children":6812},{"className":6811},[],[6813],{"type":52,"value":6814},"--skip-update-check",{"type":46,"tag":325,"props":6816,"children":6817},{},[6818],{"type":52,"value":334},{"type":46,"tag":325,"props":6820,"children":6821},{},[6822],{"type":52,"value":6823},"Skip @webflow package update check.",{"type":46,"tag":393,"props":6825,"children":6826},{},[6827],{"type":46,"tag":55,"props":6828,"children":6829},{},[6830,6850,6852,6857,6858,6863,6865,6869,6871,6876,6878,6883,6885,6890,6891,6896,6898,6903,6905,6910,6912,6917],{"type":46,"tag":61,"props":6831,"children":6832},{},[6833,6835,6840,6842,6848],{"type":52,"value":6834},"Agents: pass ",{"type":46,"tag":98,"props":6836,"children":6838},{"className":6837},[],[6839],{"type":52,"value":6453},{"type":52,"value":6841}," AND ",{"type":46,"tag":98,"props":6843,"children":6845},{"className":6844},[],[6846],{"type":52,"value":6847},"--environment",{"type":52,"value":6849}," together, every time.",{"type":52,"value":6851}," The deploy prompts (select existing project, name a new project, pick an environment) are gated on whether ",{"type":46,"tag":98,"props":6853,"children":6855},{"className":6854},[],[6856],{"type":52,"value":6453},{"type":52,"value":1547},{"type":46,"tag":98,"props":6859,"children":6861},{"className":6860},[],[6862],{"type":52,"value":6847},{"type":52,"value":6864}," are ",{"type":46,"tag":686,"props":6866,"children":6867},{},[6868],{"type":52,"value":3496},{"type":52,"value":6870}," set — not on ",{"type":46,"tag":98,"props":6872,"children":6874},{"className":6873},[],[6875],{"type":52,"value":437},{"type":52,"value":6877},". Pass ",{"type":46,"tag":98,"props":6879,"children":6881},{"className":6880},[],[6882],{"type":52,"value":437},{"type":52,"value":6884}," without both and the project-select prompt still fires and hangs in non-TTY contexts. The minimum agent-safe deploy flag set is ",{"type":46,"tag":98,"props":6886,"children":6888},{"className":6887},[],[6889],{"type":52,"value":529},{"type":52,"value":2265},{"type":46,"tag":98,"props":6892,"children":6894},{"className":6893},[],[6895],{"type":52,"value":4957},{"type":52,"value":6897}," for project-app first deploy), plus ",{"type":46,"tag":98,"props":6899,"children":6901},{"className":6900},[],[6902],{"type":52,"value":537},{"type":52,"value":6904}," whenever ",{"type":46,"tag":98,"props":6906,"children":6908},{"className":6907},[],[6909],{"type":52,"value":298},{"type":52,"value":6911}," is absent from ",{"type":46,"tag":98,"props":6913,"children":6915},{"className":6914},[],[6916],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":83,"props":6919,"children":6921},{"id":6920},"frameworks",[6922],{"type":52,"value":6923},"Frameworks",{"type":46,"tag":278,"props":6925,"children":6926},{},[6927,6953],{"type":46,"tag":282,"props":6928,"children":6929},{},[6930],{"type":46,"tag":286,"props":6931,"children":6932},{},[6933,6938,6943,6948],{"type":46,"tag":290,"props":6934,"children":6935},{},[6936],{"type":52,"value":6937},"Framework",{"type":46,"tag":290,"props":6939,"children":6940},{},[6941],{"type":52,"value":6942},"Init scaffold",{"type":46,"tag":290,"props":6944,"children":6945},{},[6946],{"type":52,"value":6947},"Deploy support",{"type":46,"tag":290,"props":6949,"children":6950},{},[6951],{"type":52,"value":6952},"Detected via package",{"type":46,"tag":318,"props":6954,"children":6955},{},[6956,6984],{"type":46,"tag":286,"props":6957,"children":6958},{},[6959,6967,6972,6976],{"type":46,"tag":325,"props":6960,"children":6961},{},[6962],{"type":46,"tag":98,"props":6963,"children":6965},{"className":6964},[],[6966],{"type":52,"value":4089},{"type":46,"tag":325,"props":6968,"children":6969},{},[6970],{"type":52,"value":6971},"✓",{"type":46,"tag":325,"props":6973,"children":6974},{},[6975],{"type":52,"value":6971},{"type":46,"tag":325,"props":6977,"children":6978},{},[6979],{"type":46,"tag":98,"props":6980,"children":6982},{"className":6981},[],[6983],{"type":52,"value":1285},{"type":46,"tag":286,"props":6985,"children":6986},{},[6987,6995,6999,7003],{"type":46,"tag":325,"props":6988,"children":6989},{},[6990],{"type":46,"tag":98,"props":6991,"children":6993},{"className":6992},[],[6994],{"type":52,"value":4864},{"type":46,"tag":325,"props":6996,"children":6997},{},[6998],{"type":52,"value":6971},{"type":46,"tag":325,"props":7000,"children":7001},{},[7002],{"type":52,"value":6971},{"type":46,"tag":325,"props":7004,"children":7005},{},[7006],{"type":46,"tag":98,"props":7007,"children":7009},{"className":7008},[],[7010],{"type":52,"value":1292},{"type":46,"tag":55,"props":7012,"children":7013},{},[7014,7016,7021,7023,7028],{"type":52,"value":7015},"Any other value in ",{"type":46,"tag":98,"props":7017,"children":7019},{"className":7018},[],[7020],{"type":52,"value":4240},{"type":52,"value":7022}," causes ",{"type":46,"tag":98,"props":7024,"children":7026},{"className":7025},[],[7027],{"type":52,"value":519},{"type":52,"value":7029}," to exit with code 1.",{"type":46,"tag":393,"props":7031,"children":7032},{},[7033],{"type":46,"tag":55,"props":7034,"children":7035},{},[7036,7041,7043,7049,7051,7057,7059,7064,7066,7072,7074,7080],{"type":46,"tag":61,"props":7037,"children":7038},{},[7039],{"type":52,"value":7040},"Scaffolds are fetched from GitHub at init time.",{"type":52,"value":7042}," The CLI downloads scaffold tarballs from ",{"type":46,"tag":98,"props":7044,"children":7046},{"className":7045},[],[7047],{"type":52,"value":7048},"Webflow-Examples\u002Fhello-world-{astro,nextjs}*",{"type":52,"value":7050}," (pinned to the ",{"type":46,"tag":98,"props":7052,"children":7054},{"className":7053},[],[7055],{"type":52,"value":7056},"v1",{"type":52,"value":7058}," branch). ",{"type":46,"tag":98,"props":7060,"children":7062},{"className":7061},[],[7063],{"type":52,"value":473},{"type":52,"value":7065}," therefore requires network access to ",{"type":46,"tag":98,"props":7067,"children":7069},{"className":7068},[],[7070],{"type":52,"value":7071},"github.com",{"type":52,"value":7073},". Old CLI installs keep working because the registry pins a ",{"type":46,"tag":98,"props":7075,"children":7077},{"className":7076},[],[7078],{"type":52,"value":7079},"vN",{"type":52,"value":7081}," branch per scaffold-contract version.",{"type":46,"tag":83,"props":7083,"children":7085},{"id":7084},"global-flags",[7086],{"type":52,"value":7087},"Global flags",{"type":46,"tag":278,"props":7089,"children":7090},{},[7091,7105],{"type":46,"tag":282,"props":7092,"children":7093},{},[7094],{"type":46,"tag":286,"props":7095,"children":7096},{},[7097,7101],{"type":46,"tag":290,"props":7098,"children":7099},{},[7100],{"type":52,"value":4773},{"type":46,"tag":290,"props":7102,"children":7103},{},[7104],{"type":52,"value":3541},{"type":46,"tag":318,"props":7106,"children":7107},{},[7108,7124,7148],{"type":46,"tag":286,"props":7109,"children":7110},{},[7111,7119],{"type":46,"tag":325,"props":7112,"children":7113},{},[7114],{"type":46,"tag":98,"props":7115,"children":7117},{"className":7116},[],[7118],{"type":52,"value":437},{"type":46,"tag":325,"props":7120,"children":7121},{},[7122],{"type":52,"value":7123},"Disable all interactive prompts. Required for CI\u002Fautomation.",{"type":46,"tag":286,"props":7125,"children":7126},{},[7127,7136],{"type":46,"tag":325,"props":7128,"children":7129},{},[7130],{"type":46,"tag":98,"props":7131,"children":7133},{"className":7132},[],[7134],{"type":52,"value":7135},"--manifest \u003Cpath>",{"type":46,"tag":325,"props":7137,"children":7138},{},[7139,7141,7146],{"type":52,"value":7140},"Custom path to ",{"type":46,"tag":98,"props":7142,"children":7144},{"className":7143},[],[7145],{"type":52,"value":306},{"type":52,"value":7147},". Use for monorepos.",{"type":46,"tag":286,"props":7149,"children":7150},{},[7151,7159],{"type":46,"tag":325,"props":7152,"children":7153},{},[7154],{"type":46,"tag":98,"props":7155,"children":7157},{"className":7156},[],[7158],{"type":52,"value":6814},{"type":46,"tag":325,"props":7160,"children":7161},{},[7162,7164,7170],{"type":52,"value":7163},"Skip @webflow package update check. Alternatively, set ",{"type":46,"tag":98,"props":7165,"children":7167},{"className":7166},[],[7168],{"type":52,"value":7169},"WEBFLOW_SKIP_UPDATE_CHECKS=true",{"type":52,"value":421},{"type":46,"tag":76,"props":7172,"children":7174},{"id":7173},"output",[7175],{"type":52,"value":7176},"Output",{"type":46,"tag":55,"props":7178,"children":7179},{},[7180,7182,7187],{"type":52,"value":7181},"After a successful ",{"type":46,"tag":98,"props":7183,"children":7185},{"className":7184},[],[7186],{"type":52,"value":519},{"type":52,"value":7188},", the CLI prints two pieces of output.",{"type":46,"tag":55,"props":7190,"children":7191},{},[7192,7197],{"type":46,"tag":61,"props":7193,"children":7194},{},[7195],{"type":52,"value":7196},"1. Deployment dashboard URL",{"type":52,"value":7198}," — always present on success:",{"type":46,"tag":90,"props":7200,"children":7203},{"className":7201,"code":7202,"language":52},[2200],"https:\u002F\u002Fwebflow.com\u002Fdashboard\u002Fsites\u002F{siteId}\u002Fwebflow-cloud\u002Fprojects\u002F{projectId}\u002Fenvironments\u002F{environmentId}\u002Fdeployments\u002F{deploymentId}\n",[7204],{"type":46,"tag":98,"props":7205,"children":7206},{"__ignoreMap":95},[7207],{"type":52,"value":7202},{"type":46,"tag":55,"props":7209,"children":7210},{},[7211],{"type":52,"value":7212},"Always show this to the user. From here they can view build logs, deployment status, history, and environment settings.",{"type":46,"tag":55,"props":7214,"children":7215},{},[7216,7221],{"type":46,"tag":61,"props":7217,"children":7218},{},[7219],{"type":52,"value":7220},"2. Live app URL",{"type":52,"value":7222}," — conditional:",{"type":46,"tag":90,"props":7224,"children":7227},{"className":7225,"code":7226,"language":52},[2200],"🌐 Your cloud app will soon be available at:\n   https:\u002F\u002F{your-site}.webflow.io\u002F{mount-path}\n",[7228],{"type":46,"tag":98,"props":7229,"children":7230},{"__ignoreMap":95},[7231],{"type":52,"value":7226},{"type":46,"tag":55,"props":7233,"children":7234},{},[7235,7237,7242,7244,7249,7250,7255],{"type":52,"value":7236},"If a real URL is printed, show it to the user as the live app link. The domain is their Webflow site's domain and the path is whatever ",{"type":46,"tag":98,"props":7238,"children":7240},{"className":7239},[],[7241],{"type":52,"value":6453},{"type":52,"value":7243}," value was used at deploy time (e.g. ",{"type":46,"tag":98,"props":7245,"children":7247},{"className":7246},[],[7248],{"type":52,"value":4905},{"type":52,"value":572},{"type":46,"tag":98,"props":7251,"children":7253},{"className":7252},[],[7254],{"type":52,"value":4897},{"type":52,"value":7256},", or any other user-chosen path).",{"type":46,"tag":55,"props":7258,"children":7259},{},[7260,7262,7268],{"type":52,"value":7261},"If the output instead reads ",{"type":46,"tag":98,"props":7263,"children":7265},{"className":7264},[],[7266],{"type":52,"value":7267},"No domains found with the correct mount path configuration yet.",{"type":52,"value":7269},", do not show a live URL — point the user to the dashboard deployment link above to check status and configure their domain.",{"type":46,"tag":55,"props":7271,"children":7272},{},[7273,7277],{"type":46,"tag":61,"props":7274,"children":7275},{},[7276],{"type":52,"value":3399},{"type":52,"value":7278}," fetch or curl either URL to verify the deploy — just return what the CLI printed.",{"type":46,"tag":76,"props":7280,"children":7282},{"id":7281},"examples",[7283],{"type":52,"value":7284},"Examples",{"type":46,"tag":83,"props":7286,"children":7288},{"id":7287},"full-workflow-scaffold-github-dashboard-connection-push-to-deploy-recommended",[7289],{"type":52,"value":7290},"Full workflow: scaffold → GitHub → dashboard connection → push-to-deploy (recommended)",{"type":46,"tag":55,"props":7292,"children":7293},{},[7294,7296,7301],{"type":52,"value":7295},"The CLI handles steps 1 and 2. ",{"type":46,"tag":61,"props":7297,"children":7298},{},[7299],{"type":52,"value":7300},"Step 3 must happen in the Webflow dashboard — the CLI cannot do it.",{"type":52,"value":7302}," Without step 3, pushing to GitHub does not deploy.",{"type":46,"tag":90,"props":7304,"children":7306},{"className":92,"code":7305,"language":94,"meta":95,"style":95},"# 1. Scaffold locally (CLI)\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework nextjs \\\n  --workspace-id ws_abc123\n\n# 2. Push to GitHub (CLI \u002F git)\ngit init && git add . && git commit -m \"init\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fmy-app.git\ngit push -u origin main\n",[7307],{"type":46,"tag":98,"props":7308,"children":7309},{"__ignoreMap":95},[7310,7318,7345,7360,7375,7386,7393,7401,7456,7479],{"type":46,"tag":102,"props":7311,"children":7312},{"class":104,"line":105},[7313],{"type":46,"tag":102,"props":7314,"children":7315},{"style":159},[7316],{"type":52,"value":7317},"# 1. Scaffold locally (CLI)\n",{"type":46,"tag":102,"props":7319,"children":7320},{"class":104,"line":155},[7321,7325,7329,7333,7337,7341],{"type":46,"tag":102,"props":7322,"children":7323},{"style":109},[7324],{"type":52,"value":9},{"type":46,"tag":102,"props":7326,"children":7327},{"style":114},[7328],{"type":52,"value":1138},{"type":46,"tag":102,"props":7330,"children":7331},{"style":114},[7332],{"type":52,"value":1690},{"type":46,"tag":102,"props":7334,"children":7335},{"style":114},[7336],{"type":52,"value":1695},{"type":46,"tag":102,"props":7338,"children":7339},{"style":114},[7340],{"type":52,"value":1148},{"type":46,"tag":102,"props":7342,"children":7343},{"style":1151},[7344],{"type":52,"value":1154},{"type":46,"tag":102,"props":7346,"children":7347},{"class":104,"line":165},[7348,7352,7356],{"type":46,"tag":102,"props":7349,"children":7350},{"style":114},[7351],{"type":52,"value":1179},{"type":46,"tag":102,"props":7353,"children":7354},{"style":114},[7355],{"type":52,"value":1184},{"type":46,"tag":102,"props":7357,"children":7358},{"style":1151},[7359],{"type":52,"value":1154},{"type":46,"tag":102,"props":7361,"children":7362},{"class":104,"line":227},[7363,7367,7371],{"type":46,"tag":102,"props":7364,"children":7365},{"style":114},[7366],{"type":52,"value":1196},{"type":46,"tag":102,"props":7368,"children":7369},{"style":114},[7370],{"type":52,"value":1201},{"type":46,"tag":102,"props":7372,"children":7373},{"style":1151},[7374],{"type":52,"value":1154},{"type":46,"tag":102,"props":7376,"children":7377},{"class":104,"line":236},[7378,7382],{"type":46,"tag":102,"props":7379,"children":7380},{"style":114},[7381],{"type":52,"value":1380},{"type":46,"tag":102,"props":7383,"children":7384},{"style":114},[7385],{"type":52,"value":1746},{"type":46,"tag":102,"props":7387,"children":7388},{"class":104,"line":1225},[7389],{"type":46,"tag":102,"props":7390,"children":7391},{"emptyLinePlaceholder":221},[7392],{"type":52,"value":224},{"type":46,"tag":102,"props":7394,"children":7395},{"class":104,"line":1243},[7396],{"type":46,"tag":102,"props":7397,"children":7398},{"style":159},[7399],{"type":52,"value":7400},"# 2. Push to GitHub (CLI \u002F git)\n",{"type":46,"tag":102,"props":7402,"children":7403},{"class":104,"line":1256},[7404,7408,7412,7416,7420,7424,7428,7432,7436,7440,7444,7448,7452],{"type":46,"tag":102,"props":7405,"children":7406},{"style":109},[7407],{"type":52,"value":242},{"type":46,"tag":102,"props":7409,"children":7410},{"style":114},[7411],{"type":52,"value":1690},{"type":46,"tag":102,"props":7413,"children":7414},{"style":260},[7415],{"type":52,"value":2577},{"type":46,"tag":102,"props":7417,"children":7418},{"style":109},[7419],{"type":52,"value":2582},{"type":46,"tag":102,"props":7421,"children":7422},{"style":114},[7423],{"type":52,"value":2587},{"type":46,"tag":102,"props":7425,"children":7426},{"style":114},[7427],{"type":52,"value":2592},{"type":46,"tag":102,"props":7429,"children":7430},{"style":260},[7431],{"type":52,"value":2577},{"type":46,"tag":102,"props":7433,"children":7434},{"style":109},[7435],{"type":52,"value":2582},{"type":46,"tag":102,"props":7437,"children":7438},{"style":114},[7439],{"type":52,"value":2605},{"type":46,"tag":102,"props":7441,"children":7442},{"style":114},[7443],{"type":52,"value":2610},{"type":46,"tag":102,"props":7445,"children":7446},{"style":260},[7447],{"type":52,"value":2615},{"type":46,"tag":102,"props":7449,"children":7450},{"style":114},[7451],{"type":52,"value":2620},{"type":46,"tag":102,"props":7453,"children":7454},{"style":260},[7455],{"type":52,"value":2625},{"type":46,"tag":102,"props":7457,"children":7458},{"class":104,"line":2392},[7459,7463,7467,7471,7475],{"type":46,"tag":102,"props":7460,"children":7461},{"style":109},[7462],{"type":52,"value":242},{"type":46,"tag":102,"props":7464,"children":7465},{"style":114},[7466],{"type":52,"value":247},{"type":46,"tag":102,"props":7468,"children":7469},{"style":114},[7470],{"type":52,"value":2587},{"type":46,"tag":102,"props":7472,"children":7473},{"style":114},[7474],{"type":52,"value":257},{"type":46,"tag":102,"props":7476,"children":7477},{"style":114},[7478],{"type":52,"value":2649},{"type":46,"tag":102,"props":7480,"children":7481},{"class":104,"line":4133},[7482,7486,7490,7494,7498],{"type":46,"tag":102,"props":7483,"children":7484},{"style":109},[7485],{"type":52,"value":242},{"type":46,"tag":102,"props":7487,"children":7488},{"style":114},[7489],{"type":52,"value":2661},{"type":46,"tag":102,"props":7491,"children":7492},{"style":114},[7493],{"type":52,"value":2666},{"type":46,"tag":102,"props":7495,"children":7496},{"style":114},[7497],{"type":52,"value":257},{"type":46,"tag":102,"props":7499,"children":7500},{"style":114},[7501],{"type":52,"value":2675},{"type":46,"tag":90,"props":7503,"children":7506},{"className":7504,"code":7505,"language":52},[2200],"# 3. Connect in the Webflow dashboard (manual, dashboard-only):\n#    a. Open the Cloud project → Settings → Git\n#    b. Connect the GitHub account (if not already), pick the repo\n#    c. Pick the branch to deploy from (e.g. main)\n#    d. Confirm — the dashboard runs an initial deploy to verify the wiring\n#\n# After step 3, every push to the selected branch triggers a deploy automatically.\n# Skip step 3 and push-to-deploy is NOT active — deploys must be manual or CI-driven.\n",[7507],{"type":46,"tag":98,"props":7508,"children":7509},{"__ignoreMap":95},[7510],{"type":52,"value":7505},{"type":46,"tag":83,"props":7512,"children":7514},{"id":7513},"project-app-workflow-init-first-deploy-provisions-site",[7515],{"type":52,"value":7516},"Project-app workflow: init → first deploy provisions site",{"type":46,"tag":90,"props":7518,"children":7520},{"className":92,"code":7519,"language":94,"meta":95,"style":95},"# Agent-safe init — assumes the token sees a single workspace.\n# If the token sees multiple workspaces, ask the user to run this command locally first.\nwebflow cloud init --new --no-input \\\n  --project-name my-app \\\n  --framework astro\n\n# First deploy creates site + project + environment on the backend,\n# writes siteId \u002F project_id \u002F environment_id back to webflow.json,\n# and writes WEBFLOW_SITE_ID to .env. Subsequent deploys are normal.\ncd my-app\nwebflow cloud deploy --no-input \\\n  --project-name my-app \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-update-check\n",[7521],{"type":46,"tag":98,"props":7522,"children":7523},{"__ignoreMap":95},[7524,7532,7540,7567,7582,7593,7600,7608,7616,7624,7638,7662,7678,7694,7710],{"type":46,"tag":102,"props":7525,"children":7526},{"class":104,"line":105},[7527],{"type":46,"tag":102,"props":7528,"children":7529},{"style":159},[7530],{"type":52,"value":7531},"# Agent-safe init — assumes the token sees a single workspace.\n",{"type":46,"tag":102,"props":7533,"children":7534},{"class":104,"line":155},[7535],{"type":46,"tag":102,"props":7536,"children":7537},{"style":159},[7538],{"type":52,"value":7539},"# If the token sees multiple workspaces, ask the user to run this command locally first.\n",{"type":46,"tag":102,"props":7541,"children":7542},{"class":104,"line":165},[7543,7547,7551,7555,7559,7563],{"type":46,"tag":102,"props":7544,"children":7545},{"style":109},[7546],{"type":52,"value":9},{"type":46,"tag":102,"props":7548,"children":7549},{"style":114},[7550],{"type":52,"value":1138},{"type":46,"tag":102,"props":7552,"children":7553},{"style":114},[7554],{"type":52,"value":1690},{"type":46,"tag":102,"props":7556,"children":7557},{"style":114},[7558],{"type":52,"value":1695},{"type":46,"tag":102,"props":7560,"children":7561},{"style":114},[7562],{"type":52,"value":1148},{"type":46,"tag":102,"props":7564,"children":7565},{"style":1151},[7566],{"type":52,"value":1154},{"type":46,"tag":102,"props":7568,"children":7569},{"class":104,"line":227},[7570,7574,7578],{"type":46,"tag":102,"props":7571,"children":7572},{"style":114},[7573],{"type":52,"value":1179},{"type":46,"tag":102,"props":7575,"children":7576},{"style":114},[7577],{"type":52,"value":1184},{"type":46,"tag":102,"props":7579,"children":7580},{"style":1151},[7581],{"type":52,"value":1154},{"type":46,"tag":102,"props":7583,"children":7584},{"class":104,"line":236},[7585,7589],{"type":46,"tag":102,"props":7586,"children":7587},{"style":114},[7588],{"type":52,"value":1196},{"type":46,"tag":102,"props":7590,"children":7591},{"style":114},[7592],{"type":52,"value":1965},{"type":46,"tag":102,"props":7594,"children":7595},{"class":104,"line":1225},[7596],{"type":46,"tag":102,"props":7597,"children":7598},{"emptyLinePlaceholder":221},[7599],{"type":52,"value":224},{"type":46,"tag":102,"props":7601,"children":7602},{"class":104,"line":1243},[7603],{"type":46,"tag":102,"props":7604,"children":7605},{"style":159},[7606],{"type":52,"value":7607},"# First deploy creates site + project + environment on the backend,\n",{"type":46,"tag":102,"props":7609,"children":7610},{"class":104,"line":1256},[7611],{"type":46,"tag":102,"props":7612,"children":7613},{"style":159},[7614],{"type":52,"value":7615},"# writes siteId \u002F project_id \u002F environment_id back to webflow.json,\n",{"type":46,"tag":102,"props":7617,"children":7618},{"class":104,"line":2392},[7619],{"type":46,"tag":102,"props":7620,"children":7621},{"style":159},[7622],{"type":52,"value":7623},"# and writes WEBFLOW_SITE_ID to .env. Subsequent deploys are normal.\n",{"type":46,"tag":102,"props":7625,"children":7626},{"class":104,"line":4133},[7627,7633],{"type":46,"tag":102,"props":7628,"children":7630},{"style":7629},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[7631],{"type":52,"value":7632},"cd",{"type":46,"tag":102,"props":7634,"children":7635},{"style":114},[7636],{"type":52,"value":7637}," my-app\n",{"type":46,"tag":102,"props":7639,"children":7641},{"class":104,"line":7640},11,[7642,7646,7650,7654,7658],{"type":46,"tag":102,"props":7643,"children":7644},{"style":109},[7645],{"type":52,"value":9},{"type":46,"tag":102,"props":7647,"children":7648},{"style":114},[7649],{"type":52,"value":1138},{"type":46,"tag":102,"props":7651,"children":7652},{"style":114},[7653],{"type":52,"value":1143},{"type":46,"tag":102,"props":7655,"children":7656},{"style":114},[7657],{"type":52,"value":1148},{"type":46,"tag":102,"props":7659,"children":7660},{"style":1151},[7661],{"type":52,"value":1154},{"type":46,"tag":102,"props":7663,"children":7665},{"class":104,"line":7664},12,[7666,7670,7674],{"type":46,"tag":102,"props":7667,"children":7668},{"style":114},[7669],{"type":52,"value":1179},{"type":46,"tag":102,"props":7671,"children":7672},{"style":114},[7673],{"type":52,"value":1184},{"type":46,"tag":102,"props":7675,"children":7676},{"style":1151},[7677],{"type":52,"value":1154},{"type":46,"tag":102,"props":7679,"children":7681},{"class":104,"line":7680},13,[7682,7686,7690],{"type":46,"tag":102,"props":7683,"children":7684},{"style":114},[7685],{"type":52,"value":1213},{"type":46,"tag":102,"props":7687,"children":7688},{"style":114},[7689],{"type":52,"value":1431},{"type":46,"tag":102,"props":7691,"children":7692},{"style":1151},[7693],{"type":52,"value":1154},{"type":46,"tag":102,"props":7695,"children":7697},{"class":104,"line":7696},14,[7698,7702,7706],{"type":46,"tag":102,"props":7699,"children":7700},{"style":114},[7701],{"type":52,"value":1231},{"type":46,"tag":102,"props":7703,"children":7704},{"style":114},[7705],{"type":52,"value":1236},{"type":46,"tag":102,"props":7707,"children":7708},{"style":1151},[7709],{"type":52,"value":1154},{"type":46,"tag":102,"props":7711,"children":7713},{"class":104,"line":7712},15,[7714],{"type":46,"tag":102,"props":7715,"children":7716},{"style":114},[7717],{"type":52,"value":1262},{"type":46,"tag":83,"props":7719,"children":7721},{"id":7720},"scaffold-a-site-attached-astro-app-locally",[7722],{"type":52,"value":7723},"Scaffold a site-attached Astro app locally",{"type":46,"tag":90,"props":7725,"children":7727},{"className":92,"code":7726,"language":94,"meta":95,"style":95},"webflow cloud init \\\n  --no-input \\\n  --project-name my-site-app \\\n  --framework astro \\\n  --mount \u002Fapp \\\n  --site-id site_abc123\n",[7728],{"type":46,"tag":98,"props":7729,"children":7730},{"__ignoreMap":95},[7731,7750,7761,7777,7792,7807],{"type":46,"tag":102,"props":7732,"children":7733},{"class":104,"line":105},[7734,7738,7742,7746],{"type":46,"tag":102,"props":7735,"children":7736},{"style":109},[7737],{"type":52,"value":9},{"type":46,"tag":102,"props":7739,"children":7740},{"style":114},[7741],{"type":52,"value":1138},{"type":46,"tag":102,"props":7743,"children":7744},{"style":114},[7745],{"type":52,"value":1690},{"type":46,"tag":102,"props":7747,"children":7748},{"style":1151},[7749],{"type":52,"value":1154},{"type":46,"tag":102,"props":7751,"children":7752},{"class":104,"line":155},[7753,7757],{"type":46,"tag":102,"props":7754,"children":7755},{"style":114},[7756],{"type":52,"value":2314},{"type":46,"tag":102,"props":7758,"children":7759},{"style":1151},[7760],{"type":52,"value":1154},{"type":46,"tag":102,"props":7762,"children":7763},{"class":104,"line":165},[7764,7768,7773],{"type":46,"tag":102,"props":7765,"children":7766},{"style":114},[7767],{"type":52,"value":1179},{"type":46,"tag":102,"props":7769,"children":7770},{"style":114},[7771],{"type":52,"value":7772}," my-site-app",{"type":46,"tag":102,"props":7774,"children":7775},{"style":1151},[7776],{"type":52,"value":1154},{"type":46,"tag":102,"props":7778,"children":7779},{"class":104,"line":227},[7780,7784,7788],{"type":46,"tag":102,"props":7781,"children":7782},{"style":114},[7783],{"type":52,"value":1196},{"type":46,"tag":102,"props":7785,"children":7786},{"style":114},[7787],{"type":52,"value":1730},{"type":46,"tag":102,"props":7789,"children":7790},{"style":1151},[7791],{"type":52,"value":1154},{"type":46,"tag":102,"props":7793,"children":7794},{"class":104,"line":236},[7795,7799,7803],{"type":46,"tag":102,"props":7796,"children":7797},{"style":114},[7798],{"type":52,"value":1213},{"type":46,"tag":102,"props":7800,"children":7801},{"style":114},[7802],{"type":52,"value":1218},{"type":46,"tag":102,"props":7804,"children":7805},{"style":1151},[7806],{"type":52,"value":1154},{"type":46,"tag":102,"props":7808,"children":7809},{"class":104,"line":1225},[7810,7814],{"type":46,"tag":102,"props":7811,"children":7812},{"style":114},[7813],{"type":52,"value":1162},{"type":46,"tag":102,"props":7815,"children":7816},{"style":114},[7817],{"type":52,"value":1841},{"type":46,"tag":83,"props":7819,"children":7821},{"id":7820},"github-actions-cicd-pipeline-when-custom-steps-are-needed",[7822],{"type":52,"value":7823},"GitHub Actions CI\u002FCD pipeline (when custom steps are needed)",{"type":46,"tag":90,"props":7825,"children":7829},{"className":7826,"code":7827,"language":7828,"meta":95,"style":95},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: Deploy to Webflow Cloud\n\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - uses: actions\u002Fsetup-node@v4\n        with:\n          node-version: 20\n\n      - name: Install Webflow CLI\n        run: npm install -g @webflow\u002Fwebflow-cli@latest\n\n      - name: Deploy\n        run: |\n          webflow cloud deploy \\\n            --no-input \\\n            --mount \u002F \\\n            --environment main \\\n            --skip-mount-path-check \\\n            --skip-update-check\n        env:\n          WEBFLOW_API_TOKEN: ${{ secrets.WEBFLOW_API_TOKEN }}\n          WEBFLOW_SITE_ID: ${{ secrets.WEBFLOW_SITE_ID }}\n          # For project apps pre-first-deploy, omit WEBFLOW_SITE_ID\n","yaml",[7830],{"type":46,"tag":98,"props":7831,"children":7832},{"__ignoreMap":95},[7833,7851,7858,7871,7883,7909,7916,7928,7940,7957,7969,7991,7998,8018,8030,8048,8056,8077,8095,8103,8124,8142,8151,8160,8169,8178,8187,8196,8209,8227,8245],{"type":46,"tag":102,"props":7834,"children":7835},{"class":104,"line":105},[7836,7842,7846],{"type":46,"tag":102,"props":7837,"children":7839},{"style":7838},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[7840],{"type":52,"value":7841},"name",{"type":46,"tag":102,"props":7843,"children":7844},{"style":260},[7845],{"type":52,"value":1896},{"type":46,"tag":102,"props":7847,"children":7848},{"style":114},[7849],{"type":52,"value":7850}," Deploy to Webflow Cloud\n",{"type":46,"tag":102,"props":7852,"children":7853},{"class":104,"line":155},[7854],{"type":46,"tag":102,"props":7855,"children":7856},{"emptyLinePlaceholder":221},[7857],{"type":52,"value":224},{"type":46,"tag":102,"props":7859,"children":7860},{"class":104,"line":165},[7861,7867],{"type":46,"tag":102,"props":7862,"children":7864},{"style":7863},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[7865],{"type":52,"value":7866},"on",{"type":46,"tag":102,"props":7868,"children":7869},{"style":260},[7870],{"type":52,"value":3200},{"type":46,"tag":102,"props":7872,"children":7873},{"class":104,"line":227},[7874,7879],{"type":46,"tag":102,"props":7875,"children":7876},{"style":7838},[7877],{"type":52,"value":7878},"  push",{"type":46,"tag":102,"props":7880,"children":7881},{"style":260},[7882],{"type":52,"value":3200},{"type":46,"tag":102,"props":7884,"children":7885},{"class":104,"line":236},[7886,7891,7895,7900,7904],{"type":46,"tag":102,"props":7887,"children":7888},{"style":7838},[7889],{"type":52,"value":7890},"    branches",{"type":46,"tag":102,"props":7892,"children":7893},{"style":260},[7894],{"type":52,"value":1896},{"type":46,"tag":102,"props":7896,"children":7897},{"style":260},[7898],{"type":52,"value":7899}," [",{"type":46,"tag":102,"props":7901,"children":7902},{"style":114},[7903],{"type":52,"value":6167},{"type":46,"tag":102,"props":7905,"children":7906},{"style":260},[7907],{"type":52,"value":7908},"]\n",{"type":46,"tag":102,"props":7910,"children":7911},{"class":104,"line":1225},[7912],{"type":46,"tag":102,"props":7913,"children":7914},{"emptyLinePlaceholder":221},[7915],{"type":52,"value":224},{"type":46,"tag":102,"props":7917,"children":7918},{"class":104,"line":1243},[7919,7924],{"type":46,"tag":102,"props":7920,"children":7921},{"style":7838},[7922],{"type":52,"value":7923},"jobs",{"type":46,"tag":102,"props":7925,"children":7926},{"style":260},[7927],{"type":52,"value":3200},{"type":46,"tag":102,"props":7929,"children":7930},{"class":104,"line":1256},[7931,7936],{"type":46,"tag":102,"props":7932,"children":7933},{"style":7838},[7934],{"type":52,"value":7935},"  deploy",{"type":46,"tag":102,"props":7937,"children":7938},{"style":260},[7939],{"type":52,"value":3200},{"type":46,"tag":102,"props":7941,"children":7942},{"class":104,"line":2392},[7943,7948,7952],{"type":46,"tag":102,"props":7944,"children":7945},{"style":7838},[7946],{"type":52,"value":7947},"    runs-on",{"type":46,"tag":102,"props":7949,"children":7950},{"style":260},[7951],{"type":52,"value":1896},{"type":46,"tag":102,"props":7953,"children":7954},{"style":114},[7955],{"type":52,"value":7956}," ubuntu-latest\n",{"type":46,"tag":102,"props":7958,"children":7959},{"class":104,"line":4133},[7960,7965],{"type":46,"tag":102,"props":7961,"children":7962},{"style":7838},[7963],{"type":52,"value":7964},"    steps",{"type":46,"tag":102,"props":7966,"children":7967},{"style":260},[7968],{"type":52,"value":3200},{"type":46,"tag":102,"props":7970,"children":7971},{"class":104,"line":7640},[7972,7977,7982,7986],{"type":46,"tag":102,"props":7973,"children":7974},{"style":260},[7975],{"type":52,"value":7976},"      -",{"type":46,"tag":102,"props":7978,"children":7979},{"style":7838},[7980],{"type":52,"value":7981}," uses",{"type":46,"tag":102,"props":7983,"children":7984},{"style":260},[7985],{"type":52,"value":1896},{"type":46,"tag":102,"props":7987,"children":7988},{"style":114},[7989],{"type":52,"value":7990}," actions\u002Fcheckout@v4\n",{"type":46,"tag":102,"props":7992,"children":7993},{"class":104,"line":7664},[7994],{"type":46,"tag":102,"props":7995,"children":7996},{"emptyLinePlaceholder":221},[7997],{"type":52,"value":224},{"type":46,"tag":102,"props":7999,"children":8000},{"class":104,"line":7680},[8001,8005,8009,8013],{"type":46,"tag":102,"props":8002,"children":8003},{"style":260},[8004],{"type":52,"value":7976},{"type":46,"tag":102,"props":8006,"children":8007},{"style":7838},[8008],{"type":52,"value":7981},{"type":46,"tag":102,"props":8010,"children":8011},{"style":260},[8012],{"type":52,"value":1896},{"type":46,"tag":102,"props":8014,"children":8015},{"style":114},[8016],{"type":52,"value":8017}," actions\u002Fsetup-node@v4\n",{"type":46,"tag":102,"props":8019,"children":8020},{"class":104,"line":7696},[8021,8026],{"type":46,"tag":102,"props":8022,"children":8023},{"style":7838},[8024],{"type":52,"value":8025},"        with",{"type":46,"tag":102,"props":8027,"children":8028},{"style":260},[8029],{"type":52,"value":3200},{"type":46,"tag":102,"props":8031,"children":8032},{"class":104,"line":7712},[8033,8038,8042],{"type":46,"tag":102,"props":8034,"children":8035},{"style":7838},[8036],{"type":52,"value":8037},"          node-version",{"type":46,"tag":102,"props":8039,"children":8040},{"style":260},[8041],{"type":52,"value":1896},{"type":46,"tag":102,"props":8043,"children":8045},{"style":8044},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[8046],{"type":52,"value":8047}," 20\n",{"type":46,"tag":102,"props":8049,"children":8051},{"class":104,"line":8050},16,[8052],{"type":46,"tag":102,"props":8053,"children":8054},{"emptyLinePlaceholder":221},[8055],{"type":52,"value":224},{"type":46,"tag":102,"props":8057,"children":8058},{"class":104,"line":31},[8059,8063,8068,8072],{"type":46,"tag":102,"props":8060,"children":8061},{"style":260},[8062],{"type":52,"value":7976},{"type":46,"tag":102,"props":8064,"children":8065},{"style":7838},[8066],{"type":52,"value":8067}," name",{"type":46,"tag":102,"props":8069,"children":8070},{"style":260},[8071],{"type":52,"value":1896},{"type":46,"tag":102,"props":8073,"children":8074},{"style":114},[8075],{"type":52,"value":8076}," Install Webflow CLI\n",{"type":46,"tag":102,"props":8078,"children":8080},{"class":104,"line":8079},18,[8081,8086,8090],{"type":46,"tag":102,"props":8082,"children":8083},{"style":7838},[8084],{"type":52,"value":8085},"        run",{"type":46,"tag":102,"props":8087,"children":8088},{"style":260},[8089],{"type":52,"value":1896},{"type":46,"tag":102,"props":8091,"children":8092},{"style":114},[8093],{"type":52,"value":8094}," npm install -g @webflow\u002Fwebflow-cli@latest\n",{"type":46,"tag":102,"props":8096,"children":8098},{"class":104,"line":8097},19,[8099],{"type":46,"tag":102,"props":8100,"children":8101},{"emptyLinePlaceholder":221},[8102],{"type":52,"value":224},{"type":46,"tag":102,"props":8104,"children":8106},{"class":104,"line":8105},20,[8107,8111,8115,8119],{"type":46,"tag":102,"props":8108,"children":8109},{"style":260},[8110],{"type":52,"value":7976},{"type":46,"tag":102,"props":8112,"children":8113},{"style":7838},[8114],{"type":52,"value":8067},{"type":46,"tag":102,"props":8116,"children":8117},{"style":260},[8118],{"type":52,"value":1896},{"type":46,"tag":102,"props":8120,"children":8121},{"style":114},[8122],{"type":52,"value":8123}," Deploy\n",{"type":46,"tag":102,"props":8125,"children":8127},{"class":104,"line":8126},21,[8128,8132,8136],{"type":46,"tag":102,"props":8129,"children":8130},{"style":7838},[8131],{"type":52,"value":8085},{"type":46,"tag":102,"props":8133,"children":8134},{"style":260},[8135],{"type":52,"value":1896},{"type":46,"tag":102,"props":8137,"children":8139},{"style":8138},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[8140],{"type":52,"value":8141}," |\n",{"type":46,"tag":102,"props":8143,"children":8145},{"class":104,"line":8144},22,[8146],{"type":46,"tag":102,"props":8147,"children":8148},{"style":114},[8149],{"type":52,"value":8150},"          webflow cloud deploy \\\n",{"type":46,"tag":102,"props":8152,"children":8154},{"class":104,"line":8153},23,[8155],{"type":46,"tag":102,"props":8156,"children":8157},{"style":114},[8158],{"type":52,"value":8159},"            --no-input \\\n",{"type":46,"tag":102,"props":8161,"children":8163},{"class":104,"line":8162},24,[8164],{"type":46,"tag":102,"props":8165,"children":8166},{"style":114},[8167],{"type":52,"value":8168},"            --mount \u002F \\\n",{"type":46,"tag":102,"props":8170,"children":8172},{"class":104,"line":8171},25,[8173],{"type":46,"tag":102,"props":8174,"children":8175},{"style":114},[8176],{"type":52,"value":8177},"            --environment main \\\n",{"type":46,"tag":102,"props":8179,"children":8181},{"class":104,"line":8180},26,[8182],{"type":46,"tag":102,"props":8183,"children":8184},{"style":114},[8185],{"type":52,"value":8186},"            --skip-mount-path-check \\\n",{"type":46,"tag":102,"props":8188,"children":8190},{"class":104,"line":8189},27,[8191],{"type":46,"tag":102,"props":8192,"children":8193},{"style":114},[8194],{"type":52,"value":8195},"            --skip-update-check\n",{"type":46,"tag":102,"props":8197,"children":8199},{"class":104,"line":8198},28,[8200,8205],{"type":46,"tag":102,"props":8201,"children":8202},{"style":7838},[8203],{"type":52,"value":8204},"        env",{"type":46,"tag":102,"props":8206,"children":8207},{"style":260},[8208],{"type":52,"value":3200},{"type":46,"tag":102,"props":8210,"children":8212},{"class":104,"line":8211},29,[8213,8218,8222],{"type":46,"tag":102,"props":8214,"children":8215},{"style":7838},[8216],{"type":52,"value":8217},"          WEBFLOW_API_TOKEN",{"type":46,"tag":102,"props":8219,"children":8220},{"style":260},[8221],{"type":52,"value":1896},{"type":46,"tag":102,"props":8223,"children":8224},{"style":114},[8225],{"type":52,"value":8226}," ${{ secrets.WEBFLOW_API_TOKEN }}\n",{"type":46,"tag":102,"props":8228,"children":8230},{"class":104,"line":8229},30,[8231,8236,8240],{"type":46,"tag":102,"props":8232,"children":8233},{"style":7838},[8234],{"type":52,"value":8235},"          WEBFLOW_SITE_ID",{"type":46,"tag":102,"props":8237,"children":8238},{"style":260},[8239],{"type":52,"value":1896},{"type":46,"tag":102,"props":8241,"children":8242},{"style":114},[8243],{"type":52,"value":8244}," ${{ secrets.WEBFLOW_SITE_ID }}\n",{"type":46,"tag":102,"props":8246,"children":8248},{"class":104,"line":8247},31,[8249],{"type":46,"tag":102,"props":8250,"children":8251},{"style":159},[8252],{"type":52,"value":8253},"          # For project apps pre-first-deploy, omit WEBFLOW_SITE_ID\n",{"type":46,"tag":83,"props":8255,"children":8257},{"id":8256},"manual-deploy-local-one-off",[8258],{"type":52,"value":8259},"Manual deploy (local \u002F one-off)",{"type":46,"tag":90,"props":8261,"children":8263},{"className":92,"code":8262,"language":94,"meta":95,"style":95},"webflow cloud deploy \\\n  --no-input \\\n  --project-name my-app \\\n  --mount \u002F \\\n  --environment main \\\n  --skip-mount-path-check \\\n  --skip-update-check\n",[8264],{"type":46,"tag":98,"props":8265,"children":8266},{"__ignoreMap":95},[8267,8286,8297,8312,8327,8342,8353],{"type":46,"tag":102,"props":8268,"children":8269},{"class":104,"line":105},[8270,8274,8278,8282],{"type":46,"tag":102,"props":8271,"children":8272},{"style":109},[8273],{"type":52,"value":9},{"type":46,"tag":102,"props":8275,"children":8276},{"style":114},[8277],{"type":52,"value":1138},{"type":46,"tag":102,"props":8279,"children":8280},{"style":114},[8281],{"type":52,"value":1143},{"type":46,"tag":102,"props":8283,"children":8284},{"style":1151},[8285],{"type":52,"value":1154},{"type":46,"tag":102,"props":8287,"children":8288},{"class":104,"line":155},[8289,8293],{"type":46,"tag":102,"props":8290,"children":8291},{"style":114},[8292],{"type":52,"value":2314},{"type":46,"tag":102,"props":8294,"children":8295},{"style":1151},[8296],{"type":52,"value":1154},{"type":46,"tag":102,"props":8298,"children":8299},{"class":104,"line":165},[8300,8304,8308],{"type":46,"tag":102,"props":8301,"children":8302},{"style":114},[8303],{"type":52,"value":1179},{"type":46,"tag":102,"props":8305,"children":8306},{"style":114},[8307],{"type":52,"value":1184},{"type":46,"tag":102,"props":8309,"children":8310},{"style":1151},[8311],{"type":52,"value":1154},{"type":46,"tag":102,"props":8313,"children":8314},{"class":104,"line":227},[8315,8319,8323],{"type":46,"tag":102,"props":8316,"children":8317},{"style":114},[8318],{"type":52,"value":1213},{"type":46,"tag":102,"props":8320,"children":8321},{"style":114},[8322],{"type":52,"value":1431},{"type":46,"tag":102,"props":8324,"children":8325},{"style":1151},[8326],{"type":52,"value":1154},{"type":46,"tag":102,"props":8328,"children":8329},{"class":104,"line":236},[8330,8334,8338],{"type":46,"tag":102,"props":8331,"children":8332},{"style":114},[8333],{"type":52,"value":1231},{"type":46,"tag":102,"props":8335,"children":8336},{"style":114},[8337],{"type":52,"value":1236},{"type":46,"tag":102,"props":8339,"children":8340},{"style":1151},[8341],{"type":52,"value":1154},{"type":46,"tag":102,"props":8343,"children":8344},{"class":104,"line":1225},[8345,8349],{"type":46,"tag":102,"props":8346,"children":8347},{"style":114},[8348],{"type":52,"value":1249},{"type":46,"tag":102,"props":8350,"children":8351},{"style":1151},[8352],{"type":52,"value":1154},{"type":46,"tag":102,"props":8354,"children":8355},{"class":104,"line":1243},[8356],{"type":46,"tag":102,"props":8357,"children":8358},{"style":114},[8359],{"type":52,"value":1262},{"type":46,"tag":83,"props":8361,"children":8363},{"id":8362},"manual-deploy-with-error-handling",[8364],{"type":52,"value":8365},"Manual deploy with error handling",{"type":46,"tag":90,"props":8367,"children":8369},{"className":92,"code":8368,"language":94,"meta":95,"style":95},"webflow cloud deploy --no-input --mount \u002F --skip-mount-path-check --skip-update-check\nif [ $? -ne 0 ]; then\n  echo \"Deploy failed. Log file:\"\n  webflow log\n  exit 1\nfi\n",[8370],{"type":46,"tag":98,"props":8371,"children":8372},{"__ignoreMap":95},[8373,8411,8448,8469,8482,8495],{"type":46,"tag":102,"props":8374,"children":8375},{"class":104,"line":105},[8376,8380,8384,8388,8392,8397,8401,8406],{"type":46,"tag":102,"props":8377,"children":8378},{"style":109},[8379],{"type":52,"value":9},{"type":46,"tag":102,"props":8381,"children":8382},{"style":114},[8383],{"type":52,"value":1138},{"type":46,"tag":102,"props":8385,"children":8386},{"style":114},[8387],{"type":52,"value":1143},{"type":46,"tag":102,"props":8389,"children":8390},{"style":114},[8391],{"type":52,"value":1148},{"type":46,"tag":102,"props":8393,"children":8394},{"style":114},[8395],{"type":52,"value":8396}," --mount",{"type":46,"tag":102,"props":8398,"children":8399},{"style":114},[8400],{"type":52,"value":1431},{"type":46,"tag":102,"props":8402,"children":8403},{"style":114},[8404],{"type":52,"value":8405}," --skip-mount-path-check",{"type":46,"tag":102,"props":8407,"children":8408},{"style":114},[8409],{"type":52,"value":8410}," --skip-update-check\n",{"type":46,"tag":102,"props":8412,"children":8413},{"class":104,"line":155},[8414,8419,8423,8428,8433,8438,8443],{"type":46,"tag":102,"props":8415,"children":8416},{"style":8138},[8417],{"type":52,"value":8418},"if",{"type":46,"tag":102,"props":8420,"children":8421},{"style":260},[8422],{"type":52,"value":7899},{"type":46,"tag":102,"props":8424,"children":8425},{"style":1151},[8426],{"type":52,"value":8427}," $? ",{"type":46,"tag":102,"props":8429,"children":8430},{"style":260},[8431],{"type":52,"value":8432},"-ne",{"type":46,"tag":102,"props":8434,"children":8435},{"style":8044},[8436],{"type":52,"value":8437}," 0",{"type":46,"tag":102,"props":8439,"children":8440},{"style":260},[8441],{"type":52,"value":8442}," ];",{"type":46,"tag":102,"props":8444,"children":8445},{"style":8138},[8446],{"type":52,"value":8447}," then\n",{"type":46,"tag":102,"props":8449,"children":8450},{"class":104,"line":165},[8451,8456,8460,8465],{"type":46,"tag":102,"props":8452,"children":8453},{"style":7629},[8454],{"type":52,"value":8455},"  echo",{"type":46,"tag":102,"props":8457,"children":8458},{"style":260},[8459],{"type":52,"value":2615},{"type":46,"tag":102,"props":8461,"children":8462},{"style":114},[8463],{"type":52,"value":8464},"Deploy failed. Log file:",{"type":46,"tag":102,"props":8466,"children":8467},{"style":260},[8468],{"type":52,"value":2625},{"type":46,"tag":102,"props":8470,"children":8471},{"class":104,"line":227},[8472,8477],{"type":46,"tag":102,"props":8473,"children":8474},{"style":109},[8475],{"type":52,"value":8476},"  webflow",{"type":46,"tag":102,"props":8478,"children":8479},{"style":114},[8480],{"type":52,"value":8481}," log\n",{"type":46,"tag":102,"props":8483,"children":8484},{"class":104,"line":236},[8485,8490],{"type":46,"tag":102,"props":8486,"children":8487},{"style":7629},[8488],{"type":52,"value":8489},"  exit",{"type":46,"tag":102,"props":8491,"children":8492},{"style":8044},[8493],{"type":52,"value":8494}," 1\n",{"type":46,"tag":102,"props":8496,"children":8497},{"class":104,"line":1225},[8498],{"type":46,"tag":102,"props":8499,"children":8500},{"style":8138},[8501],{"type":52,"value":8502},"fi\n",{"type":46,"tag":76,"props":8504,"children":8506},{"id":8505},"guidelines",[8507],{"type":52,"value":8508},"Guidelines",{"type":46,"tag":83,"props":8510,"children":8512},{"id":8511},"init-vs-deploy-in-ci",[8513],{"type":52,"value":8514},"Init vs Deploy in CI",{"type":46,"tag":1967,"props":8516,"children":8517},{},[8518],{"type":46,"tag":1650,"props":8519,"children":8520},{},[8521,8531,8533,8538,8540,8545],{"type":46,"tag":61,"props":8522,"children":8523},{},[8524,8529],{"type":46,"tag":98,"props":8525,"children":8527},{"className":8526},[],[8528],{"type":52,"value":473},{"type":52,"value":8530}," is for local, one-time project setup — never run it in CI.",{"type":52,"value":8532}," Site-attached mode opens a browser window; there is no headless OAuth path. Run ",{"type":46,"tag":98,"props":8534,"children":8536},{"className":8535},[],[8537],{"type":52,"value":473},{"type":52,"value":8539}," once locally, commit the result, then use ",{"type":46,"tag":98,"props":8541,"children":8543},{"className":8542},[],[8544],{"type":52,"value":519},{"type":52,"value":8546}," in CI.",{"type":46,"tag":83,"props":8548,"children":8550},{"id":8549},"mount-path",[8551],{"type":52,"value":5428},{"type":46,"tag":1967,"props":8553,"children":8554},{},[8555,8584],{"type":46,"tag":1650,"props":8556,"children":8557},{},[8558,8563,8564,8569,8571,8576,8578,8583],{"type":46,"tag":98,"props":8559,"children":8561},{"className":8560},[],[8562],{"type":52,"value":6453},{"type":52,"value":5483},{"type":46,"tag":61,"props":8565,"children":8566},{},[8567],{"type":52,"value":8568},"always required",{"type":52,"value":8570}," with ",{"type":46,"tag":98,"props":8572,"children":8574},{"className":8573},[],[8575],{"type":52,"value":437},{"type":52,"value":8577},". The CLI does not read a saved mount path from ",{"type":46,"tag":98,"props":8579,"children":8581},{"className":8580},[],[8582],{"type":52,"value":306},{"type":52,"value":421},{"type":46,"tag":1650,"props":8585,"children":8586},{},[8587,8592,8594,8599,8600,8605,8607,8613],{"type":46,"tag":61,"props":8588,"children":8589},{},[8590],{"type":52,"value":8591},"Never assume a default.",{"type":52,"value":8593}," Assuming ",{"type":46,"tag":98,"props":8595,"children":8597},{"className":8596},[],[8598],{"type":52,"value":4905},{"type":52,"value":5905},{"type":46,"tag":98,"props":8601,"children":8603},{"className":8602},[],[8604],{"type":52,"value":4897},{"type":52,"value":8606}," will cause ",{"type":46,"tag":98,"props":8608,"children":8610},{"className":8609},[],[8611],{"type":52,"value":8612},"ENVIRONMENT_MOUNT_MISMATCH",{"type":52,"value":8614}," if the project uses a different path. Check the Webflow dashboard under the project's environment settings.",{"type":46,"tag":83,"props":8616,"children":8618},{"id":8617},"do-not-add-confirmation-gates",[8619],{"type":52,"value":8620},"Do not add confirmation gates",{"type":46,"tag":55,"props":8622,"children":8623},{},[8624,8625,8630,8632,8637],{"type":52,"value":2104},{"type":46,"tag":98,"props":8626,"children":8628},{"className":8627},[],[8629],{"type":52,"value":437},{"type":52,"value":8631}," is set, do not add a human confirmation step before ",{"type":46,"tag":98,"props":8633,"children":8635},{"className":8634},[],[8636],{"type":52,"value":519},{"type":52,"value":8638},". It blocks unattended CI runs and is unnecessary — the CLI has no built-in prompt to bypass.",{"type":46,"tag":83,"props":8640,"children":8642},{"id":8641},"package-manager",[8643],{"type":52,"value":8644},"Package manager",{"type":46,"tag":55,"props":8646,"children":8647},{},[8648,8650,8655,8657,8663],{"type":52,"value":8649},"The CLI uses ",{"type":46,"tag":61,"props":8651,"children":8652},{},[8653],{"type":52,"value":8654},"npm only",{"type":52,"value":8656}," regardless of lock files present. pnpm and yarn lock files are ignored — those projects silently receive ",{"type":46,"tag":98,"props":8658,"children":8660},{"className":8659},[],[8661],{"type":52,"value":8662},"npm install",{"type":52,"value":421},{"type":46,"tag":83,"props":8665,"children":8667},{"id":8666},"build-time-file-management",[8668],{"type":52,"value":8669},"Build-time file management",{"type":46,"tag":55,"props":8671,"children":8672},{},[8673,8675,8680],{"type":52,"value":8674},"During ",{"type":46,"tag":98,"props":8676,"children":8678},{"className":8677},[],[8679],{"type":52,"value":519},{"type":52,"value":8681},", the CLI temporarily replaces two files and restores them on success or failure:",{"type":46,"tag":1967,"props":8683,"children":8684},{},[8685,8718],{"type":46,"tag":1650,"props":8686,"children":8687},{},[8688,8693,8694,8700,8702,8708,8710,8716],{"type":46,"tag":61,"props":8689,"children":8690},{},[8691],{"type":52,"value":8692},"Framework config",{"type":52,"value":4159},{"type":46,"tag":98,"props":8695,"children":8697},{"className":8696},[],[8698],{"type":52,"value":8699},"next.config.ts",{"type":52,"value":8701}," \u002F ",{"type":46,"tag":98,"props":8703,"children":8705},{"className":8704},[],[8706],{"type":52,"value":8707},"astro.config.mjs",{"type":52,"value":8709},") — renamed to ",{"type":46,"tag":98,"props":8711,"children":8713},{"className":8712},[],[8714],{"type":52,"value":8715},"clouduser.*",{"type":52,"value":8717},", replaced with CLI template, then restored.",{"type":46,"tag":1650,"props":8719,"children":8720},{},[8721,8730,8732,8738,8740,8745],{"type":46,"tag":61,"props":8722,"children":8723},{},[8724],{"type":46,"tag":98,"props":8725,"children":8727},{"className":8726},[],[8728],{"type":52,"value":8729},"wrangler.json",{"type":52,"value":8731}," — replaced with CLI template (original saved to ",{"type":46,"tag":98,"props":8733,"children":8735},{"className":8734},[],[8736],{"type":52,"value":8737},"clouduser.wrangler.json",{"type":52,"value":8739},"), then restored. Do not modify ",{"type":46,"tag":98,"props":8741,"children":8743},{"className":8742},[],[8744],{"type":52,"value":8729},{"type":52,"value":8746}," during a deploy.",{"type":46,"tag":55,"props":8748,"children":8749},{},[8750,8752,8758,8760,8766],{"type":52,"value":8751},"If Astro is the framework and ",{"type":46,"tag":98,"props":8753,"children":8755},{"className":8754},[],[8756],{"type":52,"value":8757},"@astrojs\u002Freact",{"type":52,"value":8759}," is absent, the CLI runs ",{"type":46,"tag":98,"props":8761,"children":8763},{"className":8762},[],[8764],{"type":52,"value":8765},"npm install --save @astrojs\u002Freact",{"type":52,"value":8767}," without prompting.",{"type":46,"tag":83,"props":8769,"children":8771},{"id":8770},"cloudflare-bindings-d1-kv-r2",[8772],{"type":52,"value":8773},"Cloudflare bindings (D1 \u002F KV \u002F R2)",{"type":46,"tag":55,"props":8775,"children":8776},{},[8777,8779,8784,8786,8791,8793,8799],{"type":52,"value":8778},"The CLI merges ",{"type":46,"tag":98,"props":8780,"children":8782},{"className":8781},[],[8783],{"type":52,"value":8729},{"type":52,"value":8785}," bindings at build time. Limits: ",{"type":46,"tag":61,"props":8787,"children":8788},{},[8789],{"type":52,"value":8790},"max 5 of each type",{"type":52,"value":8792},". For D1, set ",{"type":46,"tag":98,"props":8794,"children":8796},{"className":8795},[],[8797],{"type":52,"value":8798},"migrations_dir",{"type":52,"value":8800}," in the binding — the CLI copies migration files automatically.",{"type":46,"tag":83,"props":8802,"children":8804},{"id":8803},"error-handling",[8805],{"type":52,"value":8806},"Error handling",{"type":46,"tag":1967,"props":8808,"children":8809},{},[8810,8822],{"type":46,"tag":1650,"props":8811,"children":8812},{},[8813,8815,8820],{"type":52,"value":8814},"The CLI exits with ",{"type":46,"tag":61,"props":8816,"children":8817},{},[8818],{"type":52,"value":8819},"code 1 on every error",{"type":52,"value":8821},". Check the exit code — do not match on emoji or text patterns in stdout.",{"type":46,"tag":1650,"props":8823,"children":8824},{},[8825,8827,8833],{"type":52,"value":8826},"Use ",{"type":46,"tag":98,"props":8828,"children":8830},{"className":8829},[],[8831],{"type":52,"value":8832},"webflow log",{"type":52,"value":8834}," after any failure to get the full error trace.",{"type":46,"tag":83,"props":8836,"children":8838},{"id":8837},"deploy-versioning",[8839],{"type":52,"value":8840},"Deploy versioning",{"type":46,"tag":278,"props":8842,"children":8843},{},[8844,8860],{"type":46,"tag":282,"props":8845,"children":8846},{},[8847],{"type":46,"tag":286,"props":8848,"children":8849},{},[8850,8855],{"type":46,"tag":290,"props":8851,"children":8852},{},[8853],{"type":52,"value":8854},"Situation",{"type":46,"tag":290,"props":8856,"children":8857},{},[8858],{"type":52,"value":8859},"Version tag sent",{"type":46,"tag":318,"props":8861,"children":8862},{},[8863,8880,8897],{"type":46,"tag":286,"props":8864,"children":8865},{},[8866,8871],{"type":46,"tag":325,"props":8867,"children":8868},{},[8869],{"type":52,"value":8870},"Clean working tree",{"type":46,"tag":325,"props":8872,"children":8873},{},[8874],{"type":46,"tag":98,"props":8875,"children":8877},{"className":8876},[],[8878],{"type":52,"value":8879},"git@{40-char-hash}",{"type":46,"tag":286,"props":8881,"children":8882},{},[8883,8888],{"type":46,"tag":325,"props":8884,"children":8885},{},[8886],{"type":52,"value":8887},"Uncommitted changes",{"type":46,"tag":325,"props":8889,"children":8890},{},[8891],{"type":46,"tag":98,"props":8892,"children":8894},{"className":8893},[],[8895],{"type":52,"value":8896},"git@{40-char-hash}+dirty",{"type":46,"tag":286,"props":8898,"children":8899},{},[8900,8905],{"type":46,"tag":325,"props":8901,"children":8902},{},[8903],{"type":52,"value":8904},"Not in a git repo",{"type":46,"tag":325,"props":8906,"children":8907},{},[8908],{"type":46,"tag":98,"props":8909,"children":8911},{"className":8910},[],[8912],{"type":52,"value":8913},"noversion@{ISO-timestamp}",{"type":46,"tag":55,"props":8915,"children":8916},{},[8917],{"type":52,"value":8918},"Commit all changes before deploying to production.",{"type":46,"tag":83,"props":8920,"children":8922},{"id":8921},"known-limitations",[8923],{"type":52,"value":8924},"Known limitations",{"type":46,"tag":1967,"props":8926,"children":8927},{},[8928,8947,8959,8971,8983,8994],{"type":46,"tag":1650,"props":8929,"children":8930},{},[8931,8932,8938,8939,8945],{"type":52,"value":4505},{"type":46,"tag":98,"props":8933,"children":8935},{"className":8934},[],[8936],{"type":52,"value":8937},"cloud status",{"type":52,"value":8701},{"type":46,"tag":98,"props":8940,"children":8942},{"className":8941},[],[8943],{"type":52,"value":8944},"cloud logs",{"type":52,"value":8946}," — use the Webflow dashboard.",{"type":46,"tag":1650,"props":8948,"children":8949},{},[8950,8951,8957],{"type":52,"value":4505},{"type":46,"tag":98,"props":8952,"children":8954},{"className":8953},[],[8955],{"type":52,"value":8956},"cloud env",{"type":52,"value":8958}," commands — runtime env vars managed via dashboard only.",{"type":46,"tag":1650,"props":8960,"children":8961},{},[8962,8963,8969],{"type":52,"value":4505},{"type":46,"tag":98,"props":8964,"children":8966},{"className":8965},[],[8967],{"type":52,"value":8968},"--dry-run",{"type":52,"value":8970}," — build validation always triggers a real deployment.",{"type":46,"tag":1650,"props":8972,"children":8973},{},[8974,8975,8981],{"type":52,"value":4505},{"type":46,"tag":98,"props":8976,"children":8978},{"className":8977},[],[8979],{"type":52,"value":8980},"--json",{"type":52,"value":8982}," \u002F structured output — deploy URL and project ID must be parsed from stdout.",{"type":46,"tag":1650,"props":8984,"children":8985},{},[8986,8987,8993],{"type":52,"value":4505},{"type":46,"tag":98,"props":8988,"children":8990},{"className":8989},[],[8991],{"type":52,"value":8992},"cloud rollback",{"type":52,"value":421},{"type":46,"tag":1650,"props":8995,"children":8996},{},[8997,9002],{"type":46,"tag":61,"props":8998,"children":8999},{},[9000],{"type":52,"value":9001},"100 MB build size limit",{"type":52,"value":9003}," — builds exceeding 104,857,600 bytes fail at upload.",{"type":46,"tag":76,"props":9005,"children":9007},{"id":9006},"troubleshooting",[9008],{"type":52,"value":9009},"Troubleshooting",{"type":46,"tag":83,"props":9011,"children":9013},{"id":9012},"project-name-cannot-be-empty-or-any-required-flag-error-on-cloud-init",[9014,9019,9021],{"type":46,"tag":98,"props":9015,"children":9017},{"className":9016},[],[9018],{"type":52,"value":419},{"type":52,"value":9020}," (or any required-flag error) on ",{"type":46,"tag":98,"props":9022,"children":9024},{"className":9023},[],[9025],{"type":52,"value":473},{"type":46,"tag":55,"props":9027,"children":9028},{},[9029,9031,9036,9038,9042],{"type":52,"value":9030},"The CLI gates its interactive prompts on ",{"type":46,"tag":98,"props":9032,"children":9034},{"className":9033},[],[9035],{"type":52,"value":411},{"type":52,"value":9037},". Agents invoke the CLI from a subprocess that does ",{"type":46,"tag":61,"props":9039,"children":9040},{},[9041],{"type":52,"value":668},{"type":52,"value":9043}," have a TTY, so the prompt block is skipped entirely and the bare validation fires for the first missing required value.",{"type":46,"tag":55,"props":9045,"children":9046},{},[9047,9052,9054,9059],{"type":46,"tag":61,"props":9048,"children":9049},{},[9050],{"type":52,"value":9051},"Fix:",{"type":52,"value":9053}," pass every required flag explicitly. For ",{"type":46,"tag":98,"props":9055,"children":9057},{"className":9056},[],[9058],{"type":52,"value":473},{"type":52,"value":1896},{"type":46,"tag":90,"props":9061,"children":9063},{"className":92,"code":9062,"language":94,"meta":95,"style":95},"webflow cloud init --new --no-input --project-name my-app --framework astro\n# or, site-attached:\nwebflow cloud init --no-input --project-name my-app --framework astro --mount \u002Fapp --site-id site_abc123\n",[9064],{"type":46,"tag":98,"props":9065,"children":9066},{"__ignoreMap":95},[9067,9108,9116],{"type":46,"tag":102,"props":9068,"children":9069},{"class":104,"line":105},[9070,9074,9078,9082,9086,9090,9095,9099,9104],{"type":46,"tag":102,"props":9071,"children":9072},{"style":109},[9073],{"type":52,"value":9},{"type":46,"tag":102,"props":9075,"children":9076},{"style":114},[9077],{"type":52,"value":1138},{"type":46,"tag":102,"props":9079,"children":9080},{"style":114},[9081],{"type":52,"value":1690},{"type":46,"tag":102,"props":9083,"children":9084},{"style":114},[9085],{"type":52,"value":1695},{"type":46,"tag":102,"props":9087,"children":9088},{"style":114},[9089],{"type":52,"value":1148},{"type":46,"tag":102,"props":9091,"children":9092},{"style":114},[9093],{"type":52,"value":9094}," --project-name",{"type":46,"tag":102,"props":9096,"children":9097},{"style":114},[9098],{"type":52,"value":1184},{"type":46,"tag":102,"props":9100,"children":9101},{"style":114},[9102],{"type":52,"value":9103}," --framework",{"type":46,"tag":102,"props":9105,"children":9106},{"style":114},[9107],{"type":52,"value":1965},{"type":46,"tag":102,"props":9109,"children":9110},{"class":104,"line":155},[9111],{"type":46,"tag":102,"props":9112,"children":9113},{"style":159},[9114],{"type":52,"value":9115},"# or, site-attached:\n",{"type":46,"tag":102,"props":9117,"children":9118},{"class":104,"line":165},[9119,9123,9127,9131,9135,9139,9143,9147,9151,9155,9159,9164],{"type":46,"tag":102,"props":9120,"children":9121},{"style":109},[9122],{"type":52,"value":9},{"type":46,"tag":102,"props":9124,"children":9125},{"style":114},[9126],{"type":52,"value":1138},{"type":46,"tag":102,"props":9128,"children":9129},{"style":114},[9130],{"type":52,"value":1690},{"type":46,"tag":102,"props":9132,"children":9133},{"style":114},[9134],{"type":52,"value":1148},{"type":46,"tag":102,"props":9136,"children":9137},{"style":114},[9138],{"type":52,"value":9094},{"type":46,"tag":102,"props":9140,"children":9141},{"style":114},[9142],{"type":52,"value":1184},{"type":46,"tag":102,"props":9144,"children":9145},{"style":114},[9146],{"type":52,"value":9103},{"type":46,"tag":102,"props":9148,"children":9149},{"style":114},[9150],{"type":52,"value":1730},{"type":46,"tag":102,"props":9152,"children":9153},{"style":114},[9154],{"type":52,"value":8396},{"type":46,"tag":102,"props":9156,"children":9157},{"style":114},[9158],{"type":52,"value":1218},{"type":46,"tag":102,"props":9160,"children":9161},{"style":114},[9162],{"type":52,"value":9163}," --site-id",{"type":46,"tag":102,"props":9165,"children":9166},{"style":114},[9167],{"type":52,"value":1841},{"type":46,"tag":55,"props":9169,"children":9170},{},[9171,9173,9178],{"type":52,"value":9172},"Passing ",{"type":46,"tag":98,"props":9174,"children":9176},{"className":9175},[],[9177],{"type":52,"value":437},{"type":52,"value":9179}," is not strictly required for the prompts to be skipped — the absent TTY already does that — but it makes the contract explicit and matches the Required-flag matrix at the top of this skill.",{"type":46,"tag":83,"props":9181,"children":9183},{"id":9182},"cloud-init-new-hangs-forever-never-returns",[9184,9189],{"type":46,"tag":98,"props":9185,"children":9187},{"className":9186},[],[9188],{"type":52,"value":496},{"type":52,"value":9190}," hangs forever \u002F never returns",{"type":46,"tag":55,"props":9192,"children":9193},{},[9194,9196,9201],{"type":52,"value":9195},"Workspace selection in project-app mode prompts unconditionally when the token sees more than one workspace. Pass ",{"type":46,"tag":98,"props":9197,"children":9199},{"className":9198},[],[9200],{"type":52,"value":593},{"type":52,"value":9202}," to skip the picker; without it, in a non-TTY context the CLI hangs at the prompt.",{"type":46,"tag":55,"props":9204,"children":9205},{},[9206,9210,9212,9217,9218,9223,9225,9230,9232,9237,9238,9243,9245,9250],{"type":46,"tag":61,"props":9207,"children":9208},{},[9209],{"type":52,"value":9051},{"type":52,"value":9211}," pass ",{"type":46,"tag":98,"props":9213,"children":9215},{"className":9214},[],[9216],{"type":52,"value":4957},{"type":52,"value":649},{"type":46,"tag":98,"props":9219,"children":9221},{"className":9220},[],[9222],{"type":52,"value":496},{"type":52,"value":9224},". The workspace ID is not visible in the Webflow dashboard UI, so when the agent doesn't have one, ask the user to run ",{"type":46,"tag":98,"props":9226,"children":9228},{"className":9227},[],[9229],{"type":52,"value":639},{"type":52,"value":9231}," interactively from inside an existing project. The preflight prompt picks a workspace and writes ",{"type":46,"tag":98,"props":9233,"children":9235},{"className":9234},[],[9236],{"type":52,"value":647},{"type":52,"value":649},{"type":46,"tag":98,"props":9239,"children":9241},{"className":9240},[],[9242],{"type":52,"value":306},{"type":52,"value":9244}," — the agent can then read it and pass ",{"type":46,"tag":98,"props":9246,"children":9248},{"className":9247},[],[9249],{"type":52,"value":593},{"type":52,"value":9251}," on future runs. Single-workspace tokens are not affected — selection is auto-skipped.",{"type":46,"tag":83,"props":9253,"children":9255},{"id":9254},"deploy-provisioned-a-new-site-when-i-expected-site-attached",[9256],{"type":52,"value":9257},"Deploy provisioned a new site when I expected site-attached",{"type":46,"tag":55,"props":9259,"children":9260},{},[9261,9266,9268,9273,9275,9281,9282,9288,9290,9296],{"type":46,"tag":61,"props":9262,"children":9263},{},[9264],{"type":52,"value":9265},"Symptom:",{"type":52,"value":9267}," user wanted to deploy to an existing Webflow site, but ",{"type":46,"tag":98,"props":9269,"children":9271},{"className":9270},[],[9272],{"type":52,"value":519},{"type":52,"value":9274}," printed ",{"type":46,"tag":98,"props":9276,"children":9278},{"className":9277},[],[9279],{"type":52,"value":9280},"Creating Cloud app...",{"type":52,"value":8701},{"type":46,"tag":98,"props":9283,"children":9285},{"className":9284},[],[9286],{"type":52,"value":9287},"Cloud app created: \u003Cname>",{"type":52,"value":9289}," and the live URL came out as ",{"type":46,"tag":98,"props":9291,"children":9293},{"className":9292},[],[9294],{"type":52,"value":9295},"\u003Cname>-\u003Chash>.webflow.io",{"type":52,"value":9297}," (a freshly minted site) instead of the user's intended site.",{"type":46,"tag":55,"props":9299,"children":9300},{},[9301,9306,9307,9312,9314,9319,9321,9326,9328,9333],{"type":46,"tag":61,"props":9302,"children":9303},{},[9304],{"type":52,"value":9305},"Cause:",{"type":52,"value":2993},{"type":46,"tag":98,"props":9308,"children":9310},{"className":9309},[],[9311],{"type":52,"value":306},{"type":52,"value":9313}," was in the project-app init state — ",{"type":46,"tag":98,"props":9315,"children":9317},{"className":9316},[],[9318],{"type":52,"value":647},{"type":52,"value":9320}," set, ",{"type":46,"tag":98,"props":9322,"children":9324},{"className":9323},[],[9325],{"type":52,"value":1553},{"type":52,"value":9327}," absent — typically because the project was previously scaffolded with ",{"type":46,"tag":98,"props":9329,"children":9331},{"className":9330},[],[9332],{"type":52,"value":496},{"type":52,"value":9334},". The preflight phase prefers explicit flags but still falls through to the manifest when none are passed.",{"type":46,"tag":55,"props":9336,"children":9337},{},[9338,9343,9344,9350,9351,9356,9358,9363,9365,9370],{"type":46,"tag":61,"props":9339,"children":9340},{},[9341],{"type":52,"value":9342},"Prevention (primary fix):",{"type":52,"value":9211},{"type":46,"tag":98,"props":9345,"children":9347},{"className":9346},[],[9348],{"type":52,"value":9349},"--site-id \u003Cexisting-site-id>",{"type":52,"value":649},{"type":46,"tag":98,"props":9352,"children":9354},{"className":9353},[],[9355],{"type":52,"value":519},{"type":52,"value":9357},". The preflight phase resolves identity from flags first, so this overrides whatever's in ",{"type":46,"tag":98,"props":9359,"children":9361},{"className":9360},[],[9362],{"type":52,"value":306},{"type":52,"value":9364}," and routes the deploy to the intended Webflow site. The skill should always pass ",{"type":46,"tag":98,"props":9366,"children":9368},{"className":9367},[],[9369],{"type":52,"value":570},{"type":52,"value":9371}," when site-attached intent is known.",{"type":46,"tag":90,"props":9373,"children":9375},{"className":92,"code":9374,"language":94,"meta":95,"style":95},"webflow cloud deploy --no-input \\\n  --site-id site_abc123 \\\n  --mount \u002Fapp --environment main \\\n  --skip-mount-path-check --skip-update-check\n",[9376],{"type":46,"tag":98,"props":9377,"children":9378},{"__ignoreMap":95},[9379,9402,9417,9441],{"type":46,"tag":102,"props":9380,"children":9381},{"class":104,"line":105},[9382,9386,9390,9394,9398],{"type":46,"tag":102,"props":9383,"children":9384},{"style":109},[9385],{"type":52,"value":9},{"type":46,"tag":102,"props":9387,"children":9388},{"style":114},[9389],{"type":52,"value":1138},{"type":46,"tag":102,"props":9391,"children":9392},{"style":114},[9393],{"type":52,"value":1143},{"type":46,"tag":102,"props":9395,"children":9396},{"style":114},[9397],{"type":52,"value":1148},{"type":46,"tag":102,"props":9399,"children":9400},{"style":1151},[9401],{"type":52,"value":1154},{"type":46,"tag":102,"props":9403,"children":9404},{"class":104,"line":155},[9405,9409,9413],{"type":46,"tag":102,"props":9406,"children":9407},{"style":114},[9408],{"type":52,"value":1162},{"type":46,"tag":102,"props":9410,"children":9411},{"style":114},[9412],{"type":52,"value":1167},{"type":46,"tag":102,"props":9414,"children":9415},{"style":1151},[9416],{"type":52,"value":1154},{"type":46,"tag":102,"props":9418,"children":9419},{"class":104,"line":165},[9420,9424,9428,9433,9437],{"type":46,"tag":102,"props":9421,"children":9422},{"style":114},[9423],{"type":52,"value":1213},{"type":46,"tag":102,"props":9425,"children":9426},{"style":114},[9427],{"type":52,"value":1218},{"type":46,"tag":102,"props":9429,"children":9430},{"style":114},[9431],{"type":52,"value":9432}," --environment",{"type":46,"tag":102,"props":9434,"children":9435},{"style":114},[9436],{"type":52,"value":1236},{"type":46,"tag":102,"props":9438,"children":9439},{"style":1151},[9440],{"type":52,"value":1154},{"type":46,"tag":102,"props":9442,"children":9443},{"class":104,"line":227},[9444,9448],{"type":46,"tag":102,"props":9445,"children":9446},{"style":114},[9447],{"type":52,"value":1249},{"type":46,"tag":102,"props":9449,"children":9450},{"style":114},[9451],{"type":52,"value":8410},{"type":46,"tag":55,"props":9453,"children":9454},{},[9455],{"type":46,"tag":61,"props":9456,"children":9457},{},[9458],{"type":52,"value":9459},"Recovery if the new site was already created:",{"type":46,"tag":1967,"props":9461,"children":9462},{},[9463,9480],{"type":46,"tag":1650,"props":9464,"children":9465},{},[9466,9471,9473,9478],{"type":46,"tag":61,"props":9467,"children":9468},{},[9469],{"type":52,"value":9470},"Keep the new project-app site",{"type":52,"value":9472}," the deploy just created — do nothing; subsequent deploys will go to the same site (or pass ",{"type":46,"tag":98,"props":9474,"children":9476},{"className":9475},[],[9477],{"type":52,"value":570},{"type":52,"value":9479}," of the new site if there's any ambiguity).",{"type":46,"tag":1650,"props":9481,"children":9482},{},[9483,9488,9490],{"type":46,"tag":61,"props":9484,"children":9485},{},[9486],{"type":52,"value":9487},"Re-target an existing Webflow site instead.",{"type":52,"value":9489}," The auto-provisioned site cannot be re-bound to an existing site after creation. Options:\n",{"type":46,"tag":1646,"props":9491,"children":9492},{},[9493,9498],{"type":46,"tag":1650,"props":9494,"children":9495},{},[9496],{"type":52,"value":9497},"Delete the project app (and its auto-provisioned site) from the Webflow dashboard.",{"type":46,"tag":1650,"props":9499,"children":9500},{},[9501,9503,9508,9510,9515,9516,9521,9522,9527,9528,9533,9535,9540,9541,9546,9548,9554],{"type":52,"value":9502},"Either edit ",{"type":46,"tag":98,"props":9504,"children":9506},{"className":9505},[],[9507],{"type":52,"value":306},{"type":52,"value":9509}," (remove ",{"type":46,"tag":98,"props":9511,"children":9513},{"className":9512},[],[9514],{"type":52,"value":647},{"type":52,"value":572},{"type":46,"tag":98,"props":9517,"children":9519},{"className":9518},[],[9520],{"type":52,"value":298},{"type":52,"value":572},{"type":46,"tag":98,"props":9523,"children":9525},{"className":9524},[],[9526],{"type":52,"value":4289},{"type":52,"value":572},{"type":46,"tag":98,"props":9529,"children":9531},{"className":9530},[],[9532],{"type":52,"value":1553},{"type":52,"value":9534},") and re-run ",{"type":46,"tag":98,"props":9536,"children":9538},{"className":9537},[],[9539],{"type":52,"value":473},{"type":52,"value":8570},{"type":46,"tag":98,"props":9542,"children":9544},{"className":9543},[],[9545],{"type":52,"value":9349},{"type":52,"value":9547},", or skip the manifest edit and run ",{"type":46,"tag":98,"props":9549,"children":9551},{"className":9550},[],[9552],{"type":52,"value":9553},"cloud deploy --site-id \u003Cexisting-site-id>",{"type":52,"value":9555}," directly — the preflight will treat this as a fresh site-attached deploy.",{"type":46,"tag":83,"props":9557,"children":9559},{"id":9558},"auth-error-on-deploy",[9560],{"type":52,"value":9561},"Auth error on deploy",{"type":46,"tag":55,"props":9563,"children":9564},{},[9565,9566,9571,9573,9578,9579,9584],{"type":52,"value":887},{"type":46,"tag":98,"props":9567,"children":9569},{"className":9568},[],[9570],{"type":52,"value":2243},{"type":52,"value":9572}," and complete the browser flow. The CLI writes a new ",{"type":46,"tag":98,"props":9574,"children":9576},{"className":9575},[],[9577],{"type":52,"value":3556},{"type":52,"value":649},{"type":46,"tag":98,"props":9580,"children":9582},{"className":9581},[],[9583],{"type":52,"value":1574},{"type":52,"value":9585},". Retry the deploy after login.",{"type":46,"tag":55,"props":9587,"children":9588},{},[9589,9591,9596,9598,9603,9605,9610,9612,9617],{"type":52,"value":9590},"In CI, browser auth is not possible — an auth error means ",{"type":46,"tag":98,"props":9592,"children":9594},{"className":9593},[],[9595],{"type":52,"value":3556},{"type":52,"value":9597}," is missing or expired in your secrets. Fix the secret, do not attempt ",{"type":46,"tag":98,"props":9599,"children":9601},{"className":9600},[],[9602],{"type":52,"value":2243},{"type":52,"value":9604},". If the CI uses the legacy ",{"type":46,"tag":98,"props":9606,"children":9608},{"className":9607},[],[9609],{"type":52,"value":3653},{"type":52,"value":9611},", the deploy will still work but the run log shows a deprecation warning; rename the secret to ",{"type":46,"tag":98,"props":9613,"children":9615},{"className":9614},[],[9616],{"type":52,"value":3556},{"type":52,"value":9618}," to clear it.",{"type":46,"tag":83,"props":9620,"children":9622},{"id":9621},"deploying-to-a-different-workspace",[9623],{"type":52,"value":9624},"Deploying to a different workspace",{"type":46,"tag":55,"props":9626,"children":9627},{},[9628,9629,9640,9642,9648,9649,9654,9655,9660,9662,9667,9668,9673,9675,9680,9682,9687],{"type":52,"value":2049},{"type":46,"tag":61,"props":9630,"children":9631},{},[9632,9634,9639],{"type":52,"value":9633},"project apps (",{"type":46,"tag":98,"props":9635,"children":9637},{"className":9636},[],[9638],{"type":52,"value":4341},{"type":52,"value":5276},{"type":52,"value":9641},": pass ",{"type":46,"tag":98,"props":9643,"children":9645},{"className":9644},[],[9646],{"type":52,"value":9647},"--workspace-id \u003Cnew-id>",{"type":52,"value":649},{"type":46,"tag":98,"props":9650,"children":9652},{"className":9651},[],[9653],{"type":52,"value":473},{"type":52,"value":5905},{"type":46,"tag":98,"props":9656,"children":9658},{"className":9657},[],[9659],{"type":52,"value":519},{"type":52,"value":9661}," to override ",{"type":46,"tag":98,"props":9663,"children":9665},{"className":9664},[],[9666],{"type":52,"value":647},{"type":52,"value":300},{"type":46,"tag":98,"props":9669,"children":9671},{"className":9670},[],[9672],{"type":52,"value":306},{"type":52,"value":9674},". Alternatively, delete ",{"type":46,"tag":98,"props":9676,"children":9678},{"className":9677},[],[9679],{"type":52,"value":647},{"type":52,"value":9681}," from ",{"type":46,"tag":98,"props":9683,"children":9685},{"className":9684},[],[9686],{"type":52,"value":306},{"type":52,"value":9688}," and re-run init (or interactive deploy on an existing project) to re-seed it.",{"type":46,"tag":55,"props":9690,"children":9691},{},[9692,9693,9698,9700,9705,9707,9712],{"type":52,"value":2049},{"type":46,"tag":61,"props":9694,"children":9695},{},[9696],{"type":52,"value":9697},"site-attached projects",{"type":52,"value":9699},", workspace context is implicit in the auth token. Re-run ",{"type":46,"tag":98,"props":9701,"children":9703},{"className":9702},[],[9704],{"type":52,"value":2243},{"type":52,"value":9706}," and select the target workspace in the browser; the new token replaces the old one in ",{"type":46,"tag":98,"props":9708,"children":9710},{"className":9709},[],[9711],{"type":52,"value":1574},{"type":52,"value":421},{"type":46,"tag":83,"props":9714,"children":9716},{"id":9715},"first-project-app-deploy-fails-with-missing_scopes",[9717,9719],{"type":52,"value":9718},"First project-app deploy fails with ",{"type":46,"tag":98,"props":9720,"children":9722},{"className":9721},[],[9723],{"type":52,"value":9724},"missing_scopes",{"type":46,"tag":55,"props":9726,"children":9727},{},[9728,9730,9735,9737,9742],{"type":52,"value":9729},"The token saved to ",{"type":46,"tag":98,"props":9731,"children":9733},{"className":9732},[],[9734],{"type":52,"value":1574},{"type":52,"value":9736}," doesn't include the scopes needed to create a Cloud app. Re-run ",{"type":46,"tag":98,"props":9738,"children":9740},{"className":9739},[],[9741],{"type":52,"value":2243},{"type":52,"value":9743}," and re-approve the scopes, then retry the deploy.",{"type":46,"tag":83,"props":9745,"children":9747},{"id":9746},"first-project-app-deploy-fails-your-workspace-has-reached-its-app-limit",[9748],{"type":52,"value":9749},"First project-app deploy fails: \"your workspace has reached its app limit\"",{"type":46,"tag":55,"props":9751,"children":9752},{},[9753,9755,9760],{"type":52,"value":9754},"The selected workspace (",{"type":46,"tag":98,"props":9756,"children":9758},{"className":9757},[],[9759],{"type":52,"value":647},{"type":52,"value":9761},") is at its app cap. Either upgrade the workspace plan or delete unused apps in the Webflow dashboard, then retry.",{"type":46,"tag":83,"props":9763,"children":9765},{"id":9764},"first-project-app-deploy-fails-with-workspace-not-found-404",[9766],{"type":52,"value":9767},"First project-app deploy fails with workspace-not-found \u002F 404",{"type":46,"tag":55,"props":9769,"children":9770},{},[9771,9773,9778,9780,9785,9786,9791,9793,9798],{"type":52,"value":9772},"The workspace ID (from ",{"type":46,"tag":98,"props":9774,"children":9776},{"className":9775},[],[9777],{"type":52,"value":593},{"type":52,"value":9779}," flag, or ",{"type":46,"tag":98,"props":9781,"children":9783},{"className":9782},[],[9784],{"type":52,"value":647},{"type":52,"value":300},{"type":46,"tag":98,"props":9787,"children":9789},{"className":9788},[],[9790],{"type":52,"value":306},{"type":52,"value":9792},") no longer resolves — workspace deleted, or token has no access. The CLI doesn't validate the flag up front: it trusts the value and surfaces the 404 from ",{"type":46,"tag":98,"props":9794,"children":9796},{"className":9795},[],[9797],{"type":52,"value":4312},{"type":52,"value":9799},". Fixes:",{"type":46,"tag":1967,"props":9801,"children":9802},{},[9803,9826],{"type":46,"tag":1650,"props":9804,"children":9805},{},[9806,9807,9813,9814,9819,9820,9825],{"type":52,"value":5898},{"type":46,"tag":98,"props":9808,"children":9810},{"className":9809},[],[9811],{"type":52,"value":9812},"--workspace-id \u003Ccorrect-id>",{"type":52,"value":649},{"type":46,"tag":98,"props":9815,"children":9817},{"className":9816},[],[9818],{"type":52,"value":473},{"type":52,"value":5905},{"type":46,"tag":98,"props":9821,"children":9823},{"className":9822},[],[9824],{"type":52,"value":519},{"type":52,"value":421},{"type":46,"tag":1650,"props":9827,"children":9828},{},[9829,9831,9836,9837,9842,9844,9850,9852,9857],{"type":52,"value":9830},"Or delete ",{"type":46,"tag":98,"props":9832,"children":9834},{"className":9833},[],[9835],{"type":52,"value":647},{"type":52,"value":9681},{"type":46,"tag":98,"props":9838,"children":9840},{"className":9839},[],[9841],{"type":52,"value":306},{"type":52,"value":9843}," and either re-run ",{"type":46,"tag":98,"props":9845,"children":9847},{"className":9846},[],[9848],{"type":52,"value":9849},"cloud init --new --workspace-id \u003Cid>",{"type":52,"value":9851}," (empty directory) or run ",{"type":46,"tag":98,"props":9853,"children":9855},{"className":9854},[],[9856],{"type":52,"value":639},{"type":52,"value":9858}," interactively (existing project) so the preflight prompt re-seeds the workspace ID.",{"type":46,"tag":83,"props":9860,"children":9862},{"id":9861},"environment_mount_mismatch",[9863],{"type":46,"tag":98,"props":9864,"children":9866},{"className":9865},[],[9867],{"type":52,"value":8612},{"type":46,"tag":55,"props":9869,"children":9870},{},[9871,9873,9878],{"type":52,"value":9872},"The ",{"type":46,"tag":98,"props":9874,"children":9876},{"className":9875},[],[9877],{"type":52,"value":6453},{"type":52,"value":9879}," value does not match the path registered for that environment. Check the Webflow dashboard under the project's environment settings for the correct mount path and pass it explicitly.",{"type":46,"tag":83,"props":9881,"children":9883},{"id":9882},"framework-cannot-be-detected-explicit-framework-required",[9884],{"type":52,"value":9885},"Framework cannot be detected \u002F explicit framework required",{"type":46,"tag":55,"props":9887,"children":9888},{},[9889,9891,9896,9898,9903,9905,9910,9912,9917,9919,9924,9926,9931],{"type":52,"value":9890},"A ",{"type":46,"tag":98,"props":9892,"children":9894},{"className":9893},[],[9895],{"type":52,"value":306},{"type":52,"value":9897}," that has a ",{"type":46,"tag":98,"props":9899,"children":9901},{"className":9900},[],[9902],{"type":52,"value":25},{"type":52,"value":9904}," block but no ",{"type":46,"tag":98,"props":9906,"children":9908},{"className":9907},[],[9909],{"type":52,"value":4072},{"type":52,"value":9911}," key does not throw — the CLI falls back to detecting from ",{"type":46,"tag":98,"props":9913,"children":9915},{"className":9914},[],[9916],{"type":52,"value":1044},{"type":52,"value":9918},". The legacy error ",{"type":46,"tag":686,"props":9920,"children":9921},{},[9922],{"type":52,"value":9923},"\"webflow.json exists but doesn't contain valid framework information\"",{"type":52,"value":9925}," only fires when ",{"type":46,"tag":98,"props":9927,"children":9929},{"className":9928},[],[9930],{"type":52,"value":4240},{"type":52,"value":9932}," is explicitly set to an unsupported value.",{"type":46,"tag":55,"props":9934,"children":9935},{},[9936,9938,9943,9945,9950],{"type":52,"value":9937},"If framework detection still fails (monorepo, missing framework dependency, ambiguous setup), fix it with the new ",{"type":46,"tag":98,"props":9939,"children":9941},{"className":9940},[],[9942],{"type":52,"value":585},{"type":52,"value":9944}," flag on ",{"type":46,"tag":98,"props":9946,"children":9948},{"className":9947},[],[9949],{"type":52,"value":519},{"type":52,"value":1896},{"type":46,"tag":90,"props":9952,"children":9954},{"className":92,"code":9953,"language":94,"meta":95,"style":95},"webflow cloud deploy --no-input --framework nextjs --mount \u002Fapp --environment main ...\n",[9955],{"type":46,"tag":98,"props":9956,"children":9957},{"__ignoreMap":95},[9958],{"type":46,"tag":102,"props":9959,"children":9960},{"class":104,"line":105},[9961,9965,9969,9973,9977,9981,9985,9989,9993,9997,10001],{"type":46,"tag":102,"props":9962,"children":9963},{"style":109},[9964],{"type":52,"value":9},{"type":46,"tag":102,"props":9966,"children":9967},{"style":114},[9968],{"type":52,"value":1138},{"type":46,"tag":102,"props":9970,"children":9971},{"style":114},[9972],{"type":52,"value":1143},{"type":46,"tag":102,"props":9974,"children":9975},{"style":114},[9976],{"type":52,"value":1148},{"type":46,"tag":102,"props":9978,"children":9979},{"style":114},[9980],{"type":52,"value":9103},{"type":46,"tag":102,"props":9982,"children":9983},{"style":114},[9984],{"type":52,"value":1201},{"type":46,"tag":102,"props":9986,"children":9987},{"style":114},[9988],{"type":52,"value":8396},{"type":46,"tag":102,"props":9990,"children":9991},{"style":114},[9992],{"type":52,"value":1218},{"type":46,"tag":102,"props":9994,"children":9995},{"style":114},[9996],{"type":52,"value":9432},{"type":46,"tag":102,"props":9998,"children":9999},{"style":114},[10000],{"type":52,"value":1236},{"type":46,"tag":102,"props":10002,"children":10003},{"style":114},[10004],{"type":52,"value":10005}," ...\n",{"type":46,"tag":55,"props":10007,"children":10008},{},[10009,10011,10016,10018,10023],{"type":52,"value":10010},"This writes ",{"type":46,"tag":98,"props":10012,"children":10014},{"className":10013},[],[10015],{"type":52,"value":4240},{"type":52,"value":10017}," back into ",{"type":46,"tag":98,"props":10019,"children":10021},{"className":10020},[],[10022],{"type":52,"value":306},{"type":52,"value":10024}," so subsequent deploys don't need the flag. Or just edit the manifest manually:",{"type":46,"tag":90,"props":10026,"children":10028},{"className":3871,"code":10027,"language":3873,"meta":95,"style":95},"{\n  \"cloud\": {\n    \"framework\": \"nextjs\"\n  }\n}\n",[10029],{"type":46,"tag":98,"props":10030,"children":10031},{"__ignoreMap":95},[10032,10039,10062,10093,10100],{"type":46,"tag":102,"props":10033,"children":10034},{"class":104,"line":105},[10035],{"type":46,"tag":102,"props":10036,"children":10037},{"style":260},[10038],{"type":52,"value":3885},{"type":46,"tag":102,"props":10040,"children":10041},{"class":104,"line":155},[10042,10046,10050,10054,10058],{"type":46,"tag":102,"props":10043,"children":10044},{"style":260},[10045],{"type":52,"value":3893},{"type":46,"tag":102,"props":10047,"children":10048},{"style":3896},[10049],{"type":52,"value":25},{"type":46,"tag":102,"props":10051,"children":10052},{"style":260},[10053],{"type":52,"value":3903},{"type":46,"tag":102,"props":10055,"children":10056},{"style":260},[10057],{"type":52,"value":1896},{"type":46,"tag":102,"props":10059,"children":10060},{"style":260},[10061],{"type":52,"value":3949},{"type":46,"tag":102,"props":10063,"children":10064},{"class":104,"line":165},[10065,10069,10073,10077,10081,10085,10089],{"type":46,"tag":102,"props":10066,"children":10067},{"style":260},[10068],{"type":52,"value":3957},{"type":46,"tag":102,"props":10070,"children":10071},{"style":109},[10072],{"type":52,"value":4072},{"type":46,"tag":102,"props":10074,"children":10075},{"style":260},[10076],{"type":52,"value":3903},{"type":46,"tag":102,"props":10078,"children":10079},{"style":260},[10080],{"type":52,"value":1896},{"type":46,"tag":102,"props":10082,"children":10083},{"style":260},[10084],{"type":52,"value":2615},{"type":46,"tag":102,"props":10086,"children":10087},{"style":114},[10088],{"type":52,"value":4089},{"type":46,"tag":102,"props":10090,"children":10091},{"style":260},[10092],{"type":52,"value":2625},{"type":46,"tag":102,"props":10094,"children":10095},{"class":104,"line":227},[10096],{"type":46,"tag":102,"props":10097,"children":10098},{"style":260},[10099],{"type":52,"value":4130},{"type":46,"tag":102,"props":10101,"children":10102},{"class":104,"line":236},[10103],{"type":46,"tag":102,"props":10104,"children":10105},{"style":260},[10106],{"type":52,"value":4139},{"type":46,"tag":55,"props":10108,"children":10109},{},[10110,10112,10117,10118,10123],{"type":52,"value":10111},"Valid values: ",{"type":46,"tag":98,"props":10113,"children":10115},{"className":10114},[],[10116],{"type":52,"value":4089},{"type":52,"value":572},{"type":46,"tag":98,"props":10119,"children":10121},{"className":10120},[],[10122],{"type":52,"value":4864},{"type":52,"value":10124},". Any other value exits with code 1.",{"type":46,"tag":83,"props":10126,"children":10128},{"id":10127},"build-fails-need-full-trace",[10129],{"type":52,"value":10130},"Build fails, need full trace",{"type":46,"tag":90,"props":10132,"children":10134},{"className":92,"code":10133,"language":94,"meta":95,"style":95},"webflow log\n",[10135],{"type":46,"tag":98,"props":10136,"children":10137},{"__ignoreMap":95},[10138],{"type":46,"tag":102,"props":10139,"children":10140},{"class":104,"line":105},[10141,10145],{"type":46,"tag":102,"props":10142,"children":10143},{"style":109},[10144],{"type":52,"value":9},{"type":46,"tag":102,"props":10146,"children":10147},{"style":114},[10148],{"type":52,"value":8481},{"type":46,"tag":55,"props":10150,"children":10151},{},[10152],{"type":52,"value":10153},"Prints the path to the latest log file with the full error trace.",{"type":46,"tag":10155,"props":10156,"children":10157},"style",{},[10158],{"type":52,"value":10159},"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);}",{"items":10161,"total":8198},[10162,10170,10187,10204,10221,10237,10253],{"slug":4,"name":5,"fn":6,"description":7,"org":10163,"tags":10164,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10165,10166,10167,10168,10169],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":10,"slug":9,"type":16},{"slug":10171,"name":10172,"fn":10173,"description":10174,"org":10175,"tags":10176,"stars":27,"repoUrl":28,"updatedAt":10186},"webflow-clicode-component","webflow-cli:code-component","create and deploy Webflow Code Components","Create and deploy reusable React components for Webflow Designer. Configure existing React projects with webflow.json, build and bundle code, validate output, and deploy to workspace using library share. Use when building custom components for designers.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10177,10178,10179,10182,10185],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":10180,"slug":10181,"type":16},"React","react",{"name":10183,"slug":10184,"type":16},"UI Components","ui-components",{"name":10,"slug":9,"type":16},"2026-05-18T06:47:41.421071",{"slug":10188,"name":10189,"fn":10190,"description":10191,"org":10192,"tags":10193,"stars":27,"repoUrl":28,"updatedAt":10203},"webflow-clidesigner-extension","webflow-cli:designer-extension","build Webflow Designer Extensions","Build Designer Extensions for custom Webflow Designer functionality. Lists available templates, initializes extension projects from templates (default\u002Freact\u002Ftypescript-alt), bundles extensions for upload, and serves locally for development.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10194,10195,10198,10199,10202],{"name":18,"slug":19,"type":16},{"name":10196,"slug":10197,"type":16},"Plugin Development","plugin-development",{"name":10180,"slug":10181,"type":16},{"name":10200,"slug":10201,"type":16},"TypeScript","typescript",{"name":10,"slug":9,"type":16},"2026-05-18T06:47:43.853573",{"slug":10205,"name":10206,"fn":10207,"description":10208,"org":10209,"tags":10210,"stars":27,"repoUrl":28,"updatedAt":10220},"webflow-clidevlink","webflow-cli:devlink","export Webflow components to React and Next.js","Export Webflow Designer components to React\u002FNext.js code for external projects. Configure devlink settings in webflow.json, sync design updates with devlink sync, validate generated code, show diffs, and provide integration examples. Use when building with Webflow designs in React\u002FNext.js.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10211,10212,10215,10218,10219],{"name":18,"slug":19,"type":16},{"name":10213,"slug":10214,"type":16},"Frontend","frontend",{"name":10216,"slug":10217,"type":16},"Next.js","next-js",{"name":10180,"slug":10181,"type":16},{"name":10,"slug":9,"type":16},"2026-05-18T06:47:40.182468",{"slug":10222,"name":10223,"fn":10224,"description":10225,"org":10226,"tags":10227,"stars":27,"repoUrl":28,"updatedAt":10236},"webflow-clitroubleshooter","webflow-cli:troubleshooter","troubleshoot Webflow CLI issues","Diagnose and fix Webflow CLI issues including installation problems, authentication failures, build errors, and bundle problems. Uses CLI diagnostic flags (--version, --help, --verbose, --debug-bundler) for troubleshooting.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10228,10229,10232,10235],{"name":18,"slug":19,"type":16},{"name":10230,"slug":10231,"type":16},"Configuration","configuration",{"name":10233,"slug":10234,"type":16},"Debugging","debugging",{"name":10,"slug":9,"type":16},"2026-05-18T06:47:48.831648",{"slug":10238,"name":10239,"fn":10240,"description":10241,"org":10242,"tags":10243,"stars":27,"repoUrl":28,"updatedAt":10252},"webflow-code-componentcomponent-audit","webflow-code-component:component-audit","audit Webflow Code Component architecture","Audit Webflow Code Components for architecture decisions - prop exposure, state management, slot opportunities, and Shadow DOM compatibility. Focused on Webflow-specific patterns, not generic React best practices.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10244,10247,10250,10251],{"name":10245,"slug":10246,"type":16},"Architecture","architecture",{"name":10248,"slug":10249,"type":16},"Code Analysis","code-analysis",{"name":10180,"slug":10181,"type":16},{"name":10,"slug":9,"type":16},"2026-05-18T06:47:46.277768",{"slug":10254,"name":10255,"fn":10256,"description":10257,"org":10258,"tags":10259,"stars":27,"repoUrl":28,"updatedAt":10266},"webflow-code-componentcomponent-scaffold","webflow-code-component:component-scaffold","scaffold Webflow Code Component boilerplate","Generate new Webflow Code Component boilerplate with React component, definition file, and optional styling. Automatically checks prerequisites and can set up missing config\u002Fdependencies.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10260,10261,10262,10265],{"name":10213,"slug":10214,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10263,"slug":10264,"type":16},"Templates","templates",{"name":10,"slug":9,"type":16},"2026-05-18T06:47:42.638042",{"items":10268,"total":8198},[10269,10277,10285,10293,10301,10308,10315,10322,10336,10348,10362,10378],{"slug":4,"name":5,"fn":6,"description":7,"org":10270,"tags":10271,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10272,10273,10274,10275,10276],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":10,"slug":9,"type":16},{"slug":10171,"name":10172,"fn":10173,"description":10174,"org":10278,"tags":10279,"stars":27,"repoUrl":28,"updatedAt":10186},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10280,10281,10282,10283,10284],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10183,"slug":10184,"type":16},{"name":10,"slug":9,"type":16},{"slug":10188,"name":10189,"fn":10190,"description":10191,"org":10286,"tags":10287,"stars":27,"repoUrl":28,"updatedAt":10203},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10288,10289,10290,10291,10292],{"name":18,"slug":19,"type":16},{"name":10196,"slug":10197,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10200,"slug":10201,"type":16},{"name":10,"slug":9,"type":16},{"slug":10205,"name":10206,"fn":10207,"description":10208,"org":10294,"tags":10295,"stars":27,"repoUrl":28,"updatedAt":10220},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10296,10297,10298,10299,10300],{"name":18,"slug":19,"type":16},{"name":10213,"slug":10214,"type":16},{"name":10216,"slug":10217,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10,"slug":9,"type":16},{"slug":10222,"name":10223,"fn":10224,"description":10225,"org":10302,"tags":10303,"stars":27,"repoUrl":28,"updatedAt":10236},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10304,10305,10306,10307],{"name":18,"slug":19,"type":16},{"name":10230,"slug":10231,"type":16},{"name":10233,"slug":10234,"type":16},{"name":10,"slug":9,"type":16},{"slug":10238,"name":10239,"fn":10240,"description":10241,"org":10309,"tags":10310,"stars":27,"repoUrl":28,"updatedAt":10252},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10311,10312,10313,10314],{"name":10245,"slug":10246,"type":16},{"name":10248,"slug":10249,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10,"slug":9,"type":16},{"slug":10254,"name":10255,"fn":10256,"description":10257,"org":10316,"tags":10317,"stars":27,"repoUrl":28,"updatedAt":10266},{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10318,10319,10320,10321],{"name":10213,"slug":10214,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10263,"slug":10264,"type":16},{"name":10,"slug":9,"type":16},{"slug":10323,"name":10324,"fn":10325,"description":10326,"org":10327,"tags":10328,"stars":27,"repoUrl":28,"updatedAt":10335},"webflow-code-componentconvert-component","webflow-code-component:convert-component","convert React components to Webflow Code Components","Convert an existing React component into a Webflow Code Component. Analyzes TypeScript props, maps to Webflow prop types, generates the .webflow.tsx definition file, and identifies required modifications.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10329,10332,10333,10334],{"name":10330,"slug":10331,"type":16},"Migration","migration",{"name":10180,"slug":10181,"type":16},{"name":10200,"slug":10201,"type":16},{"name":10,"slug":9,"type":16},"2026-05-18T06:47:52.523608",{"slug":10337,"name":10338,"fn":10339,"description":10340,"org":10341,"tags":10342,"stars":27,"repoUrl":28,"updatedAt":10347},"webflow-code-componentdeploy-guide","webflow-code-component:deploy-guide","deploy Webflow Code Components","Step-by-step guide for deploying Webflow Code Components to a workspace. Covers authentication, pre-flight checks, deployment execution, and verification.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10343,10344,10345,10346],{"name":21,"slug":22,"type":16},{"name":10213,"slug":10214,"type":16},{"name":10180,"slug":10181,"type":16},{"name":10,"slug":9,"type":16},"2026-05-18T06:47:38.947875",{"slug":10349,"name":10350,"fn":10351,"description":10352,"org":10353,"tags":10354,"stars":27,"repoUrl":28,"updatedAt":10361},"webflow-code-componentlocal-dev-setup","webflow-code-component:local-dev-setup","set up local Webflow Code Component projects","Initialize a new Webflow Code Components project from scratch. Creates project structure, installs dependencies, configures webflow.json, and sets up development environment.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10355,10356,10359,10360],{"name":10230,"slug":10231,"type":16},{"name":10357,"slug":10358,"type":16},"Local Development","local-development",{"name":10180,"slug":10181,"type":16},{"name":10,"slug":9,"type":16},"2026-05-18T06:47:50.062783",{"slug":10363,"name":10364,"fn":10365,"description":10366,"org":10367,"tags":10368,"stars":27,"repoUrl":28,"updatedAt":10377},"webflow-code-componentpre-deploy-check","webflow-code-component:pre-deploy-check","validate Webflow Code Components before deployment","Pre-deployment validation for Webflow Code Components. Checks bundle size, dependencies, prop configurations, SSR compatibility, styling setup, and common issues before running webflow library share.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10369,10370,10373,10376],{"name":21,"slug":22,"type":16},{"name":10371,"slug":10372,"type":16},"QA","qa",{"name":10374,"slug":10375,"type":16},"Validation","validation",{"name":10,"slug":9,"type":16},"2026-05-18T06:47:51.300653",{"slug":10379,"name":10380,"fn":10381,"description":10382,"org":10383,"tags":10384,"stars":27,"repoUrl":28,"updatedAt":10391},"webflow-code-componenttroubleshoot-deploy","webflow-code-component:troubleshoot-deploy","troubleshoot Webflow Code Component deployments","Debug deployment failures for Webflow Code Components. Analyzes error messages, identifies root causes, and provides specific fixes for common issues.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":9},[10385,10386,10387,10390],{"name":10233,"slug":10234,"type":16},{"name":21,"slug":22,"type":16},{"name":10388,"slug":10389,"type":16},"Observability","observability",{"name":10,"slug":9,"type":16},"2026-05-18T06:47:45.057571"]