Skip to main content

crewship feature-flag

Manage feature flags for the current workspace. The CLI surfaces the override layer (per-workspace on/off) plus a list view that includes the instance default, and a delete for removing a flag definition outright. Creating or renaming a flag definition is still an instance-admin operation that lives in the web UI, direct API calls, or a manifest apply — see the API reference below.
The command accepts the alias crewship flag.

Subcommands


crewship feature-flag list

Lists every flag the instance knows about with three columns of state plus the resolved effective value:
The global --format flag is honoured (table, json, yaml).

crewship feature-flag enable / disable

Writes a per-workspace override. Idempotent — repeating the command is a no-op. The override always wins over the instance default and the rollout percentage, so use these to opt a single workspace into or out of a flag regardless of the broader rollout state.

crewship feature-flag inherit

Removes the override. The next read of the flag reverts to the instance default + gradual-rollout percentage logic. Use this when you want a previously-pinned workspace to follow the instance default again.

crewship feature-flag delete

Deletes the flag definition itself, not just this workspace’s override — the delete cascades to every workspace’s override row for the key, instance-wide. This is a stronger operation than inherit; prefer inherit if you only want to stop overriding for the current workspace. Requires OWNER / ADMIN (canRole "manage") and prompts for confirmation unless --yes / -y is passed.

API

The CLI is a thin wrapper over six endpoints. Each request uses the current authenticated workspace context; these routes do not take a workspace_id query parameter. Flag definition create/update (POST / PATCH) intentionally still has no CLI wrapper — creating or renaming a flag is an instance-admin event that should land via a code change, a migration, a manifest apply, or the admin UI rather than an ad-hoc CLI call. delete is the exception: it’s the cleanup counterpart needed to safely exercise a flag’s full lifecycle (e.g. a throwaway flag created via apply) without relying on apply’s broader manifest-diff delete semantics.

Common errors

  • API error (404): Feature flag not found — the <key> you passed doesn’t exist on this instance. Run crewship feature-flag list to see the catalog.
  • API error (401) — authenticate with crewship login (or configure a CLI token) and select a workspace.
  • API error (403): Forbidden — override writes and delete require OWNER / ADMIN (canRole "manage"). MEMBER and VIEWER roles can only list.
  • API error (400) — the override request is malformed or has no explicit boolean enabled value; inherit and delete also reject an empty key.

See also