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.