Flitzdocs
CLI

flitz apps

List your organization's apps, and rename, archive, unarchive, delete, or restore one; --archived, --deleted, --limit, and --json.

flitz apps lists your organization's apps and changes one. What each change does to an app's tracks, publishes, and links is described in Apps and tracks. The Apps page of the portal offers the same actions. Pro includes one app; more than one app is part of Flitz Enterprise.

CommandWhat it does
flitz apps listList the apps.
flitz apps rename <key>Change an app's key, display name, or both.
flitz apps archive <key>Stop the app taking new publishes.
flitz apps unarchive <key>Let it take publishes again.
flitz apps delete <key>Delete the app; restorable for 30 days.
flitz apps restore <key>Bring a deleted app back.

apps list

flitz apps list
flitz apps list --archived --deleted
acme_app  Acme      3 tracks  2026-09-28 14:02
legacy    legacy    1 track   no publish yet    archived
old_demo  old_demo  2 tracks  2026-08-01 10:15  deleted, purge 2026-10-31 09:00

One line per app, ordered by key: the key, the display name, the number of tracks, when its newest build started (or no publish yet), and, for an archived or deleted app, its state — a deleted app shows when it is removed for good. The list shows live apps; --archived and --deleted add those. --limit works as for publishes.

--json prints { "apps": [ … ] }. Each entry carries key, name, state, downloadAccess (public for Anyone with the link, members for Members only), fallbackTrackKey, trackCount, lastPublishedAt, and, for a deleted app, deletedAt and purgeAt. An Owner or Admin changes an app's download access in the portal; the CLI cannot.

Change an app

Each command names the app by its current key and prints the app's new line on success.

CommandEffect
flitz apps rename <key> --key <new-key>A new key. Track links contain the key, so track links shared before stop working; each publish's own links keep working. The old key is free again.
flitz apps rename <key> --name <text>A new display name, shown on the landing pages, in the portal, and in the panel. Pass both flags to change both.
flitz apps archive <key>The app refuses new publishes. Its tracks, publishes, and links keep working.
flitz apps unarchive <key>The app takes publishes again.
flitz apps delete <key>Asks first. The app, its tracks, and its publishes leave every list, and all their links stop working at once. A publish under the key is refused until the app is removed for good.
flitz apps restore <key>Within 30 days of the delete, brings the app back with its tracks, publishes, and links unchanged — archived again if it was archived.

After a key change the CLI reminds you what still names the old key:

Track links now carry the key acme; acme_app is free.
Set `app: acme` in flitz.yaml and `--app acme` in pipelines.

Do that before the next publish: a project without app: publishes under its pubspec name, and a publish under the freed key creates a new app.

apps delete asks before it acts:

Delete app <key>? Its tracks, publishes, and links stop working now; flitz apps restore <key> brings them back for 30 days. [y/N]

Declining exits 1 (app <key> was left in place). In a script, pass --yes.

--yes skips the confirmation

--yes, and assume_yes: true in config.yaml, answer the delete prompt too.

Errors

You seeCodeMeaning
app <key> does not exist → run flitz apps list1The key names no app the command can act on.
app key <key> is taken1Another app holds the new key.
app <key> is not deleted or its restore window has ended1restore on an app that is not deleted, or more than 30 days after the delete — the app is gone for good.
app management requires an interactive session3The command ran under FLITZ_APIKEY.

Who can run them

CommandsWho
apps listAny member of the organization, and a CI job with FLITZ_APIKEY.
apps rename, archive, unarchive, delete, restoreAny member, signed in with flitz login. Under FLITZ_APIKEY they refuse before any request (exit 3).

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

On this page