Develop. Preview. Ship.
A deterministic 0–100 hygiene score — README, license, CI, tests, docs, and freshness.
Who ships this repo — author concentration and the bus factor across the last 300 mainline commits.
Grounded in vercel's README, structure, and recent commits — answers won't invent code they haven't seen.
mainAdded new `vercel flags rules` subcommands to list, create, update, reorder, and delete conditional rules for feature flags. This enables developers to manage complex flag targeting logic through the command line, supporting conditions like user attributes and segments.
Python builds now fail loudly when `tool.vercel.entrypoint` is configured in pyproject.toml but cannot be resolved, instead of silently falling back to automatic detection. This prevents accidentally deploying a different app than the one declared.
Added two new CLI commands to browse AI Gateway models without leaving the terminal: `vc ai-gateway models ls` displays a table of available models with their details, and `vc ai-gateway models endpoints <model>` shows provider endpoints with pricing and performance metrics for a specific model. Both commands support JSON output format for programmatic use.
Fixed an issue where the `vercel alerts rules` command wasn't properly receiving scope and format flags like `--all`, `--project`, and `--format`. These flags are now correctly forwarded to the nested rules subcommand, allowing team-wide and explicit project alert rule listings to work from unlinked directories.
Fixed a security vulnerability where malicious `routePrefix` values containing path traversal segments (like `..`) could write files outside the intended output directory. The fix validates `routePrefix` values and rejects any containing traversal attempts before they're used to mount static build output.
The CLI now asks users to explicitly choose a team before linking projects, with improved search and matching capabilities across all linking commands (deploy, pull, dev, git connect, and link). Users can press Escape to cancel prompts, and the flow prioritizes projects linked to the local Git repository, then falls back to folder-name matches before offering full search or project creation.
Developers can now run Python queue subscribers (like Celery workers) alongside their main app using `vercel dev`, with both processes sharing a single virtual environment. Subscribers are configured in `pyproject.toml` under `[tool.vercel.subscribers]` and run as sidecars to the main builder.
CLI list commands now support a `--limit` flag to control how many results are returned, helping users manage API payloads and context window sizes. The commands also now properly show pagination hints based on whether more results are available, rather than assuming a fixed page size.
Python services with a `preDeployCommand` now skip bytecode precompilation to ensure source file changes made during the pre-deploy phase take effect. Previously, precompiled bytecode could become stale when the pre-deploy command modified source files, causing the deployed app to serve outdated code.
Fixed the `vercel inspect` command so that when you use both `--logs` and `--format json` flags together, it now returns the build log events as a JSON array instead of ignoring the logs flag. Previously, the JSON output would bypass log handling and only show deployment metadata.
Added support for the `vercel vcr` command set to the Vercel CLI Skill, enabling users to manage container repositories, images, tags, and authentication with the Vercel Container Registry from the command line. This includes new documentation explaining how to list, inspect, and delete repositories and images, as well as how to log in with Docker, Podman, or Buildah.
The Vercel CLI now supports `vercel vcr login <engine>` to authenticate Docker, Podman, or Buildah with the Vercel Container Registry using OIDC tokens. The command validates the engine type, checks that the tool is installed, and logs in with appropriate error messages for invalid or missing engines.
Next.js middleware now includes Node.js instrumentation hooks, ensuring that instrumentation files are properly bundled and traced when building middleware. This allows developers to use instrumentation in their middleware the same way they do in regular server functions.
Changed how Python `pyproject.toml` declares subscribers to use TOML array syntax (`[[tool.vercel.subscribers]]`) instead of named object tables. Subscriber names are now automatically derived from their entrypoint module and variable (e.g., `worker_app`) rather than manually specified.
The `vc build` command now properly links a directory before prompting to pull settings, ensuring the linking flow appears explicitly in the right order rather than as a side effect. Additionally, the freshly-established link is now recognized on the same run, preventing incorrect work paths (like `apps/api/apps/api`) that previously only corrected themselves on subsequent builds.
Added `vercel integration resource inspect` command (with `status` alias) to display a single integration resource's current details and live status fetched directly from the provider, rather than the cached status shown in the resource list. This lets users see up-to-date information via CLI.
Container deployments now support function configuration settings like memory, duration limits, regions, and architecture. These settings from `vercel.json` are automatically applied during the build and saved to the container configuration.
When upgrading Vercel CLI via pnpm, the `pnpm i -g vercel@latest` command now includes the `--allow-build` flag to pre-approve required dependency build scripts (like esbuild's postinstall). This prevents pnpm v10+ from prompting for approval or skipping the scripts during the upgrade process.
Fixed three bugs in the CLI upgrade flow: pnpm 11 global installs are no longer misdetected as local npm installs (which was polluting user directories), unrecognized installation layouts now safely degrade to global upgrades instead of running locally, and the upgrade prompt no longer re-appears immediately after a successful upgrade completes.
Python Lambda functions under 225MB can now automatically pre-compile bytecode when there's enough room, speeding up cold starts. The system estimates bytecode size and only compiles if at least 50% of it fits, with safeguards to prevent compilation failures from breaking deployments.
Published new versions of the Vercel CLI (54.21.1) and fs-detectors package (6.12.0) with bug fixes for service route preservation, framework detection in subdirectories, and added `--project` flag support for various commands.
The `vercel flags`, `vercel cache`, `vercel crons`, and `vercel rolling-release` commands now accept a `--project` flag to specify a project by name, allowing them to run from any directory without requiring a linked `.vercel/project.json` file. When a project name is not found, a standard error is returned with a suggested retry command.
Fixed a bug where framework detection would fail silently when a service's entrypoint was located in a subdirectory of the service root, causing it to incorrectly default to "services" as the framework. The detection now properly runs from the service root directory regardless of entrypoint location.
Fixed an issue where generated service routes could be lost when using a custom build output directory. When a builder returns a custom output path, the CLI now correctly preserves both the generated service configurations and their corresponding routes during the merge process, ensuring service handoff routes like `/eve/v1/* -> service:eve` are not dropped.
Published new versions of Vercel CLI and related packages with improvements to monorepo builds, domain commands, framework detection, and integration skill installation. Key features include automatic monorepo subdirectory build fixes, Django service improvements, and optional framework auto-detection during builds.
Updated guidance for the Vercel CLI skill to recommend using `vercel api --raw` for JSON parsing, clarified that `--follow` is for live debugging, noted that `vercel list` uses `--next` pagination instead of `--limit`, and added clarifications about forced deploys, build cache, and error handling in agent/non-interactive mode.
Introduces a new `vercel project update` command that lets developers change project settings like framework, build command, dev command, install command, and output directory directly from the CLI—matching dashboard functionality. The command supports auto-detection reset and outputs changes in human or JSON format.
Fixed Django framework detection to properly handle static asset bundling and development server startup when manage.py is in a subdirectory or has an explicit entrypoint. The service now correctly sets the Django working directory for collectstatic and loads the app entrypoint in vc dev.
The `domains inspect` and `domains rm` commands now find projects using a domain much faster by checking the domain's own project assignments instead of scanning every project in the account. The Projects table in inspect also now shows branch-specific domain assignments instead of just production aliases.
Fixed a bug where suggested commands in error messages could include duplicate global flags (like `--scope` appearing twice with different values), breaking the suggested command. The CLI now deduplicates flags that already exist in the command template, treating shorthand and long forms (e.g., `-S` and `--scope`) as the same flag.
A Monday email with what shipped in vercel, in plain English — no account needed.
See how vercel stacks up against a rival, side by side.
Drop a live “shipped this week” badge into your README.
[](https://repowrapped.com/gh/vercel/vercel)<a href="https://repowrapped.com/gh/vercel/vercel"><img src="https://repowrapped.com/gh/vercel/vercel/badge.svg" alt="shipped this week" /></a>A floor, not a guess: counts only commits whose author, co-author trailer, or message explicitly credits an AI tool (Claude, Copilot, Cursor, aider, Codex…). Based on 30 mainline commits. Unattributed AI code isn't counted here — the full audit estimates that separately.