vercel oauth-apps
The vercel oauth-apps command registers Vercel Apps (OAuth) and manages team installations. Use it to register a new OAuth client, review pending installation requests for your team, install a Vercel App with the right permissions, and uninstall apps you no longer need.
These subcommands act on team-scoped resources. Make sure your current scope
is the correct team before running mutations, or pass --scope <team>.
vercel oauth-apps [subcommand]Using the vercel oauth-apps command to manage Vercel Apps (OAuth) and team
installations.
Lists pending Vercel App installation requests for the current team.
vercel oauth-apps list-requests
vercel oauth-apps list-requests --format json--format json for scripting.| Option | Type | Description |
|---|---|---|
-F, --format <FORMAT> | String | Output format (json) |
Registers a new Vercel App for the current team. The response includes a clientId you'll need when calling install.
vercel oauth-apps register --name "My App" --slug my-app --redirect-uri https://app.example.com/oauth/callbackRegister a new Vercel App with a display name, slug, and one or more allowed redirect URIs.
| Option | Type | Description |
|---|---|---|
--name <NAME> | String | Display name of the app (required) |
--slug <SLUG> | String | URL-safe unique identifier (required) |
--redirect-uri <URL> | String[] | Allowed OAuth redirect URI (repeatable) |
--description <TEXT> | String | Optional description shown to users |
-F, --format <FORMAT> | String | Output format (json, includes clientId) |
Installs a Vercel App to the current team using the app's OAuth client ID. Grants the listed permissions and optionally restricts the install to a subset of projects.
vercel oauth-apps install --client-id cl_abc --permission read:project --permission read:deploymentInstall an app with explicit permission scopes.
| Option | Type | Description |
|---|---|---|
--client-id <ID> | String | OAuth client ID of the Vercel App (required) |
--permission <SCOPE> | String[] | Permission scope to grant (required, repeatable). Pass at least one; example: --permission read:project |
--projects <IDS> | String | Comma-separated project IDs, or * for all projects (optional) |
-F, --format <FORMAT> | String | Output format (json) |
Dismisses a pending app installation request by its client ID.
vercel oauth-apps dismiss cl_abc123 --yesDecline a pending installation request. Use --yes to skip the confirmation
prompt.
| Argument | Required | Description |
|---|---|---|
appId | Yes | Client ID of the app whose installation request you want to dismiss |
| Option | Type | Description |
|---|---|---|
-F, --format <FORMAT> | String | Output format (json) |
-y, --yes | Boolean | Skip the confirmation prompt |
Uninstalls a Vercel App from the current team by its installation ID.
vercel oauth-apps remove inst_abc123 --yes| Argument | Required | Description |
|---|---|---|
installationId | Yes | ID of the installation to remove |
| Option | Type | Description |
|---|---|---|
-F, --format <FORMAT> | String | Output format (json) |
-y, --yes | Boolean | Skip the confirmation prompt |
vercel oauth-apps register --name "My App" --slug my-app --redirect-uri https://app.example.com/oauth/callback --format json
vercel oauth-apps install --client-id cl_xyz --permission read:project --projects prj_a,prj_bCapture the clientId from the register response, then install the app with
scoped permissions and a project allowlist.
vercel oauth-apps list-requests
vercel oauth-apps dismiss cl_abc123 --yesvercel oauth-apps remove inst_abc123 --yesThe following global options can be passed when using the vercel oauth-apps command:
--cwd--debug--global-config--help--local-config--no-color--non-interactive--scope--team--token--version
For more information on global options and their usage, refer to the options section.
Was this helpful?