{
  "schema_version": "1.0",
  "id": "archive:https://vercel.com/changelog/dry-run-deployments-with-vercel-cli",
  "slug": "dry-run-deployments-with-vercel-cli-0ms7auu",
  "url": "https://feed7.dev/p/dry-run-deployments-with-vercel-cli-0ms7auu",
  "title": "Dry-run deployments with Vercel CLI",
  "why_included": "vercel deploy --dry (CLI v54.17.2+) prints the framework and full file manifest a deploy would upload, as JSON when piped — a pre-deploy check agents can loop on without ever creating a deployment.",
  "summary": "**The gist** Vercel CLI **v54.17.2** adds **vercel deploy --dry**, which shows the detected framework preset and exactly which files a deployment would include, without uploading anything. With **--format=json** (automatic for piped or non-TTY output) it returns a full manifest: included and ignored paths, directory size distribution, largest files, **file modes and content hashes**.",
  "practical_implication": "**Why it matters** This gives a coding agent a cheap, deterministic pre-deploy gate: verify framework detection, catch missing or unexpected files, flag oversized assets, then edit **.vercelignore** or project config and rerun until the manifest matches intent — **no deployment is created** along the way.",
  "agent_context": "**The gist** Vercel CLI **v54.17.2** adds **vercel deploy --dry**, which shows the detected framework preset and exactly which files a deployment would include, without uploading anything. With **--format=json** (automatic for piped or non-TTY output) it returns a full manifest: included and ignored paths, directory size distribution, largest files, **file modes and content hashes**.\n\n**Why it matters** This gives a coding agent a cheap, deterministic pre-deploy gate: verify framework detection, catch missing or unexpected files, flag oversized assets, then edit **.vercelignore** or project config and rerun until the manifest matches intent — **no deployment is created** along the way.\n\n**Watch out** A dry run validates the **file manifest**, not the build — compile errors and runtime config issues still only surface on a real deployment. It requires CLI **v54.17.2 or later**.",
  "source": {
    "name": "Vercel",
    "url": "https://vercel.com/changelog/dry-run-deployments-with-vercel-cli",
    "published_at": null
  },
  "source_class": "blog_post",
  "content_type": "Engineering Post",
  "layer": "infra",
  "domains": [
    "coding"
  ],
  "topics": [
    "dev-ux",
    "harness-engineering"
  ],
  "verification": {
    "status": "official_source",
    "label": "Official Source",
    "method": "source_feed",
    "verified_at": null
  },
  "uncertainty": [
    "A dry run validates the **file manifest**, not the build — compile errors and runtime config issues still only surface on a real deployment. It requires CLI **v54.17.2 or later**."
  ],
  "lifecycle": "Current",
  "published_at": null,
  "modified_at": null,
  "supersedes": [],
  "expires_at": null,
  "formats": {
    "html": "https://feed7.dev/p/dry-run-deployments-with-vercel-cli-0ms7auu",
    "json": "https://feed7.dev/p/dry-run-deployments-with-vercel-cli-0ms7auu.json",
    "markdown": "https://feed7.dev/p/dry-run-deployments-with-vercel-cli-0ms7auu.md"
  }
}