INTEGRITY Cloudflare Docs

Flagship

Use wrangler flagship to manage Flagship apps and feature flags from the command line.

wrangler flagship is available in Wrangler v4.107.0 and later.

Authentication

Run wrangler login, or set CLOUDFLARE_API_TOKEN to an API token with Flagship permissions.

Permission Required for
flagship:read Listing apps, inspecting flags, evaluating flags, and reading changelogs.
flagship:write Creating, updating, deleting, enabling, disabling, rolling out, and splitting apps or flags.

Most write workflows also read the current flag before writing the updated definition, so grant both permissions for operational use.

App IDs

wrangler flagship flags commands always take the app ID as the first argument. Most subcommands then take a flag key; list-style commands, such as flags list, take only the app ID:

wrangler flagship flags get <APP_ID> new-checkout
wrangler flagship flags disable <APP_ID> new-checkout
wrangler flagship flags list <APP_ID>

Create an app first if you do not already have one:

wrangler flagship apps create checkout-service

Pass --binding <NAME> when creating an app to add it to your wrangler.json or wrangler.jsonc file as a Worker binding.

Common workflows

Create a boolean flag. With no variations, Wrangler creates on=true, off=false, and serves off by default:

wrangler flagship flags create <APP_ID> new-checkout

Add targeting rules with the compact rule syntax:

wrangler flagship flags create <APP_ID> premium-banner \
	-V on=true \
	-V off=false \
	--default off \
	--rule "serve=on; when=plan equals enterprise AND country in [US,CA]; rollout=25%@user_id"

Use uppercase AND and OR outside quoted values to combine conditions. Quote values that contain reserved words or separators:

wrangler flagship flags create <APP_ID> banner-copy \
	-V shown=true \
	-V hidden=false \
	--default hidden \
	--rule 'serve=shown; when=title equals "WAR AND PEACE" OR country in ["US","CA"]'

For deeply nested condition groups, use --rule-json. Wrangler validates both compact rules and JSON rules before sending requests.

Change one existing rule without rewriting the full rule set:

wrangler flagship flags rules update <APP_ID> premium-banner \
	--priority 1 \
	--rollout 50%@user_id

Evaluate a flag for a user:

wrangler flagship flags evaluate <APP_ID> premium-banner \
	--context plan=enterprise \
	--context country=US \
	--targeting-key user-42

Use disable as an immediate kill switch:

wrangler flagship flags disable <APP_ID> premium-banner

Enable, disable, or delete multiple flags by passing the app ID followed by multiple keys:

wrangler flagship flags disable <APP_ID> new-checkout dark-mode premium-banner
wrangler flagship flags delete <APP_ID> coming-soon old-banner --force

Delete commands require --force when used with --json so prompts cannot corrupt JSON output. rollout and split require the same when they would replace existing targeting rules that have conditions.

Refer to the Flagship Wrangler commands reference for a complete workflow guide covering targeting rules, rollouts, traffic splits, changelogs, and scripting with --json.

Commands

flagship apps create

Create a Flagship app

npx wrangler flagship apps create [NAME]

Global flags

flagship apps list

List Flagship apps

npx wrangler flagship apps list

Global flags

flagship apps get

Get a Flagship app

npx wrangler flagship apps get [APP-ID]

Global flags

flagship apps update

Update a Flagship app

npx wrangler flagship apps update [APP-ID]

Global flags

flagship apps delete

Delete a Flagship app

npx wrangler flagship apps delete [APP-ID]

Global flags

flagship flags create

Create a feature flag in a Flagship app

npx wrangler flagship flags create [APP-ID] [KEY]

Global flags

flagship flags list

List feature flags in a Flagship app

npx wrangler flagship flags list [APP-ID]

Global flags

flagship flags get

Get a feature flag from a Flagship app

npx wrangler flagship flags get [APP-ID] [KEY]

Global flags

flagship flags update

Update a feature flag in a Flagship app

npx wrangler flagship flags update [APP-ID] [KEY]

Global flags

flagship flags set

Set the default variation served by a feature flag

npx wrangler flagship flags set [APP-ID] [KEY]

Global flags

flagship flags rules list

List targeting rules for a feature flag

npx wrangler flagship flags rules list [APP-ID] [KEY]

Global flags

flagship flags rules update

Update one targeting rule for a feature flag

npx wrangler flagship flags rules update [APP-ID] [KEY]

Global flags

flagship flags rules delete

Delete one targeting rule from a feature flag

npx wrangler flagship flags rules delete [APP-ID] [KEY]

Global flags

flagship flags rules reorder

Reorder targeting rules for a feature flag

npx wrangler flagship flags rules reorder [APP-ID] [KEY]

Global flags

flagship flags split

Split traffic across variations by percentage

npx wrangler flagship flags split [APP-ID] [KEY]

Global flags

flagship flags rollout

Roll out one variation to a percentage of traffic

npx wrangler flagship flags rollout [APP-ID] [KEY]

Global flags

flagship flags enable

Enable a feature flag

npx wrangler flagship flags enable [APP-ID] [KEY]

Global flags

flagship flags disable

Disable a feature flag

npx wrangler flagship flags disable [APP-ID] [KEY]

Global flags

flagship flags evaluate

Evaluate a feature flag with optional context

npx wrangler flagship flags evaluate [APP-ID] [KEY]

Global flags

flagship flags delete

Delete a feature flag from a Flagship app

npx wrangler flagship flags delete [APP-ID] [KEY]

Global flags

flagship flags changelog

Show the changelog for a feature flag

npx wrangler flagship flags changelog [APP-ID] [KEY]

Global flags