close
Skip to content
Docs

vercel project

The vercel project command manages your Vercel Projects from the terminal: list, add, inspect, update, rename, and remove projects, pause and resume production traffic, plus configure framework and build settings, deployment checks, deployment protection, access groups, project members, Web Analytics, Speed Insights, Observability Plus, and project-scoped OIDC tokens.

vercel projects is an alias for the same command.

terminal
vercel project ls

Using the vercel project ls command to list projects in the current scope.

Subcommands that take a project argument (shown as [name], [project], or <name>) accept the project name (the name shown in the dashboard and vercel project ls) or its ID, for example my-app or prj_abc123. When the argument is optional and you omit it, the linked project is used.

Aliases: ls.

Show all projects in the selected scope. This is the default subcommand, so vercel project and vercel project ls behave the same way.

terminal
vercel project list [options]
OptionDescription
-N, --nextShow the next page of results. Pass the timestamp (ms since the UNIX epoch) cursor.
--formatOutput format. Supports json.
--update-requiredFilter to projects affected by an upcoming Node.js runtime deprecation.
-f, --filterFilter projects by name (substring match).
terminal
# Paginate results
vercel project ls --next 1584722256178
 
# Projects affected by an upcoming Node.js deprecation, as JSON
vercel project ls --update-required --format=json
 
# Substring filter
vercel project ls --filter my-app

Create a new project. The name argument is required; vercel project add with no name (or with more than one positional) prints a usage error and exits.

terminal
vercel project add <name>

Wrap names that contain spaces in quotes:

terminal
vercel project add "My Project"

Show details for a project by name. Defaults to the linked project.

terminal
vercel project inspect [name]
terminal
# Inspect the linked project
vercel project inspect
 
# Inspect a project by name
vercel project inspect my-project

Aliases: set.

Update the framework preset and build settings for a project. Only the settings you pass are changed; omitted settings remain unchanged. Defaults to the linked project. At least one setting option is required.

terminal
vercel project update [name] [options]
OptionDescription
--framework <SLUG>Set the framework preset by slug (for example nextjs). Use other to clear the preset.
--build-command <COMMAND>Set the build command.
--dev-command <COMMAND>Set the development command.
--install-command <COMMAND>Set the install command.
--output-directory <DIR>Set the output directory.
--auto-detect <SETTING>Reset a setting to automatic detection: build-command, dev-command, install-command, or output-directory. Repeat the flag or pass a comma-separated list. Can't be combined with the explicit flag for the same setting.
--sandbox-region <REGION>Set the default region for sandboxes created in the project. Use "" to clear.
--sandbox-failover-regions <REGIONS>Set the ordered, comma-separated failover regions for sandboxes created in the project. Must not include the main region. Use "" to clear. Available on Pro and Enterprise plans, excluding Pro trials.
--formatOutput format. Supports json.
terminal
vercel project update --framework nextjs
 
vercel project update my-project --framework vite
 
vercel project update my-project --build-command "pnpm build" --output-directory dist
 
vercel project update my-project --auto-detect build-command --auto-detect output-directory
 
vercel project update my-project --sandbox-region sfo1 --sandbox-failover-regions cle1,iad1
 
vercel project update my-project --framework other --format json

Rename an existing project.

terminal
vercel project rename <name> <new-name>
terminal
vercel project rename my-project my-renamed-project

Aliases: rm.

Remove a project.

terminal
vercel project rm <name>

List, add, or remove deployment checks for a project.

terminal
vercel project checks [name]
vercel project checks add [name] [options]
vercel project checks remove <id> [name]
terminal
# List checks for the linked project
vercel project checks
 
# Checks that block production alias assignment
vercel project checks --blocks deployment-alias
 
# Add a check from a JSON file
vercel project checks add my-app --file ./check.json
 
# Add a check with flags (requires integration/webhook setup in the body via --file or --source)
vercel project checks add --check-name "CI" --requires deployment-url --blocks deployment-alias
 
# Remove a check by ID
vercel project checks remove chk_abc123 my-app

Show or toggle deployment protection settings for a project. Pass enable or disable as the action; omit both to show current settings.

terminal
vercel project protection [action] [name] [options]
OptionDescription
--ssoApply the action to SSO protection.
--passwordApply the action to password protection. Requires an eligible plan.
--customer-support-code-visibilityApply the action to customer support code visibility protection.
--skewApply the action to skew protection.
--skew-max-age <SECONDS>When enabling --skew, set the max age in seconds. Defaults to 2592000 (30 days).
--protection-bypassApply the action to automation protection bypass secrets.
--protection-bypass-secret <SECRET>Optional bypass secret value. Required when disabling bypass.
--git-fork-protectionApply the action to Git fork protection.
--formatOutput format. Supports json.
terminal
# Show protection settings for the linked project
vercel project protection
 
# Named project as JSON
vercel project protection my-app --format json
 
# Toggle individual protections
vercel project protection enable my-app --password
vercel project protection disable my-app --password
vercel project protection enable my-app --customer-support-code-visibility
vercel project protection enable my-app --skew
vercel project protection enable my-app --skew --skew-max-age 604800
vercel project protection enable my-app --sso
vercel project protection enable my-app --git-fork-protection
 
# Bypass secret
vercel project protection enable my-app --protection-bypass
vercel project protection disable my-app --protection-bypass --protection-bypass-secret <secret>

Aliases: member.

List, add, or remove project members for a project.

terminal
vercel project members [project] [options]
vercel project members add <project> <member> --role <role>
vercel project members remove <project> <member>

For add and remove, both arguments are required and <member> can be an email address, username, or user ID. rm is an alias for remove. Adding a member requires a Pro or Enterprise team, and the member must already be a confirmed member of the team. Invite them first with vercel teams invite if needed. The available project roles also depend on the member's team role: Contributors can hold any project role, Developers can only be added as ADMIN, Security members as ADMIN or PROJECT_DEVELOPER, and team Members and Owners already have access to every project.

Both add and remove ask for confirmation and have no flag to skip it, so run them in an interactive terminal.

OptionDescription
--searchFilter project members by name, username, or email (list only).
--limitLimit number of project members returned (1-100) (list only).
--roleRequired for add. Project role to grant: ADMIN, PROJECT_DEVELOPER, PROJECT_VIEWER, or PROJECT_GUEST.
--formatOutput format. Supports json.
terminal
# List members for the linked project
vercel project members
 
# List members for a named project as JSON
vercel project members my-project --format json
 
# Add a member to a project by email
vercel project members add my-project user@example.com --role PROJECT_VIEWER
 
# Add a member by username (the role is case-insensitive)
vercel project members add my-project octocat --role admin
 
# Remove a member from a project
vercel project members remove my-project user@example.com
 
# Remove a member using the rm alias
vercel project members rm my-project octocat

Aliases: accessgroups.

List access groups for a project. Here [name] is the project (name or ID), not an access group; omit it to use the linked project.

terminal
vercel project access-groups [name] [options]
OptionDescription
--searchSearch access groups by name.
--limitLimit number of access groups returned (1-100).
-N, --nextShow the next page of results. Pass the timestamp (ms since the UNIX epoch) cursor.
--formatOutput format. Supports json.
terminal
# List access groups for the linked project
vercel project access-groups
 
# List access groups for a named project as JSON
vercel project access-groups my-project --format json

Aliases: summary.

Show member counts by team role for project access. Requires the access groups entitlement.

terminal
vercel project access-summary [name] [options]
OptionDescription
--formatOutput format. Supports json.
terminal
# Summary for the linked project
vercel project access-summary
 
# Summary for a named project as JSON
vercel project access-summary my-app --format json

Enable or disable Web Analytics for a project. The action can be enable or disable. When omitted, the command enables Web Analytics. When name is omitted, the command uses the linked project.

terminal
vercel project web-analytics [action] [name] [options]

Both enable and disable ask for confirmation and have no flag to skip it, so run the command in an interactive terminal. On Hobby, Web Analytics is free within the documented limits. On Pro and Enterprise, enabling incurs charges. The --format json option only changes the output format and the confirmation will come first.

OptionDescription
--formatOutput format. Supports json.
terminal
# Enable for the linked project
vercel project web-analytics
 
# Enable for a named project
vercel project web-analytics enable my-project
 
# Disable for a named project
vercel project web-analytics disable my-project
 
# Disable and print the result as JSON
vercel project web-analytics disable my-project --format json

Enable or disable Speed Insights for a project. The action can be enable or disable. When omitted, the command enables Speed Insights. When name is omitted, the command uses the linked project.

terminal
vercel project speed-insights [action] [name] [options]

Both enable and disable ask for confirmation and have no flag to skip it, so run the command in an interactive terminal. On Hobby, Speed Insights is only available for one project. On Pro and Enterprise, enabling incurs charges. The --format json option only changes the output format and the confirmation will come first.

OptionDescription
--formatOutput format. Supports json.
terminal
# Enable for the linked project
vercel project speed-insights
 
# Enable for a named project
vercel project speed-insights enable my-project
 
# Disable for a named project
vercel project speed-insights disable my-project
 
# Disable and print the result as JSON
vercel project speed-insights disable my-project --format json

Enable or disable Observability Plus for a project. The action argument is required and must be enable or disable. When name is omitted, the command uses the linked project.

terminal
vercel project observability <action> [name] [options]

Enabling Observability Plus incurs charges on your account and requires a Pro or Enterprise team. Both enable and disable ask for confirmation and have no flag to skip it, so run the command in an interactive terminal.

OptionDescription
--formatOutput format. Supports json.
terminal
# Enable for the linked project (prompts for confirmation)
vercel project observability enable
 
# Disable for a named project
vercel project observability disable my-project
 
# Disable and print the result as JSON
vercel project observability disable my-project --format json

Pause production traffic for a project. While paused, the production deployment stops serving traffic and visitors see an error page. Defaults to the linked project.

Because pausing takes production offline, the command always asks you to type the project name to confirm. There is no flag to skip the confirmation, so run the command in an interactive terminal.

terminal
vercel project pause [project] [options]
OptionDescription
--formatOutput format. Supports json.
terminal
# Pause the linked project
vercel project pause
 
# Pause a project by name
vercel project pause my-project
 
# Pause a project and print the result as JSON
vercel project pause my-project --format json

Aliases: unpause.

Resume production traffic for a paused project. Defaults to the linked project. The command asks for confirmation before restoring traffic, so run it in an interactive terminal.

terminal
vercel project resume [project] [options]
OptionDescription
--formatOutput format. Supports json.
terminal
# Resume the linked project
vercel project resume
 
# Resume a project by name
vercel project resume my-project
 
# Resume a project and print the result as JSON
vercel project resume my-project --format json

Get a development OIDC token for a project. Useful when you need a project-scoped token from a script or CI environment without going through the dashboard.

terminal
vercel project token [name] [options]
OptionDescription
-y, --yesSkip the confirmation prompt.
--formatOutput format. Supports json.
terminal
# Token for the linked project
vercel project token
 
# Token for a named project
vercel project token my-project
 
# Token as JSON
vercel project token my-project --format=json

The following global options can be passed when using the vercel project command:

For more information on global options and their usage, refer to the options section.

Last updated July 7, 2026

Was this helpful?

supported.