Get started

What's new in Flagify

New features, improvements, and fixes. Subscribe to stay up to date.

v1.1.0

Flag health: catch no-op targeting rules before they burn you

Detect targeting rules whose valueOverride equals the flag's defaultValue — a silent no-op that sends the same value to 100% of users. Surfaced in the dashboard banner, the CLI, and Flagify AI.

A targeting rule with rolloutPercentage=50 and valueOverride=true only splits users between true and true if the flag’s defaultValue is also true — users outside the rollout fall through to defaultValue, so 100% of users receive the same value the rule would serve. The rule is a silent no-op.

This release detects that configuration automatically across every project.

Dashboard — Flag Health banner

The Overview page now surfaces rule_value_matches_default warnings alongside the existing env_mismatch critical checks. Each warning shows the affected flag, the environment, and a one-line fix hint.

CLI — flagify flags health

A new subcommand scans the current project and prints every issue detected server-side.

flagify flags health --project <project-id>

JSON output (for CI gating) includes the fix field with a remediation suggestion. Exit code is always 0 — use jq -e 'length == 0' to fail builds when issues appear.

Flagify AI

The in-app assistant gained a get_flag_health tool, so asking “which flags have issues?” now reads the real health endpoint instead of guessing from the flag list.

Docs

Packages affected

  • flagifyhq/api — new rule_value_matches_default issue type on /v1/projects/{pid}/overview/health
  • @flagify/cliv1.5.0, adds flagify flags health
  • Dashboard + Website — Flag Health banner extended, CLI docs updated
v1.0.4

Critical fixes, SSE stability, and API improvements

Fixes race conditions, unhandled rejections, SSE reconnect state, deterministic variant hashing, and renames FlagifyFlaggy to FlagifyFlag.

Critical fixes

  • Race condition prevention — deduplicate concurrent refetch calls to prevent overlapping flag syncs
  • Config validation — throw on missing projectKey or publicKey instead of silently failing
  • Secret key header — send secretKey as x-secret-key header when provided (server-side evaluation)
  • Deterministic variant distribution — use FNV-1a hash for consistent A/B test assignment across sessions

High-severity fixes

  • Frozen HTTP headers — prevent mutation of API key headers after client initialization
  • Multiline SSE support — handle multiline data: fields per the SSE specification
  • React hooks loading state — hooks return undefined before client is ready, preventing flash of wrong content
  • NestJS typed constants — use typed constant key instead of untyped any cast in middleware
  • Astro single init — middleware initializes client only once, skipping env reads on subsequent requests
  • Cookie security — restrict cookie overrides to dev environment only

Medium-severity improvements

  • Rename FlagifyFlaggy to FlagifyFlag — professional public API naming
  • Event emitter pattern — replace single onFlagChange callback with on/off event emitter
  • Project key header — send projectKey as x-project-key header in all HTTP requests
  • React hooks optimization — replace void version hack with useMemo
  • Fetch timeout — add 10s timeout to all fetch calls via AbortSignal.timeout
  • Retry with backoff — initial syncFlags retries once with 1s delay on failure
  • Provider reactivityFlagifyProvider recreates client when user, realtime, or polling options change
  • JSDoc fix — corrected the API URL in the @flagify/node JSDoc example

Low-severity fixes

  • Unhandled promise rejection — catch evaluateWithUser promise in onInitialSync callback
  • SSE reconnect state — reset hasConnectedBefore on disconnect so reconnect fires onConnected correctly

Packages affected

  • @flagify/node
  • @flagify/react
  • @flagify/nestjs
  • @flagify/astro
v0.0.3

Browser auth, segments, targeting, and config commands

Browser-based login flow, segments and targeting commands, config set/get, improved AI editor templates, and a boolean toggle guard.

Browser-based login

The CLI now opens your browser to complete authentication — no more copying tokens manually.

flagify login

After login, your workspace and project are selected automatically. Use whoami to check the current session.

flagify whoami

Segments commands

flagify segments list
flagify segments create <name>
flagify segments delete <id>

Targeting commands

flagify targeting list <flag-key>
flagify targeting add <flag-key>
flagify targeting remove <flag-key> <rule-id>

Config commands

Read and write config values without editing the file directly.

flagify config set workspace my-workspace
flagify config get workspace

Improvements

  • flagify flags toggle now rejects non-boolean flags
  • Styled help output with better readability
  • Updated AI editor templates (Claude, Cursor, Copilot, Windsurf) with full SDK docs and CLI reference
  • Slugs stored in config for faster resolution after login
v0.0.2

npm README

Added npm README with install and usage instructions.

npm README

Added a dedicated README for the npm package with install instructions and command reference.

v0.0.1

Initial CLI release

First release of the Flagify CLI — authenticate, manage flags, environments, projects, and API keys from the terminal.

Initial release

The Flagify CLI is available via Homebrew and npm.

brew install flagifyhq/tap/flagify
# or
npm install -g @flagify/cli

Commands

  • flagify login — authenticate with your Flagify account
  • flagify flags list / toggle / create — manage feature flags
  • flagify environments list — list project environments
  • flagify projects list — list workspace projects
  • flagify workspaces list — list your workspaces
  • flagify keys generate / list / revoke — manage API keys
  • flagify config — view and set CLI configuration
  • flagify completion — generate shell completions
  • flagify ai-setup — generate AI editor config (Claude, Cursor, Copilot, Windsurf)

Other

  • Auto token refresh on 401
  • Interactive pickers for workspace and project selection
  • Pretty terminal output with Lipgloss
  • --yes flag to skip confirmation prompts