---
schema_version: 1
route: /t/stripe-cli.md
tool: "stripe-cli"
---

# sincecutoff.com /t/stripe-cli — Stripe CLI

- name: Stripe CLI
- kind: cli
- children: none
- homepage: <https://github.com/stripe/stripe-cli>

Changes to the tools coding agents drive, since a model's training cutoff, each linked to its first-party source. Check installed versions and limitations before acting; a cutoff date does not establish what a model knows.
Original editorial content: [Apache 2.0](https://sincecutoff.com/v1/data-license.txt), by [0xPatrick](https://0xpatrick.dev). Preserve applicable license and [NOTICE](https://sincecutoff.com/notice.txt) attribution when redistributing. Third-party source text and examples retain their own rights. [License scope and attribution](https://sincecutoff.com/v1/license.json).
To stay current, read the changes feed: [`/v1/changes.md?tool=stripe-cli`](https://sincecutoff.com/v1/changes.md?tool=stripe-cli) (or `.json`), adding `since=YYYY-MM-DD` for your training cutoff. Entries for registered children are included; the registry itself is `/v1/tools.json`. How to page and save your place: [llms.txt](https://sincecutoff.com/llms.txt).

### stripe sandboxes create, list, and delete management commands (2026-10-16)
- slug: stripe-sandboxes-create-list-and-delete-management-commands-8fec0ed90419
- score: 0.96

How to use it:

When managing Stripe sandboxes, use the active live account with `stripe sandboxes create`, `stripe sandboxes list`, and `stripe sandboxes delete`. Authorize a new sandbox with `stripe login` if prompted; confirm deletions with `--confirm` for non-interactive use.

Examples:

```
stripe sandboxes create "<sandbox_name>"
```

```
stripe sandboxes list
```

```
stripe sandboxes delete <account_id> --confirm
```

- why_it_matters: Manage Stripe sandboxes from the CLI using the active live account.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.54.0>, <https://github.com/stripe/stripe-cli/pull/2106>, <https://github.com/stripe/stripe-cli/blob/v1.54.0/pkg/cmd/sandbox.go>
- gotchas: "Version: v1.54.0"; "create [name]: Sandbox name; needed for non-interactive creation, otherwise an interactive run can prompt for it."; "--non-interactive: Print output without waiting for input; pair with a name to skip prompts."; "--create-blank: Create a blank sandbox instead of copying the active live account; requires `--country`."; "--country <code>: Two-letter country code for a blank sandbox; only valid with `--create-blank`."; "--email <address>: Email for anonymous claimable sandbox provisioning; mutually exclusive with `--from-git`."; "--from-git: Infer email and full name from git config for anonymous claimable sandbox provisioning; mutually exclusive with `--email`."; "--full-name <name>: Optional full name for anonymous sandbox provisioning; `--from-git` infers it from git config."; "list: Takes no arguments; output includes sandbox name, account ID, and access setting."; "delete <account_id> (required): Sandbox account ID from `stripe sandboxes list`; deletion is permanent."; "--confirm: Skip the deletion confirmation prompt; required for non-interactive deletion."; "Prerequisite: For managed creation and listing, log in and select an active live account. Listing requires an active live account."; "Prerequisite: Deletion requires an active live account that can manage the sandbox; use an account ID shown by `stripe sandboxes list`."; "Prerequisite: The source documents `stripe sandbox` as an alias for `stripe sandboxes`."; "Commands use the active live account and its OAuth-authorized sandboxes."; "Authorization is guided after creation."; "Destructive operations and legacy Test mode are guarded."; "`stripe sandbox` remains a compatibility alias."

### stripe-cli API request commands accept custom request headers (2026-09-29)
- slug: stripe-cli-api-request-commands-accept-custom-request-headers-b428516ab4c3
- score: 0.97

How to use it:

When an API request needs custom headers, pass one or more `-H` or `--request-header` options to the Stripe CLI request command. The v1.52.1 release note says the CLI validates and applies them, and includes them in dry-run and verbose output.

- why_it_matters: Add a custom header when making an API request with stripe-cli.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.52.1>, <https://github.com/stripe/stripe-cli/pull/2082>, <https://github.com/stripe/stripe-cli/blob/v1.52.1/pkg/requests/base.go>
- gotchas: "Version: v1.52.1"; "-H / --request-header: Repeatable custom request header option for API request commands; exact value format and command syntax not found in the official v1.52.1 docs inspected."

### stripe listen unifies event selection and forwarding flags (2026-09-17)
- slug: stripe-listen-unifies-event-selection-and-forwarding-flags-61a03959219d
- score: 0.97

How to use it:

When forwarding Stripe webhook events locally, select event types with `--events` or all snapshot/thin events with `--all-snapshot` or `--all-thin`, then set a destination with `--forward-to` or `--forward-connect-to`. Use `--events-from` to choose account sources; a single endpoint cannot receive both snapshot and thin payload styles.

Examples:

```
stripe listen --events <snapshot-event>,<thin-event> --forward-to localhost:3000/events
```

```
stripe listen --all-snapshot --forward-to localhost:3000/events
```

```
stripe listen --all-thin --events-from @accounts --forward-to localhost:3000/events
```

- why_it_matters: Forward snapshot and thin events to a local endpoint with `stripe listen`.
- before: Previously, thin event selection and forwarding used the parallel flags `--thin-events`, `--forward-thin-to`, and `--forward-thin-connect-to`.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.51.0>, <https://github.com/stripe/stripe-cli/pull/2006>, <https://github.com/stripe/stripe-cli/blob/v1.51.0/pkg/cmd/listen.go>
- gotchas: "Version: v1.51.0"; "--events <event>[,<event>...]: Comma-separated snapshot event names and/or thin event names (thin names such as `v1.billing.meter.no_meter_found`). Select this or an all-events flag when forwarding."; "--all-snapshot: Subscribe to all snapshot events. Mutually exclusive with `--all-thin` and with selected events of the other payload style; one endpoint cannot receive both styles."; "--all-thin: Subscribe to all thin events. Mutually exclusive with `--all-snapshot` and with selected events of the other payload style; one endpoint cannot receive both styles."; "--forward-to <url>: URL to forward events to; required in practice to forward to a local endpoint."; "--forward-connect-to <url>: URL for Connect events; defaults to `--forward-to`. Cannot be used with `--events-from @self`."; "--events-from <value>: Account source: `@self` (your account only), `@accounts` (connected accounts only), or `all` (default). With `@accounts`, different values for `--forward-to` and `--forward-connect-to` are ambiguous."; "--events '*': Unsupported because the wildcard is ambiguous with thin events. Use `--all-snapshot` or `--all-thin`."; "--thin-events: Deprecated; use `--events` for selected snapshot/thin types or `--all-thin` for all thin events. Hidden from help."; "--forward-thin-to: Deprecated; use `--forward-to` with selected thin events or `--all-thin`. Snapshot and thin events cannot share one destination. Hidden from help."; "--forward-thin-connect-to: Deprecated; use `--events-from @accounts` with thin event selection and `--forward-to <url>`. Hidden from help."; "Prerequisite: Forwarding requires an explicit event subscription: use `--events`, `--all-snapshot`, or `--all-thin`."; "Deprecated thin-specific flags continue working with warnings and replacement guidance; they stay out of `--help`."; "The former thin-specific flags are planned to be rejected in a later release after documentation is updated."; "`--events '*'` became ambiguous once thin events existed."

### stripe switch supports concise invocation and JSON output (2026-09-17)
- slug: stripe-switch-supports-concise-invocation-and-json-output-cf4da649c2bf
- score: 0.95

How to use it:

When a script needs machine-readable output while switching to an authorized Stripe account, run `stripe switch <account_id> --format json`; add `--live` to select live mode.

Examples:

```
stripe switch <account_id> --format json
```

```
stripe switch <account_id> --live --format json
```

- why_it_matters: Switch Stripe CLI context in a script that consumes machine-readable output.
- before: Run `stripe switch context` to switch context; the source does not state whether JSON output was previously available.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.51.0>, <https://github.com/stripe/stripe-cli/pull/2008>, <https://github.com/stripe/stripe-cli/blob/v1.51.0/pkg/cmd/switch.go>
- gotchas: "Version: v1.51.0"; "account_id (required): Account to switch to; required with `--format json` because interactive selection is not scriptable."; "--format: Set to `json` for a stable JSON schema suitable for scripting."; "--live: Select live mode for the specified account."; "Prerequisite: The target account must be authorized."; "`stripe switch context` remains available but hidden."

### stripe plugin uninstall adds --all (2026-09-10)
- slug: stripe-plugin-uninstall-adds-all-cbe0053b32b6
- score: 0.93

How to use it:

When removing every installed Stripe CLI plugin, run `stripe plugin uninstall --all` while the Stripe CLI binary is available.

Examples:

```
stripe plugin uninstall --all
```

- why_it_matters: Remove all installed Stripe CLI plugins from a repository development environment.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.50.11>, <https://github.com/stripe/stripe-cli>
- gotchas: "Version: v1.50.11"; "--all (required): Uninstalls all plugins. Required for the task of removing every installed plugin."; "Prerequisite: The `stripe` binary must still be available when uninstalling plugins."

### stripe login adds OAuth contexts and context switching (2026-08-13)
- slug: stripe-login-adds-oauth-contexts-and-context-switching-6848c8622377
- score: 0.90

How to use it:

When you need to authorize Stripe CLI access or change the active account context, use `stripe login` and select a context with `stripe switch context`. Use `stripe login list` to view authorized contexts or `stripe reauth` to authorize additional accounts or sandboxes.

Examples:

```
stripe login
```

```
stripe switch context [<account_id>] [--live]
```

```
stripe login list
stripe reauth
```

- why_it_matters: Authorize Stripe CLI contexts and select the account, sandbox, or test or live mode for resource and development commands.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.45.3>, <https://github.com/stripe/stripe-cli/pull/1880>, <https://raw.githubusercontent.com/stripe/stripe-cli/v1.45.3/pkg/cmd/login.go>, <https://raw.githubusercontent.com/stripe/stripe-cli/v1.45.3/pkg/cmd/switch.go>, <https://raw.githubusercontent.com/stripe/stripe-cli/v1.45.3/pkg/cmd/reauth.go>
- gotchas: "Version: v1.45.3"; "Availability: OAuth flow requires a flag on the server to be enabled."; "account_id: Authorized account ID to switch to. Without it, the CLI displays an interactive list of authorized accounts and modes."; "--live: Select livemode for the given account; otherwise a direct account switch defaults to test mode."; "Prerequisite: `stripe reauth` requires an existing OAuth session; run `stripe login` to authenticate first."; "Prerequisite: Browser-based login opens the Stripe Dashboard for approval; `stripe reauth` opens the Dashboard for renewed consent."; "`stripe logout` revokes the OAuth access token and clears credentials locally."

### stripe-cli plugin commands add --runtime-version (2026-08-10)
- slug: stripe-cli-plugin-commands-add-runtime-version-7edc44f60bf1
- score: 0.94

How to use it:

When a Stripe CLI plugin command needs a runtime version, pass `--runtime-version <version>` to that plugin command. The v1.45.2 release adds this flag to plugin commands.

- why_it_matters: When invoking plugin commands that need a runtime version, specify the runtime version explicitly.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.45.2>
- gotchas: "Version: v1.45.2"; "--runtime-version <version> (required): The release note identifies this flag for plugin commands, but the official documentation found does not specify the value format or command-specific syntax."

### stripe-cli docs preferences list, set, unset, and apply to fetched pages (2026-07-29)
- slug: stripe-cli-docs-preferences-list-set-unset-and-apply-to-fetched-pages-305672e9e5ec
- score: 0.94

How to use it:

When you need Stripe documentation tailored to a preference, inspect the available values, set or unset a preference, then fetch the page with `stripe docs`. Stored preferences are added as query parameters unless already present in the page URL.

Examples:

```
stripe docs prefs list
```

```
stripe docs prefs set <id> <value>
```

```
stripe docs <path> --no-pager --non-interactive
```

- why_it_matters: Inspect or fetch Stripe documentation with selected documentation preferences while working on code that uses Stripe APIs.
- before: Preferences could be stored in the CLI config but did not affect fetched page content; pages were fetched without them.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.44.1>, <https://github.com/stripe/stripe-cli/pull/1807>, <https://github.com/stripe/stripe-cli/pull/1811>, <https://github.com/stripe/stripe-cli/pull/1829>, <https://github.com/stripe/stripe-cli/blob/v1.44.1/pkg/cmd/docs/prefs.go>, <https://github.com/stripe/stripe-cli/blob/v1.44.1/pkg/cmd/docs/root.go>, <https://docs.stripe.com/development/quickstart>
- gotchas: "Version: v1.44.1"; "<id> (required): Preference ID. `set` checks it against the available preferences; `unset` removes the stored value."; "<value> (required): Preference value. `set` checks it against the allowed values when the preference lists values."; "<path> (required): Documentation page path to read."; "--no-pager: Write output directly to stdout."; "--non-interactive: Write output directly without the interactive browser."; "Prerequisite: Install Stripe CLI; Stripe's quickstart documents installation options."; "Prerequisite: Preference values are fetched from docs.stripe.com when listing or setting; the set command validates the ID and value against that list."; "Prerequisite: Preferences are saved in the CLI config under the active profile."; "Preferences are stored in the CLI config file under the active profile and carry over between sessions."; "`set` validates the preference ID and value against the live list from docs.stripe.com."; "Preferences already present in the page URL are left untouched."

### stripe trigger accepts v1-prefixed event names (2026-07-29)
- slug: stripe-trigger-accepts-v1-prefixed-event-names-4e13287fd774
- score: 0.96

How to use it:

When testing code that handles Stripe events, run `stripe trigger` with a supported `v1.`-prefixed event name; it runs the corresponding fixture. The exact `v1.` aliases depend on the CLI version and available fixtures.

Examples:

```
stripe trigger v1.customer.updated
```

- why_it_matters: Trigger a Stripe event fixture by its `v1.`-prefixed event name when testing code that handles Stripe events.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.44.1>, <https://github.com/stripe/stripe-cli/pull/1797>, <https://github.com/stripe/stripe-cli/blob/v1.44.1/pkg/fixtures/triggers.go>, <https://github.com/stripe/stripe-cli/blob/v1.44.1/pkg/cmd/trigger.go>
- gotchas: "Version: v1.44.1"; "<event> (required): Event name to trigger; the v1.44.1 source shows `v1.customer.updated` as an alias for `customer.updated`."; "Prerequisite: Stripe CLI v1.44.1 or later containing this change; the trigger command resolves credentials from the CLI profile."; "107 events have working `v1.` aliases immediately."; "A further 90 events are allowlisted for forward compatibility; their aliases activate automatically once fixture files are added."; "Unsupported events such as `v1.fake.event` error as not supported."; "Docs conflict: Current Stripe CLI trigger documentation lists unprefixed events and does not document the v1. prefix; its supported-event list may reflect a newer interface/version."

### stripe reporting query-runs creates and retrieves ad hoc queries (2026-07-09)
- slug: stripe-reporting-query-runs-creates-and-retrieves-ad-hoc-queries-93f1e962926d
- score: 0.99

How to use it:

When running an ad hoc SQL query against Stripe data, create a query run with exactly one SQL source, then retrieve its ID to check status and access the result download URL.

Examples:

```
stripe reporting query-runs create --sql "<SQL>"
```

```
stripe reporting query-runs create --sql-file <path> [--compress-file] [--dry-run] [--live]
```

```
stripe reporting query-runs retrieve <id> [--live]
```

- why_it_matters: Run and inspect an ad hoc SQL query against Stripe data from the CLI.
- before: The CLI could retrieve Sigma scheduled queries through the older `/v1/sigma` endpoint, but could not start new or ad hoc queries.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.43.7>, <https://github.com/stripe/stripe-cli/pull/1737>, <https://github.com/stripe/stripe-cli/blob/v1.43.7/pkg/cmd/reporting.go>
- gotchas: "Version: v1.43.7"; "Availability: The API is in public preview."; "--sql (required): SQL query text; required unless --sql-file is set. Mutually exclusive with --sql-file."; "--sql-file <path> (required): Read SQL from a file; use `-` to read stdin. Required unless --sql is set; mutually exclusive with --sql."; "--compress-file: Compress the result file; sets `result_options.compress_file` to true."; "--dry-run: Preview the request without sending it."; "--live: Make a live request; default is test mode."; "<id> (required): ID of the query run to retrieve."; "result_options.compress_file: Boolean set to true by `--compress-file`; the source documents no alternative sub-keys or allowed values."; "Prerequisite: A Stripe API key must be available through the selected CLI profile; the command reads the profile's test or live API key."; "Prerequisite: The endpoint is a preview API; the CLI marks both commands as preview commands and sets the preview Stripe-Version header automatically."; "The request builder sets `Stripe-Version: 2026-06-24.preview` and JSON content-type automatically."; "Retrieve polls query status (`running` → `succeeded`/`failed`) and fetches the result download URL."

### Stripe CLI docs browsing subcommand (2026-07-01)
- slug: stripe-cli-docs-browsing-subcommand-0d9ca1a995a4
- score: 0.92

How to use it:

When implementing or debugging Stripe repository code, use the CLI to find the relevant Stripe docs page or search by keyword, then read the result. The docs reference lists `stripe docs` and its `api` and `search` subcommands.

Examples:

```
stripe docs <docs-path>
```

```
stripe docs search "<keyword or phrase>"
```

```
stripe docs api <resource|event>
```

- why_it_matters: Find Stripe documentation relevant to implementing or debugging repository code from the CLI.
- before: Before this release, the `docs` subcommand had not yet been added.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.43.3>, <https://docs.stripe.com/cli>
- gotchas: "Version: v1.43.3"; "<path> (required): Path of a docs.stripe.com page, such as `/payments` or `/api/customers`."; "<query> (required): Keyword or phrase to search on docs.stripe.com."; "<method|resource|event> (required): API lookup identifier: a resource name, HTTP method and path, or event type."; "--no-pager: Write output to stdout instead of opening an interactive pager."; "--non-interactive: Write output to stdout without the interactive browser."; "Prerequisite: Install the Stripe CLI to use the `stripe` command."

### stripe-cli trigger fixtures add test clock and topup events (2026-04-15)
- slug: stripe-cli-trigger-fixtures-add-test-clock-and-topup-events-f79090727247
- score: 0.95

How to use it:

When developing or testing handlers for these events, run `stripe trigger <event>` with one of the six newly supported event names. This triggers a test webhook event using the Stripe CLI.

Examples:

```
stripe trigger test_helpers.test_clock.created
```

```
stripe trigger test_helpers.test_clock.advancing
```

```
stripe trigger test_helpers.test_clock.ready, stripe trigger test_helpers.test_clock.deleted, stripe trigger topup.created, or stripe trigger topup.succeeded
```

- why_it_matters: Trigger test clock or topup events while developing or testing code that handles them.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.40.6>, <https://github.com/stripe/stripe-cli/pull/1461>, <https://github.com/stripe/stripe-cli/wiki/trigger-command>
- gotchas: "Version: v1.40.6"; "<event> (required): Event name to trigger; use one of `test_helpers.test_clock.created`, `test_helpers.test_clock.advancing`, `test_helpers.test_clock.ready`, `test_helpers.test_clock.deleted`, `topup.created`, or `topup.succeeded`."

### stripe completion adds fish shell support (2026-04-15)
- slug: stripe-completion-adds-fish-shell-support-602aceae12b2
- score: 0.94

How to use it:

When using fish, run `stripe completion --shell fish` to generate `stripe.fish`; move it to `~/.config/fish/completions/stripe.fish` for fish to load it. Homebrew installs the generated completion file automatically.

Examples:

```
stripe completion --shell fish
```

```
mkdir -p ~/.config/fish/completions && mv stripe.fish ~/.config/fish/completions/stripe.fish
```

- why_it_matters: Generate shell completion for a fish development environment.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.40.6>, <https://github.com/stripe/stripe-cli/pull/1484>, <https://github.com/stripe/stripe-cli/blob/v1.40.6/pkg/cmd/completion.go>, <https://github.com/stripe/stripe-cli/blob/v1.40.6/.goreleaser/mac.yml>
- gotchas: "Version: v1.40.6"; "--shell <shell>: Select the shell; accepted values are `bash`, `zsh`, or `fish`. Omit for shell auto-detection."; "--write-to-stdout: Print the completion script to stdout instead of creating a file."; "Prerequisite: For automatic completion loading, place `stripe.fish` in `~/.config/fish/completions`; fish loads completions from that directory."; "Prerequisite: Homebrew’s macOS formula generates bash, zsh, and fish completions, then installs `stripe.fish` to fish completions."

### stripe-cli adds `stripe whoami` (2026-03-30)
- slug: stripe-cli-adds-stripe-whoami-7062dcde5b67
- score: 0.90

How to use it:

To check the Stripe account or identity used by the CLI while working in a repository, run `stripe whoami`.

Examples:

```
stripe whoami
```

- why_it_matters: Check which Stripe account or identity the CLI is using while working in a repository.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.40.0>
- gotchas: "Version: v1.40.0"

### stripe-cli dry-run flag for resource and raw HTTP commands (2026-03-30)
- slug: stripe-cli-dry-run-flag-for-resource-and-raw-http-commands-ab081a7fb20e
- score: 0.97

How to use it:

When using a Stripe resource or raw HTTP command, add `--dry-run` to preview its effects without committing changes, as stated in the v1.40.0 release note.

- why_it_matters: Preview a resource or raw HTTP command's effects without committing its changes.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.40.0>
- gotchas: "Version: v1.40.0"; "The flag applies to resource and raw HTTP commands."

### stripe login adds --non-interactive and --complete flags (2026-03-26)
- slug: stripe-login-adds-non-interactive-and-complete-flags-35ef1c0cdf76
- score: 0.90

How to use it:

When logging in from an unattended coding workflow, run `stripe login --non-interactive` to start the flow, then `stripe login --complete <url>` to complete it. The v1.39.0 release note confirms these flags were added; their detailed behavior is not documented on the official pages found.

- why_it_matters: Log in to Stripe from a coding workflow using the new non-interactive or completion options.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.39.0>
- gotchas: "Version: v1.39.0"

### stripe trigger adds Issuing transaction events (2026-03-26)
- slug: stripe-trigger-adds-issuing-transaction-events-fc740fc4ecaa
- score: 0.95

How to use it:

When testing Issuing transaction handlers, run `stripe trigger` with one of the three documented event names. The CLI trigger reference gives the event argument form; the v1.39.0 release note identifies the three added events and their effects.

Examples:

```
stripe trigger issuing_transaction.created
```

```
stripe trigger issuing_transaction.updated
```

```
stripe trigger issuing_transaction.purchase_details_receipt_updated
```

- why_it_matters: Trigger an Issuing transaction event while testing code that handles those events.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.39.0>, <https://github.com/stripe/stripe-cli/pull/1465>, <https://github.com/stripe/stripe-cli/wiki/trigger-command>, <https://github.com/stripe/stripe-cli>
- gotchas: "Version: v1.39.0"; "<event> (required): Event name to trigger; the release adds `issuing_transaction.created`, `issuing_transaction.updated`, and `issuing_transaction.purchase_details_receipt_updated`."; "Prerequisite: Stripe CLI installed; the `stripe` command is available after installation."; "Prerequisite: No additional authentication prerequisite for these trigger events was found in the official pages read."; "The regular update endpoint only accepts `metadata`; `purchase_details` is included in the `create_force_capture` call at creation time."

### stripe login list and login switch manage multiple profiles (2026-03-21)
- slug: stripe-login-list-and-login-switch-manage-multiple-profiles-b86dc19f852e
- score: 0.98

How to use it:

When testing against multiple logged-in Stripe accounts, run `stripe login list` to list saved accounts and identify the active one, then switch with `stripe login switch <account_name>`. The `[default]` profile remains active; switching backs it up under its display name, copies the target into `[default]`, and removes the target key.

Examples:

```
stripe login list
```

```
stripe login switch <account_name>
```

- why_it_matters: When maintaining or testing code against multiple logged-in Stripe accounts, inspect the saved profiles and switch the active account.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.38.0>, <https://github.com/stripe/stripe-cli/pull/1433>, <https://github.com/stripe/stripe-cli/blob/v1.38.0/pkg/cmd/login.go>
- gotchas: "Version: v1.38.0"; "account_name (required): The account to switch to; exactly one positional argument is required."; "The `[default]` profile is always active."; "When switching, the current `[default]` profile is backed up using its display name as the key, the target profile is copied to `[default]`, and the old target key is removed."

### stripe-cli plugin install supports an unauthenticated path (2026-03-12)
- slug: stripe-cli-plugin-install-supports-an-unauthenticated-path-53fabf4e1e7b
- score: 0.95

How to use it:

When the plugin is eligible for unauthenticated installation and you are logged out, run `stripe plugin install <plugin>`; logged-in installs use the authenticated path. Plugins subject to incremental rollout still require authentication.

Examples:

```
stripe plugin install <plugin>
```

- why_it_matters: When not logged in, install a plugin that is eligible for the unauthenticated path.
- before: Log in before installing a plugin.
- sources: <https://github.com/stripe/stripe-cli/releases/tag/v1.37.3>, <https://github.com/stripe/stripe-cli/pull/1458>
- gotchas: "Version: v1.37.3"; "<plugin> (required): Plugin name to install."; "Prerequisite: Use a Stripe CLI version that includes this change (v1.37.3 or later)."; "Prerequisite: Be logged out for the unauthenticated path; incrementally rolled out plugins still require login."; "Plugins subject to incremental rollout continue to require the authenticated path."
