CLI

Flag Marshal

Deprecated

Deprecated feature-flag analysis CLI. Version 0.2.0 is the final release; documentation is retained for reference.

Feature flags get created constantly and removed almost never. Flag Marshal scans a local repository for flags that are stale, missing from code or configuration, or referenced through keys it cannot resolve, and reports each finding with the evidence behind it and a confidence level.

It reads JavaScript, TypeScript, Java, and Kotlin, understands LaunchDarkly, OpenFeature, Unleash, Togglz, and Spring conditionals, and never guesses: a computed key is reported as unresolved, not assigned a value. It is open source under the MIT license.

Capabilities retained for reference

Evidence, not guesses

A call counts as a flag only when the file imports the provider and the receiver is bound to it.

Four languages, five providers

JavaScript, TypeScript, Java, Kotlin. LaunchDarkly, OpenFeature, Unleash, Togglz, Spring @ConditionalOnProperty.

Safe to try, strict when you want

scan always exits 0. check enforces owners, expiry, age, and a flag budget against a committed baseline or a pull request's base, so CI only fails on new debt.

Fits your pipeline

Annotations on GitHub pull requests and GitLab merge requests, human, JSON, Markdown, and SARIF output, and a trend view over the baseline's history.

Previews the cleanup

preview shows the diff that turns one flag permanently on or off in TypeScript and JavaScript, refuses anything it cannot rewrite exactly, and writes nothing.

Local only

No hosted backend, account, telemetry, or source upload.

Privacy

Analysis runs on your machine. Flag Marshal has no hosted backend, account, telemetry, or source upload. Flag keys can reveal unreleased features, so replace them with placeholders before posting anything publicly.

See the site privacy page for how this website itself handles data.