---
next_cursor: eyJzY29yZSI6MCwic2VxIjo1MDksInNpbmNlIjpudWxsLCJ0b29sIjoic2VudHJ5LWNsaSIsInYiOjF9
has_more: true
next: https://sincecutoff.com/v1/changes.md?tool=sentry-cli&score=0&cursor=eyJzY29yZSI6MCwic2VxIjo1MDksInNpbmNlIjpudWxsLCJ0b29sIjoic2VudHJ5LWNsaSIsInYiOjF9
items: 10
---
# sincecutoff.com changes: sentry-cli

## sentry-cli JavaScript API releases.newDeploy() supports multiple projects (sentry-cli, 2026-01-12)
Published 2026-10-13
- slug: sentry-cli-javascript-api-releases-newdeploy-supports-multiple-projects-09ac4cb8bbac
- score: 0.95

How to use it:

When creating a deployment release for multiple projects through the JavaScript API, pass `projects: [<project-slug>, ...]` in the options argument to `releases.newDeploy()`.

Examples:

```
await cli.releases.newDeploy('<release-version>', { projects: ['<project-slug-1>', '<project-slug-2>'], env: '<environment>' });
```

- why_it_matters: Create a deployment release for multiple Sentry projects through the JavaScript API.
- before: Before this change, `newDeploy()` did not support a `projects` option; the API change added project flag forwarding for deployments.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.1.0>, <https://github.com/getsentry/sentry-cli/pull/3001>
- gotchas: "Version: 3.1.0"; "projects: Array of project slugs to deploy the release to; if omitted, the deployment is created for all projects associated with the release."; "release (required): First argument to `newDeploy`; release version string."; "env: Deployment environment; passed as `--env`."

## sentry-cli preprod snapshots upload adds VCS parameters (sentry-cli, 2026-03-10)
Published 2026-10-13
- slug: sentry-cli-preprod-snapshots-upload-adds-vcs-parameters-53b3aa03b446
- score: 0.94

How to use it:

When uploading preprod snapshots, use `build snapshots upload` and provide VCS metadata with the documented flags; the command also supports automatic metadata collection in most CI environments.

Examples:

```
sentry-cli build snapshots upload --org <org> --project <project> <path> --app-id <app-id> --head-sha <head-sha> --base-sha <base-sha> --vcs-provider <provider> --head-repo-name <owner/repo> --base-repo-name <owner/repo> --head-ref <branch> --base-ref <branch> --pr-number <number>
```

```
sentry-cli build snapshots upload --org <org> --project <project> <path> --app-id <app-id>
```

- why_it_matters: Upload preprod build snapshots with VCS metadata from a coding repository.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.3.2>, <https://github.com/getsentry/sentry-cli/pull/3200>, <https://github.com/getsentry/sentry-cli/blob/3.3.2/src/commands/build/snapshots.rs>, <https://github.com/getsentry/sentry-cli/blob/3.3.2/src/utils/args.rs>
- gotchas: "Version: 3.3.2"; "Availability: preprod"; "PATH (required): Folder containing images to upload."; "--app-id APP_ID (required): Application identifier."; "--org ORG / --project PROJECT: Organization ID/slug and project ID/slug; command resolves them from configuration if omitted."; "--head-sha SHA: VCS commit SHA; defaults to current commit."; "--base-sha SHA: Base VCS commit SHA; defaults to merge base of current and remote branch."; "--vcs-provider PROVIDER: VCS provider; defaults to current provider."; "--head-repo-name NAME: Head git repository name, e.g. `organization/repository`; defaults to current repository."; "--base-repo-name NAME: Base git repository name, e.g. `organization/repository`; defaults to current repository."; "--head-ref REF: Head branch/reference; defaults to current reference."; "--base-ref REF: Base branch/reference; defaults to merge base with remote tracking branch."; "--pr-number NUMBER: Pull request number; auto-detected in GitHub Actions pull_request workflows when omitted."; "--force-git-metadata: Force collection and sending of git metadata; conflicts with `--no-git-metadata`."; "--no-git-metadata: Disable collection and sending of git metadata; conflicts with `--force-git-metadata`."; "Prerequisite: Authenticate with a Sentry CLI configuration/token and select an organization and project; organization/project may come from config."; "Prerequisite: The command is marked experimental and may have breaking changes or be removed in any Sentry CLI release."

## sentry-cli build download retrieves installable builds by build ID (sentry-cli, 2026-03-25)
Published 2026-10-13
- slug: sentry-cli-build-download-retrieves-installable-builds-by-build-id-ea1187fdcbd2
- score: 0.92

How to use it:

When the build is installable, run `sentry-cli build download --build-id <build_id>` to save its IPA or APK in the current directory. The command is experimental and requires an organization-scoped context and an `org:read` personal token.

Examples:

```
sentry-cli build download --build-id <build_id>
```

- why_it_matters: Download an installable IPA or APK build by its build ID while working on a mobile app repository.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.3.4>, <https://github.com/getsentry/sentry-cli/pull/3221/files>, <https://github.com/getsentry/sentry-cli/pull/3221>
- gotchas: "Version: 3.3.4"; "--build-id <build_id> (-b) (required): ID of the build to download."; "--org <ORG> (-o): Organization ID or slug; select the organization for the build."; "--output <output>: Output file path; defaults to `preprod_artifact_<build_id>.<ext>` in the current directory (`ipa` or `apk`)."; "Prerequisite: Requires a personal auth token with the `org:read` scope."; "Prerequisite: Only installable builds can be downloaded; the command is marked experimental."; "Downloads installable builds in IPA or APK format."; "Requires a build ID."

## sentry-cli code-mappings upload bulk uploads repository code mappings (sentry-cli, 2026-03-25)
Published 2026-10-13
- slug: sentry-cli-code-mappings-upload-bulk-uploads-repository-code-mappings-763f99ba978f
- score: 0.93

How to use it:

When configuring repository code mappings, create a nonempty JSON array of mappings with nonempty `stackRoot` and `sourceRoot` values, then run `sentry-cli code-mappings upload <PATH>` for the target organization. Repository and default branch can be inferred from local Git; set `--repo` and `--default-branch` explicitly when needed.

Examples:

```
sentry-cli code-mappings upload <PATH> --org <ORG>
```

```
sentry-cli code-mappings upload <PATH> --org <ORG> --repo <OWNER/REPO> --default-branch <BRANCH>
```

```
[{"stackRoot":"com/example/module","sourceRoot":"src/main/java/com/example/module"}]
```

- why_it_matters: Configure Sentry code mappings for a repository so error stack traces can show source context and link to code.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.3.4>, <https://github.com/getsentry/sentry-cli/pull/3207/files>, <https://github.com/getsentry/sentry-cli/pull/3208>
- gotchas: "Version: 3.3.4"; "PATH (required): Path to a JSON file containing a nonempty array of code mappings; each mapping requires nonempty `stackRoot` and `sourceRoot`."; "--org (required): Organization ID or slug."; "--repo: Repository name, e.g. `owner/repo`; defaults to the Git remote."; "--default-branch: Default branch name; shown with default `main`."; "stackRoot (required): Stack trace path root to map; must not be empty."; "sourceRoot (required): Corresponding source path in the repository; must not be empty."; "Prerequisite: Use an authenticated Sentry CLI invocation; the command accepts `--auth-token <AUTH_TOKEN>`."; "Prerequisite: When repo and branch are inferred, the CLI uses the configured VCS remote first, then best-effort remote detection: upstream, origin, then first remote."; "Mappings link stack trace paths to source paths in the repository."; "Large mapping files are automatically split into batches for upload."

## sentry-cli build snapshots adds --selective (sentry-cli, 2026-04-20)
Published 2026-10-13
- slug: sentry-cli-build-snapshots-adds-selective-036a8fc393f4
- score: 0.92

How to use it:

When the snapshot directory contains only a subset of images, run `sentry-cli build snapshots` with `--selective` to mark the upload as selective. On PRs, removals and renames cannot be detected for selective uploads.

Examples:

```
sentry-cli build snapshots <IMAGE_DIRECTORY> --app-id <APP_ID> --project <PROJECT_SLUG> --selective
```

- why_it_matters: When building a snapshot upload that contains only a subset of images, mark it as selective.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.4.0>, <https://github.com/getsentry/sentry-cli/blob/3.4.0/src/commands/build/snapshots.rs>, <https://github.com/EmergeTools/SnapshotPreviews/blob/main/README.md>
- gotchas: "Version: 3.4.0"; "<IMAGE_DIRECTORY> (required): Path to the folder containing images to upload."; "--app-id <APP_ID> (required): Application identifier."; "--project <PROJECT_SLUG> (required): Project selection; the command accepts the shared project argument."; "--selective: Marks the upload as containing only a subset of images; removals and renames cannot be detected on PRs."; "Prerequisite: Use sentry-cli 3.4.0 or later."; "Prerequisite: The command requires an authenticated Sentry CLI session to upload snapshots."; "Use this flag when the upload contains only a subset of images."

## sentry-cli bundle-jvm collects JVM sources from project roots (sentry-cli, 2026-04-20)
Published 2026-10-13
- slug: sentry-cli-bundle-jvm-collects-jvm-sources-from-project-roots-d6c44ec0ee25
- score: 0.97

How to use it:

When bundling JVM sources from a project root, run `sentry-cli debug-files bundle-jvm` with the required input directory, output directory, and debug UUID; repeat `--exclude` for custom glob patterns. The v3.4.0 source also collects extensions beyond those listed in the release note, so the supported extension set is not fully documented here.

Examples:

```
sentry-cli debug-files bundle-jvm <project-root> --output <output-dir> --debug-id <UUID> --exclude '<glob-pattern>'
```

- why_it_matters: Bundle JVM sources from a project root, including a multi-module repository, while excluding files or directories that match custom glob patterns.
- before: Do not run `bundle-jvm` directly on a project root.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.4.0>, <https://raw.githubusercontent.com/getsentry/sentry-cli/3.4.0/src/commands/debug_files/bundle_jvm.rs>
- gotchas: "Version: 3.4.0"; "PATH (required): Directory containing source files to bundle."; "--output PATH (required): Output folder; command writes a ZIP named with the debug UUID."; "--debug-id UUID (required): Debug ID used for the source bundle."; "--exclude PATTERN: Glob pattern for files/directories to exclude; can be repeated."; "Prerequisite: Use sentry-cli version 3.4.0 or later for the project-root collection and `--exclude` changes."; "Prerequisite: The input path must exist and be a directory."; "Automatic collection is limited to JVM source files with the listed extensions."; "The collection respects `.gitignore` and excludes common build output directories."; "Docs conflict: The release note lists `.java`, `.kt`, `.scala`, and `.groovy`; the v3.4.0 source's extension list additionally includes `.sc`, `.gvy`, `.gy`, `.gsh`, `.clj`, and `.cljc`. This difference is not used to override the release note."

## sentry-cli release inference disables Xcode Info.plist preprocessing by default (sentry-cli, 2026-05-21)
Published 2026-10-13
- slug: sentry-cli-release-inference-disables-xcode-info-plist-preprocessing-by-default-5afe8ad4f083
- score: 0.97

How to use it:

When Xcode release auto-discovery needs Info.plist preprocessing, run `sentry-cli releases propose-version --allow-xcode-infoplist-preprocessing` only for a trusted project; otherwise use the default, which disables preprocessing. The same flag is documented in `send-event`; the release note also names `bash-hook --send-event` and `react-native xcode` as affected.

Examples:

```
sentry-cli releases propose-version --allow-xcode-infoplist-preprocessing
```

```
sentry-cli send-event --allow-xcode-infoplist-preprocessing
```

- why_it_matters: Infer a release from an Xcode project using sentry-cli.
- before: Allow Xcode `Info.plist` preprocessing by default during release auto-discovery.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/2.58.6>, <https://github.com/getsentry/sentry-cli/blob/2.58.6/src/commands/releases/propose_version.rs>, <https://github.com/getsentry/sentry-cli/blob/2.58.6/src/commands/send_event.rs>, <https://github.com/getsentry/sentry-cli/blob/2.58.6/src/utils/args.rs>
- gotchas: "Version: 2.58.6"; "--allow-xcode-infoplist-preprocessing: Boolean flag; allows Info.plist preprocessing with `cc`, passing Xcode project settings to the compiler. Do not use with untrusted code."; "Prerequisite: Use the flag only for trusted projects that require preprocessing."; "Preprocessing is enabled only when `--allow-xcode-infoplist-preprocessing` is used for a trusted project that requires it."; "The change affects release inference for `sentry-cli releases propose-version`, `sentry-cli send-event`, `sentry-cli bash-hook --send-event`, and auto-release detection for `sentry-cli react-native xcode`."

## sentry-cli snapshots diff compares PNG snapshot directories (sentry-cli, 2026-06-02)
Published 2026-10-13
- slug: sentry-cli-snapshots-diff-compares-png-snapshot-directories-c539bf723a10
- score: 0.97

How to use it:

When comparing two local PNG snapshot directories, run `sentry-cli snapshots diff <base-dir> <head-dir>`; the command compares them using odiff.

Examples:

```
sentry-cli snapshots diff <base-dir> <head-dir>
```

- why_it_matters: Compare two directories of PNG snapshot images locally.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.5.0>, <https://blog.sentry.io/snapshots-available-beta/>
- gotchas: "Version: 3.5.0"; "<base-dir> (required): Path to the base snapshot directory."; "<head-dir> (required): Path to the local snapshot directory to compare against the base."; "--fail-on-diff: Used in the documented local verification invocation; its effect is not described on the official page found."; "--selective: Used in the documented local verification invocation; its effect is not described on the official page found."; "Compares directories of PNG snapshot images locally."

## sentry-cli snapshots download fetches Sentry baselines (sentry-cli, 2026-06-02)
Published 2026-10-13
- slug: sentry-cli-snapshots-download-fetches-sentry-baselines-b731f5361c77
- score: 0.92

How to use it:

When the repository needs Sentry baseline images, run `sentry-cli snapshots download` with the app ID and branch. The release note confirms the command downloads baseline snapshot images; the official release page does not document its flags.

- why_it_matters: Download baseline snapshot images from Sentry for a repository's snapshot workflow.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.5.0>
- gotchas: "Version: 3.5.0"

## sentry-cli snapshots upload detects removals and renames in selective builds (sentry-cli, 2026-06-02)
Published 2026-10-13
- slug: sentry-cli-snapshots-upload-detects-removals-and-renames-in-selective-builds-07ecc105aa47
- score: 0.90

How to use it:

For a selective snapshot build, supply the full test suite's image names to detect removals and renames. Run `sentry-cli snapshots upload <image-dir> --app-id <app-id>` with either `--all-image-file-names <comma-separated-names>` or `--all-image-file-names-file <path>`; each flag enables selective mode.

Examples:

```
sentry-cli snapshots upload <image-dir> --app-id <app-id> --all-image-file-names '<image1>,<image2>'
```

```
sentry-cli snapshots upload <image-dir> --app-id <app-id> --all-image-file-names-file <names-file>
```

- why_it_matters: Upload snapshots from a selective build while detecting removed or renamed images.
- sources: <https://github.com/getsentry/sentry-cli/releases/tag/3.5.0>, <https://github.com/getsentry/sentry-cli/blob/3.5.0/src/commands/snapshots/upload.rs>
- gotchas: "Version: 3.5.0"; "<image-dir> (required): Directory containing images to upload."; "--app-id <app-id> (required): Application identifier."; "--all-image-file-names <names>: Comma-separated full-suite image names, including subdirectory paths; enables selective mode and detects removals and renames. Mutually exclusive with `--all-image-file-names-file`."; "--all-image-file-names-file <path>: File path containing full-suite image names, including subdirectory paths, one per line; enables selective mode and detects removals and renames. Mutually exclusive with `--all-image-file-names`."; "The flags apply to selective builds."

Next: https://sincecutoff.com/v1/changes.md?tool=sentry-cli&score=0&cursor=eyJzY29yZSI6MCwic2VxIjo1MDksInNpbmNlIjpudWxsLCJ0b29sIjoic2VudHJ5LWNsaSIsInYiOjF9
Save `next_cursor`; next visit, pass it to get only what was published since.
<!-- end of page -->
