Flitzdocs
CLI

flitz publishes

List your organization's publish history, newest first, and delete a publish; --app, --track, --limit, --all, and --json.

flitz publishes lists your organization's publishes, and flitz publishes delete deletes one. Every publish belongs to an app and one of its tracks — see Apps and tracks. The Publishes page of the portal shows the same history.

flitz publishes
3c1f9e2a-7d41-4b8e-9c33-1a2b3c4d5e6f  2026-09-28 14:02  complete  acme_app  feature/login  1.4.0+12 (sprint 42)  Onboarding redesign  https://…
8a7b6c5d-1e2f-4a3b-8c9d-0e1f2a3b4c5d  2026-09-27 17:45  complete  acme_app  main           1.4.0+11                                   https://…
0f1e2d3c-4b5a-4968-8776-655443322110  2026-09-27 09:10  pending   acme_app  main           1.4.0+11                                   https://…

Each line is one publish: its id, when it started (in your local time), its state, the app key, the track, the pubspec.yaml version with the --version-name label in parentheses, the --name title, and the landing-page link. See flitz publish → Publish history for how a publish gets these fields. With no publishes it prints No publishes yet. on stderr and exits 0. When more publishes exist than it listed, it says so on stderr: More publishes exist; pass --limit (up to 200) to list more.

Flags

publishes accepts the global options, including --json, plus these:

FlagDefaultPurpose
--app <key>—Only this app's publishes.
--track <track>—Only this track's publishes. Takes a track key or a branch name: --track feature/login lists the track feature-login. Without --app it uses the current project's app key (app: in flitz.yaml, else the pubspec name).
--limit <n>20How many to list, from 1 to 200. Anything else fails with --limit must be an integer between 1 and 200; got '<n>' (exit 1).
--all—Include publishes that never landed (abandoned).

States

StateMeaning
completeThe bundle finished uploading, and publish marked the publish complete. Its links work.
pendingNot marked complete yet: the publish is in flight, or it failed or was interrupted before publish marked it complete.
abandonedStill pending an hour after it started. The bundle never landed.

By default the list shows complete and pending publishes; --all adds abandoned ones. Deleted publishes, and the publishes of a deleted app, never appear.

--json

flitz publishes --json > history.json

The document is { "publishes": [ … ] }, newest first. Each entry carries id (the same id that publish --json prints), app and track (each { "key", "name" }), trackUrl, appName, appVersion, name, versionName, and comment when set, state, createdAt, completedAt once complete, bundleUrl, pageUrl, and actor, whose machine field is true for a publish made with the organization API key. comment appears only here, not in the table.

jq -r '.publishes[] | select(.state == "complete") | .pageUrl' history.json

The document does not say whether more publishes exist; raise --limit, or browse the full history in the portal.

Delete a publish

flitz publishes delete <id>
Delete publish <id>? Its links stop working, and it cannot be restored. [y/N]

Takes one id from flitz publishes. On yes it prints Deleted publish <id>.: the publish leaves the history, its landing page and bundle links stop working, and if it was its track's newest build, the track link opens the previous complete one. Nothing restores it. Declining exits 1 with publish <id> was left in place. In a script, pass --yes; without a terminal and without --yes the command fails (exit 1). An unknown id fails with publish <id> does not exist (exit 1).

--yes skips the confirmation

--yes, and assume_yes: true in config.yaml, answer the delete prompt too. A deleted publish cannot be restored.

Who can run them

CommandWho
publishesAny member of the organization, and a CI job with FLITZ_APIKEY.
publishes deleteAny member, signed in with flitz login. Under FLITZ_APIKEY it refuses before any request, with publish deletion requires an interactive session (exit 3).

Both need an active organization license; while it is inactive they fail with exit 3. Links already shared keep working regardless.

On this page