Skip to main content
Local feature flags are the default provider: no external account, no persistence, and every isEnabled() call returns true.

Why

Local flags keep development unblocked: backend code can call tools.featureFlags without provisioning PostHog or LaunchDarkly projects. Tests stay deterministic because every flag evaluates to enabled.

Setup

No extra services or environment variables are required.

Behavior

Gotchas

  • getAll() is empty even though isEnabled() is always true — callers must not assume the cache contains every key.
  • exposedFlags still gates GraphQL output; an empty list means me.featureFlags returns [].

What’s next?