Skip to content

Flag Marshal

Overview

Flag Marshal inventories the feature flags in a local repository and reports the ones that are stale, missing from code or configuration, or referenced through keys it cannot safely resolve. Every finding carries its evidence and a confidence level.

Requires Node.js 20 or newer. Run it without installing anything:

npx @stackblender/flag-marshal scan .

scan always exits with code 0, so trying it in CI cannot break a build.

What it reads

Surface Support
Languages JavaScript, TypeScript, Java, Kotlin
Providers LaunchDarkly, OpenFeature, Unleash, Togglz
Framework configuration Spring @ConditionalOnProperty, application*.properties, application*.yml
Other configuration .env* feature switches
Your own helpers Method names declared in .flagmarshal.yml

A provider call counts as a flag only when the file imports that provider and the receiver is bound to it, so an unrelated isEnabled() or variation() is not reported. Computed keys are reported as unresolved and never assigned a guessed value.

Open source

Flag Marshal is MIT licensed. Source, issues, and the detection-problem form are on GitHub. Every command is free; there are no tiers, license keys, or accounts.

Flag keys can reveal unreleased features. Replace real keys with placeholders before posting anything publicly.