Skip to content

Changelog

New features, fixes, and supported Flutter versions in Shorebird. Expand an entry for the full detail, the command, and the doc it belongs to. Subscribe with the RSS feed.

November 2026

Add an app collaborator to the organization

On an app's Collaborators page, Add to organization makes a per-app collaborator a Developer of the organization in one step.

CLI 1.6.135

--min-link-percentage now defaults to 20, so an iOS or macOS patch that shares less than 20% of its Dart code with the release fails instead of publishing. Such a patch can run much slower than the release.

CLI 1.6.136

Builds no longer run your own Flutter's pub get

Shorebird no longer runs flutter pub get with the Flutter on your PATH after each build. That step could make Xcode's Product > Archive fail after shorebird release.

CLI 1.6.135

More CLI fixes in 1.6.135

CLI 1.6.135 also fixes these issues.

CLIs older than 1.6.87 are no longer supported

The Shorebird server now refuses requests from Shorebird CLI versions older than 1.6.87, so run shorebird upgrade if you're on one. The oldest supported version used to be 1.4.0.

CLI 1.6.135

Organization, members, service account, audit log, and usage commands

New commands manage your organizations from the command line. Each returns JSON with --json, except shorebird service-accounts keys create, which opens the console. Those that act on one organization take --org-id.

Turn usage alert emails off in the Console or from the email

The Console's Email notifications card has a Usage alerts switch for the emails that warn when an organization you're in nears or reaches its patch install limit. Each of these emails also has an unsubscribe link that works without signing in.

CLI 1.6.135

API key, session, and account commands

New commands cover API keys, sessions, and your account. Actions that are hard to undo or that create credentials open the Shorebird console, where you finish them, and shorebird apps delete no longer deletes the app.

CLI 1.6.136

Enterprise commands

shorebird enterprise works on your enterprise and across every organization in it. On its own, it shows the enterprise and your role in it.

CLI 1.6.135

Flutter 3.47.9 support

Shorebird now supports Flutter 3.47.9 and Dart 3.13.7, the default in Shorebird 1.6.135. In releases built with it, patch checks and downloads on iOS, macOS, and Android go through the platform's own HTTP stack.

CLI 1.6.135

Warning when a release's Flutter has a known problem

shorebird patch now warns when the release you're patching was built with a Flutter revision that has a known problem on that platform, such as the iOS crashes in Flutter 3.44.0 to 3.44.8 and the early 3.44.9 build c2515c46c7.

CLI 1.6.135

Patching asks which track to publish to

Without --track, shorebird patch in a terminal now asks whether to publish to staging, beta, or stable, with staging selected. Before, it published to stable, which reaches all users.

CLI 1.6.135

Preview starts from a clean install on Android

On Android, shorebird preview now uninstalls the app before installing the release, instead of clearing its data. Anything the app kept outside its data paths goes too, and preview works on devices that don't let adb clear app data.

CLI 1.6.135

Notices about your plan after a release or patch

When the account that pays for an app needs attention, shorebird release and shorebird patch end with a notice from Shorebird, for example when patch delivery is paused or nearing the plan's install limit. The notice says when a failed payment is the cause.

Every member sees when an organization's patches are paused

The Patches are not being delivered. banner now follows the organization you're viewing, so every member of a paused organization sees it. Before, only the plan's owner saw it, and in every organization they were in.

October 2026

Join your team when you first sign in

If you sign in to the Console while you're in no organization, it now shows the invitations waiting for you, to join or decline, before offering to create an organization.

SCIM provisioning, and adding and deactivating people

Enterprises can now add and deactivate people from Okta or Microsoft Entra ID over SCIM 2.0, and from the People tab of the Enterprise page.

Account deletion and ownership fixes

Three fixes for deleting your account and for an organization's owner.

Releases built on a Flutter revision with a known problem are marked

When a release was built on a Flutter revision with a known problem on one of its platforms, such as the iOS crashes in Flutter 3.44.0 to 3.44.8 and the early 3.44.9 build c2515c46c7, the Console now says so.

Patch activity across an organization's apps

An organization's General settings page now shows a Patch activity chart of patch installs and downloads across all the organization's apps.

A domain's Google or Microsoft requirement admits only accounts it manages

When an enterprise requires Google or Microsoft for a domain, only Google Workspace or Microsoft Entra accounts the domain manages can sign in. A personal Google or Microsoft account registered with a work email is refused, and its session ends at its next refresh.

CLI 1.6.134

More CLI fixes in 1.6.134

CLI 1.6.134 also fixes these issues.

Delete an app from its Settings page

Deleting an app in the Console now happens only on the app's Settings page, and you type the app's name to confirm. The app list's row menu no longer offers Delete.

CLI 1.6.134

Patches download and build less

shorebird patch keeps the release artifacts it downloads and reuses them the next time you patch the same release, and builds Android patches only for the architectures the release has.

Personal organizations work like any other

A personal organization can now be renamed and deleted like any other organization, and on a plan with collaboration it can invite members and change their roles. The Members tab shows for every organization.

All-time patch installs and past billing periods

A release's Insights tab now lists each patch's installs since counting began, in an All-time installs card below the chart.

A notifications bell in the Console

A bell in the Console notifies you, across all your apps, when devices start reporting that a release isn't the build Shorebird released.

The release link shorebird release prints now opens the release in the Console instead of a page that wasn't found.

Enterprise billing tab and Billing manager role

The Enterprise page has a Billing tab showing your contract and usage, the organizations your enterprise pays for with each one's installs this period, and your invoices with their PDFs.

Each patch install is counted once

Each patch install is now counted once, by the install event's id, so a copy of the same event no longer adds to your usage and metrics twice.

More API lists can be paged, and apps searched

Lists of organizations, an organization's apps, members and service accounts, a service account's keys and trust rules, and a release's artifacts can now be read a page at a time, by number.

See when devices run a build Shorebird didn't release

When devices report that the app installed from the store isn't the build shorebird release uploaded, the release's page now shows an alert, Patches can't install on <n> devices, so you know why its patches aren't installing.

Inviting members needs a paid plan

Inviting anyone to an organization now needs the owner's plan to include collaboration, as the docs said. Before, an invitation with the Developer role went through on the Hobby plan.

CLI 1.6.132

More CLI fixes in 1.6.132

CLI 1.6.132 also fixes these issues.

CLI 1.6.133

Flutter 3.47.8 support

Shorebird now supports Flutter 3.47.8 and Dart 3.13.7. It includes a Dart security fix, so rebuild Android, Windows, and Linux apps with it.

CLI 1.6.132

Releases refuse install_only on Flutter builds that skip its check

Shorebird's builds of Flutter 3.41.9, 3.44.0 to 3.44.9, and 3.47.0 to 3.47.7 skip the patch signature check entirely when shorebird.yaml sets patch_verification: install_only. shorebird release now refuses that combination.

CLI 1.6.132

New releases are signed by default

New releases are now signed by default with a key Shorebird manages for your organization, so someone tampering with your users' network can't push code to your app. Update the CLI and make a new release to turn it on.

The API answers 404 to callers outside an app or organization

A request for an app or organization you have no role in now gets the same 404 as one that doesn't exist, so an id tells someone outside your organization nothing. Before, a request for someone else's app got 403.

CLI 1.6.131

Download Flutter and engine tools from an internal mirror

Three new environment variables point the CLI at an internal mirror, such as Artifactory, for Flutter, its engine artifacts and bundletool.

CLI 1.6.131

More CLI fixes in 1.6.131

CLI 1.6.131 also fixes these issues.

CLI 1.6.131

The browser shows next steps after shorebird login

When shorebird login finishes in the browser, the tab now says You're signed in to the Shorebird CLI and lists next steps, adding Shorebird to your app, creating a release, and shipping a patch, with commands you can copy.

CLI 1.6.131

New Android and iOS releases need Flutter 3.24.0 or newer

shorebird release no longer creates an Android, AAR, iOS, or iOS framework release with a Flutter version older than 3.24.0.

Trust rules refuse pull_request_target runs

GitHub Actions jobs started by pull_request_target can no longer sign in with a trust rule, because anyone who opens a pull request can start one, and it runs with the ref of the repository's default branch, such as refs/heads/main.

Require a sign-in method for your enterprise's domains

On the Enterprise page, you can now require SAML SSO, Google, or Microsoft for each of your email domains, so people at that domain can sign in only that way.

Organization access fixes

Four fixes tighten who can see and change an organization's apps.

Sign in once for the Console and the CLI

Once you've signed in to Shorebird in a browser, signing in again in that browser, from the Console, the CLI, or another app, finishes without going back to Google, Microsoft, or your identity provider.

Name an organization when you create it

Creating an organization now asks for its name. New organizations are no longer called "My Organization".

Patch checks keep up with new patches and app transfers

A patch check that ran while a patch was being published could leave "no patch" cached until the next change. The next check now sees the new patch.

Personal API keys expire within a year

A new personal API key now expires within a year. The Console no longer offers Never as an expiration when you create or regenerate one.

Console fixes for yearly plans, account deletion, and app transfers

The Console fixes three issues.

Delete a track, and hide rolled-back patches

The Tracks page can delete tracks you added, and a release's patch list hides rolled-back and deactivated patches unless you ask to see them.

Signing out a session takes effect right away

An access token now stops working as soon as its session is revoked.

CLI 1.6.130

See which credential the CLI is using

shorebird auth status shows which credential the CLI signed in with and who it acts as, and shorebird auth token prints the access token it sends.

CLI 1.6.130

Apps are listed with apps list, not account apps

shorebird account apps no longer lists apps. It prints shorebird apps list, which shows the same list, and exits with a usage error.

CLI 1.6.130

Change your display name and email settings from the CLI

shorebird account update --name changes your display name, and shorebird account notifications shows or changes whether Shorebird emails you.

CLI 1.6.130

The api command takes the method first and reads every page

shorebird api accepts the HTTP method before the endpoint, and --paginate reads a whole paged list in one call. --jq also takes slices, and the command now handles a repeated /api/v1 and explains a 405 after fields made a POST.

New per-app collaborators can no longer be added

To give someone access to an app, invite them to the organization that owns it. The app's "Collaborators" tab no longer has an invite button, and the API's endpoints for adding a collaborator or sending an app invitation now return 410 Gone.

CLI 1.6.130

Use --channel wherever --track works

--channel is now another name for --track.

CLI 1.6.130

More CLI fixes in 1.6.130

CLI 1.6.130 also fixes these issues.

CLI 1.6.130

See and answer invitations from the CLI

shorebird invitations list shows the organization and app invitations sent to you, and shorebird invitations accept and decline answer one by its id.

CLI 1.6.130

Android patch warnings show what changed code references

When Java or Kotlin changes trigger the native changes warning on an Android patch, the output names the classes, methods, and fields that each changed method's differing instructions reference, so you can tell which dependency changed.

CLI 1.6.130

The patches promote command is back as a set-track shortcut

shorebird patches promote appears in help again and now runs shorebird patches set-track with the track defaulting to stable.

CLI 1.6.130

The release and patch commands no longer take --confirm

The hidden --confirm flag is gone from shorebird release and shorebird patch. It made each command ask Would you like to continue? before publishing, and that prompt is gone.

Roles your plan no longer offers are marked

A member keeps a role that the organization's current plan no longer offers. The role picker now warns that changing it can't be undone without upgrading.

First SSO sign-in keeps your existing account

Signing in with SAML SSO for the first time with an email at the connection's domain moves your existing account onto SSO instead of refusing it. Your organizations, app access, and billing carry over.

CLI 1.6.129

Call the Shorebird API from the CLI

shorebird api sends an authenticated request to the Shorebird API and prints the response. --jq filters a successful response before it's printed.

CLI 1.6.129

Apple builds keep your .dart_tool caches

iOS, iOS framework, and macOS builds no longer delete the project's whole .dart_tool directory, so build_runner caches and native asset outputs survive a Shorebird build.

Audit log entries say which key or session acted

Audit log entries now name the API key or sign-in session behind each action, and say whether the sign-in used multi-factor authentication when the sign-in provider reports it.

CLI 1.6.129

More CLI fixes in 1.6.129

CLI 1.6.129 also fixes these issues.

CLI 1.6.129

Confirm deletes with --yes

shorebird channels delete and shorebird releases delete ask you to confirm in a terminal, and --yes skips the question. Without a terminal, in CI, or with --json, --yes is required.

CLI 1.6.129

Sign in from GitHub Actions without a stored key

On GitHub Actions, the CLI can now sign in as a service account with the OIDC token GitHub issues to each job, so there's no SHOREBIRD_TOKEN secret to leak or rotate.

CLI 1.6.129

Every --json command prints one JSON object

With --json, every command writes exactly one JSON object to stdout, including --help and commands that have no data to return.

CLI 1.6.129

See app metrics from the CLI

shorebird metrics shows the metrics the Console shows under Insights, such as patch installs, downloads, adoption, and active devices.

CLI 1.6.129

Delete a release from the CLI

shorebird releases delete deletes a release, or one platform of it with --platform.

CLI 1.6.129

The whoami command no longer prints a subscription line

shorebird account whoami no longer prints a Subscription: line. Plan: shows your plan level.

API errors link to the docs, and lists can be paged

Every JSON error from the API now carries a documentation_url, and the lists of apps, releases, and patches can be read a page at a time.

Release and patch only API keys on every plan

API keys limited to releases and patches are now available on every plan, including Free. They used to need a paid plan.

The API refuses what the Console refuses

Some requests the Console refuses are now refused by the API too, so scripts and the CLI meet the same rules.

Only Owners, Admins, and Auditors can read the audit log

Viewers, Developers, and App Managers can no longer read an Enterprise organization's audit log, in the Console or through the API. Before, every member could.

Export the audit log to a SIEM

Enterprise organizations can read the audit log through the API oldest first and forward each event to a SIEM, using a service account with the Auditor role.

Patch checks catch up with deletes and rollbacks

Deleting a track now takes effect on the next patch check, and deleting a release can no longer leave its patches cached. Running a rollback or roll forward again now clears the cache if the first run couldn't.

Service accounts for CI and integrations

Organizations can now create service accounts: accounts that belong to the organization instead of a person, with keys that keep working when the person who set them up leaves or changes roles. They're available on every plan.

Viewer role on the Pro plan

Organizations on the Pro plan can now give members the Viewer role. It used to need the Business plan or higher.

Sign-in names the method your account uses

Signing in with a different method than your account uses now names the one to use.

Canceled plans void their open invoices

When a plan is canceled because a payment failed, its open invoices are now voided.

Switch organizations from the sidebar

The top of the Console's sidebar names the organization you're in and opens a switcher with its plan, your role, its install usage, and your other organizations.

SAML sign-in refuses SHA-1

SAML responses signed or digested with SHA-1 are now refused.

Usage counts only organizations you own

The usage shown on your plan page and in organization settings now counts installs only from organizations the plan holder owns.

Sessions are named after the app that holds them

The Sessions list on your Account page now names each session after the app that holds it, such as Shorebird Console, Shorebird CLI, or Claude Code, with the browser it was approved in underneath.

Invitations match emails in any letter case

Inviting a member or collaborator now finds their account no matter how the email address is capitalized.

Sign-in no longer creates a second account for a differently cased email

Signing in with an email that matches an existing account's except for letter case no longer creates a second account. It follows the same rules as an exact match.

CLI 1.6.128

The CLI refuses to delete built-in tracks

shorebird channels delete now refuses stable, beta, and staging with a usage error before contacting the server, which already refuses them.

CLI 1.6.128

More CLI fixes in 1.6.128

CLI 1.6.128 also fixes these issues.

CLI 1.6.128

Consistent flag names for set-track and init

shorebird patches set-track and shorebird init now use the same flag names as the commands next to them. The old names still work, but no longer appear in --help.

CLI 1.6.128

JSON errors explain failed checks

With --json, every failing command now prints an error object on stdout, and a failed check before the command runs reports precondition_failed with a message and, when there's a known fix, a hint.

CLI 1.6.128

macOS patches install on re-signed apps

macOS patches now install on apps that were re-signed after release, such as for Developer ID notarization or the Mac App Store.

CLI 1.6.128

Signed patches honor --public-key-cmd

shorebird patch now embeds the public key from --public-key-cmd in the patch build, as shorebird release already did.

CLI 1.6.128

The patches promote command is hidden from help

shorebird patches promote no longer appears in shorebird patches --help. Use shorebird patches set-track instead.

CLI 1.6.128

Preview a flavor without a prompt

shorebird preview now takes --flavor, like other commands that act on an app, so it can pick the flavor's app without asking.

CLI 1.6.128

Releases no longer upload files from an earlier build

shorebird release now clears build/<platform>/shorebird/ before building on every platform, so files left by an earlier build aren't uploaded with a new release.

Retrying a release records the new upload

Running shorebird release again after a release failed partway now records the artifacts from the retry instead of keeping the first attempt's details.

CLI 1.6.128

Setting a patch's track again succeeds

shorebird patches set-track now succeeds when the patch is already on the requested track, instead of failing with a usage error.

CLI 1.6.128

An unknown flavor is an error

Commands that act on an existing app now fail when --flavor names a flavor that shorebird.yaml doesn't define, instead of silently using the default app.

CLI 1.6.127

Crash fixes for login, doctor, and set-track

Four commands that could crash now work or fail with a clear message.

CLI 1.6.127

Linux patches build like Linux releases

shorebird patch linux now builds with --target and the arguments passed after --, so the patch matches the release it targets.

API keys hold exactly their permission level

API keys now hold exactly what their permission level grants. A full access key can do everything your role allows, except delete your account, change your billing limits, or manage your sessions and API keys. Sign in to the Console to do these.

Approve each app that signs in as you

Signing in from the CLI now stops at an approval page, as signing in from other apps such as Claude Code already did. The redesigned page says which app is asking, which account it signs in to, and what it gets. Choose Authorize to continue or Cancel to refuse.

Apps are listed once

The app list no longer shows an app twice when you have both a role in its organization and a role granted on the app itself.

CLI 1.6.126

The Shorebird cache cleans up after itself

Flutter installs, engine artifacts, and downloaded previews that you no longer use are now removed automatically, so they stop piling up across upgrades and --flutter-version builds.

Size analysis says when a release can't be analyzed

The Size tab for a release with no Android or iOS build now says that size analysis supports Android and iOS only, instead of saying to check back in a few minutes.

CLI 1.6.126

Flutter 3.47.7 support

Shorebird now supports Flutter 3.47.7 and Dart 3.13.5.

CLI 1.6.126

iOS previews show your app's logs again

With Xcode 26 or later, shorebird preview on an iOS device now shows the app's print output and [shorebird] updater lines, as Android and macOS previews do.

CLI 1.6.126

Sign in from any machine

shorebird login now opens your browser, and when no browser can open, such as over SSH, in CI, or on Linux without a display, it shows a code to enter in a browser on any device.

CLI 1.6.125

Patch obfuscated Android releases built with older Flutter

Patching an Android release built with --obfuscate on a Flutter version older than 3.41.2 no longer fails with Unrecognized flags: load_obfuscation_map.

CLI 1.6.125

Errors say what to do next

Errors from shorebird init, shorebird patch, shorebird preview, and the checks that run before a command now name the step that fixes them.

CLI 1.6.125

Warning for app extension versions that don't match the app

shorebird release ios now warns when an app extension's version or build number differs from the app's, which App Store Connect rejects with ITMS-90473.

CLI 1.6.125

More secure CLI sign-in

shorebird login now uses standard OAuth with PKCE and state, and shorebird logout now warns when the auth server can't confirm that your session was revoked.

CLI 1.6.125

Script releases and patches with JSON output

shorebird release and shorebird patch now support --json, so a script gets the new release or patch as data instead of parsing log lines.

Sign-ins last as long as you use them

Sign-ins no longer end at a fixed 90 days. A sign-in now lasts until it goes 30 days without use, so you stay signed in as long as you keep using Shorebird.

The API now reports rate limits

API responses now carry RateLimit and RateLimit-Policy headers, so scripts can see their limit and how close they are to it.

CLI 1.6.124

Flutter 3.47.6 support

Shorebird now supports Flutter 3.47.6 and Dart 3.13.5.

CLI 1.6.124

Android patches name the dependency changes behind DEX diffs

When shorebird patch android finds DEX changes, it now lists the Android libraries whose versions differ from the release, which usually explains a native change you didn't make.

Legacy login tokens no longer work

Since October 1, 2026, tokens from shorebird login:ci and logins from CLI versions older than 1.6.87 are rejected.

September 2026

Find apps faster in the Console

The sidebar now lists the active organization's apps, and the organization's app list can now be filtered, sorted, and paged.

Pick a role when inviting a member

The invite dialog now has a role picker, so a new member joins with any role your plan offers instead of always as a Developer.

Move an older patch to another track

Change Track is now offered on a patch that a newer patch has superseded on its track, so an older staging patch can still be promoted to stable.

Each pending invitation in an organization's members list now has a button that shows its link, so you can send it yourself.

CLI 1.6.123

Flutter 3.47.5 support

Shorebird now supports Flutter 3.47.5 and Dart 3.13.4.

CLI 1.6.123

Release with the Flutter version you already use

--flutter-version now accepts fvm and system, so you no longer have to look up and repeat your Flutter version number.

CLI 1.6.123

iOS debug symbols now upload to symbol servers

On iOS, --split-debug-info now writes a Mach-O dSYM, so symbol servers ingest it and Dart stack traces from production become readable.

See whose plan each organization runs on

The organizations list is split into Owned by you and Member of, and each organization shows its plan tier.

CLI 1.6.122

Patch checks report the patch the device is running

The automatic patch check now starts after the patch the device boots has loaded, instead of before, so it reports the patch the device is actually running. With auto_update: false, your app's own updater call decides when to check.

CLI 1.6.122

Flutter 3.47.4 support

Shorebird now supports Flutter 3.47.4 and Dart 3.13.3.

CLI 1.6.121

Clear error when an Android build drops libapp.so

shorebird release android and shorebird patch android now stop with an explanation when the built app bundle has no libapp.so, your compiled Dart code, for any architecture.

CLI 1.6.121

More CLI fixes in 1.6.121

CLI 1.6.121 also fixes these issues.

CLI 1.6.121

Flutter 3.47.3 support

Shorebird now supports Flutter 3.47.3 and Dart 3.13.3.

CLI 1.6.121

Manage apps from the CLI

New shorebird apps commands list, rename, delete, and transfer apps without opening the Console.

CLI 1.6.121

Manage channels from the CLI

New shorebird channels commands create, list, and delete the channels (tracks) an app can publish to.

CLI 1.6.121

See your plan from the CLI

shorebird account whoami now shows your plan level and whether you have an active subscription.

Manage your plan and billing in one place

The new Plan page under Account replaces the Plan tab in each organization's settings, since a plan belongs to your account and covers every organization you own.

Size analysis is free on every plan during rollout

The Size tab is now available on every plan, including Free, and releases are analyzed whatever plan they're on. Pricing will come later.

The built-in channels can't be deleted

Deleting the stable, beta, or staging channel is now refused, since it would unpublish every patch on that track.

August 2026

CLI 1.6.120

Layered app icons no longer count as asset changes

On iOS and macOS, shorebird patch no longer reports an asset change for a layered app icon (.icon) that you didn't change.

CLI 1.6.120

Flutter 3.47.2 support

Shorebird now supports Flutter 3.47.2 and Dart 3.13.2.

CLI 1.6.120

Roll patches back and forward from the CLI

shorebird patches rollback and shorebird patches rollforward do the same as the Rollback and Roll Forward actions in the Console.