[CLI] Add connex list command#16018
Conversation
Adds `vercel connex list` to list Connex clients for the current team. - Table columns: UID | ID | Name | Type | Created (UID first since it works as a first-class alias for the `scl_` id on most endpoints) - `--limit` and `--next <cursor>` for cursor-based pagination (prints a next-page hint when the API returns a cursor) - `--format=json` for scripting - Empty state suggests `vercel connex create <type>` - 404 surfaces as "Connex is not enabled for this team", matching the `create` subcommand behavior - Gated behind `FF_CONNEX_ENABLED` alongside the rest of `connex` - 6 unit tests: table, empty, 404, JSON, pagination hint, query params Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 831a3ee The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
📦 CLI Tarball ReadyThe Vercel CLI tarball for this PR is now available! Quick TestYou can test this PR's CLI directly by running: npx https://vercel-81ctxce07.vercel.sh/tarballs/vercel.tgz --helpUse in vercel.jsonTo use this CLI version in your project builds, add to your {
"build": {
"env": {
"VERCEL_CLI_VERSION": "vercel@https://vercel-81ctxce07.vercel.sh/tarballs/vercel.tgz"
}
}
}Python Runtime WheelA Python Workers WheelA |
|
Low Risk — New CLI subcommand with tests — feature-flagged, read-only list operation.
Assessed at 831a3ee. |
🧪 Unit Test StrategyComparing: Strategy: Code changed outside of a package - running all unit tests Affected packages - 15 (38%)
Unaffected packages - 25 (63%)
Results
This comment is automatically generated based on the affected testing strategy |
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a new snapshot test for the `list` subcommand help output and updates the parent `connex` snapshot to include the new example. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## vercel@51.6.0 ### Minor Changes - Add `vercel connex list` command ([#16018](#16018)) ### Patch Changes - Add OpenAPI-driven subcommand fallback behind `VERCEL_AUTO_API=1`. ([#15989](#15989)) When the env var is set, unrecognized CLI tokens are matched against OpenAPI tags and operation IDs from `openapi.vercel.sh`. This enables `vercel <tag> <operationId>` (e.g. `vercel user getAuthUser`) at the top level, and per-command fallthrough (e.g. `vercel projects getProject`) when a token doesn't match a native subcommand. When `x-vercel-cli.displayColumns` is present in the OpenAPI response schema, results render as a card (single object) or table (array) instead of raw JSON. - [experimental-services] add new job service type support ([#15944](#15944)) - Add naming and formatting utilities for OpenAPI CLI integration. ([#16010](#16010)) Introduces `foldNamingStyle` for case-insensitive matching across camelCase/kebab-case/snake_case, `humanReadableColumnLabel` for converting schema property paths to readable headers, and `inferCliSubcommandAliases` for auto-generating CLI aliases from HTTP methods. - Updated dependencies \[[`44d519b8660185754d8280517adbe0ab7268f540`](44d519b), [`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]: - @vercel/detect-agent@1.2.3 - @vercel/build-utils@13.17.2 - @vercel/python@6.33.3 - @vercel/backends@0.0.64 - @vercel/elysia@0.1.67 - @vercel/express@0.1.77 - @vercel/fastify@0.1.70 - @vercel/go@3.5.0 - @vercel/h3@0.1.76 - @vercel/hono@0.2.70 - @vercel/hydrogen@1.3.6 - @vercel/koa@0.1.50 - @vercel/nestjs@0.2.71 - @vercel/next@4.16.8 - @vercel/node@5.7.9 - @vercel/redwood@2.4.12 - @vercel/remix-builder@5.7.2 - @vercel/ruby@2.3.2 - @vercel/rust@1.1.1 - @vercel/static-build@2.9.17 ## @vercel/backends@0.0.64 ### Patch Changes - Updated dependencies \[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]: - @vercel/build-utils@13.17.2 ## @vercel/build-utils@13.17.2 ### Patch Changes - [experimental-services] add new job service type support ([#15944](#15944)) ## @vercel/cervel@0.0.51 ### Patch Changes - Updated dependencies \[]: - @vercel/backends@0.0.64 ## @vercel/client@17.3.6 ### Patch Changes - Updated dependencies \[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]: - @vercel/build-utils@13.17.2 ## @vercel/config@0.2.1 ### Patch Changes - [experimental-services] add new job service type support ([#15944](#15944)) ## @vercel/detect-agent@1.2.3 ### Patch Changes - Add v0 to detect-agent supported agents ([#16016](#16016)) ## @vercel/elysia@0.1.67 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 ## @vercel/express@0.1.77 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 - @vercel/cervel@0.0.51 ## @vercel/fastify@0.1.70 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 ## @vercel/fs-detectors@5.18.2 ### Patch Changes - [experimental-services] add new job service type support ([#15944](#15944)) - Updated dependencies \[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]: - @vercel/build-utils@13.17.2 ## @vercel/gatsby-plugin-vercel-builder@2.1.17 ### Patch Changes - Updated dependencies \[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]: - @vercel/build-utils@13.17.2 ## @vercel/h3@0.1.76 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 ## @vercel/hono@0.2.70 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 ## @vercel/koa@0.1.50 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 ## @vercel/nestjs@0.2.71 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.9 ## @vercel/node@5.7.9 ### Patch Changes - Updated dependencies \[[`2a6344e205910dafc05cb74a80f98165d95322d7`](2a6344e)]: - @vercel/build-utils@13.17.2 ## @vercel/python@6.33.3 ### Patch Changes - [experimental-services] add new job service type support ([#15944](#15944)) ## @vercel/static-build@2.9.17 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.1.17 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary
Adds
vercel connex list— lists Connex clients for the current team. CLI buildout (gated behindFF_CONNEX_ENABLED).Design notes
--limitset client-side. API defaults to 50--include-projectsflag later once the API can enrich list responses with project links in a single batched call. For now, this is a flat team-wide list. MKT-3634--nextname follows Vercel CLI convention for "next page" flags (matchingvercel ls,vercel env ls, etc.), even though the value is a cursor rather than a timestamp.Test plan
npx vitest run packages/cli/test/unit/commands/connex/list.test.ts— 6 passing tests: success, empty, 404, JSON, pagination hint, query param forwardingtsc --noEmitcleanFF_CONNEX_ENABLED=1 vercel connex --helpshowslistunder Commandsvercel connex listwith several clients → table rendersvercel connex list --format=json→ valid JSON, UID firstvercel connex list --limit 2with >2 clients → next-page hint appearsvercel connex list --next <cursor>→ fetches the next page🤖 Generated with Claude Code