For Developers

Everything you need to ship with confidence

CLI, SDKs, a full UI, and the config format that finally makes sense.

CLI

One tool for flags, config, and agents

Structured JSON output on every command. Built for scripts, agents, and humans alike.

CommandDescription
qfg flag listList all feature flags
qfg flag createCreate a new flag
qfg flag setUpdate a flag value
qfg evalEvaluate a flag locally
qfg schema flagShow flag JSON schema
qfg importImport from another platform
qfg mcp serveStart MCP server
~ qfg flag list --output json --fields key,valueType
{
  "data": [
    { "key": "checkout-v2", "valueType": "bool" },
    { "key": "new-pricing", "valueType": "string" },
    { "key": "api-rate-limit", "valueType": "int" }
  ],
  "meta": { "count": 3 }
}

SDKs

Evaluate flags in three lines

Initialize the client, evaluate a flag, get a value. Type-safe and straightforward.

1import { QuonfigClient } from "@quonfig/sdk-node";
2
3const client = new QuonfigClient({
4 apiKey: "qf_sk_production_a8f7d3e2b1c4",
5});
6
7// Evaluate a feature flag
8const enabled = client.isEnabled("checkout-v2", {
9 user: { email: "alice@acme.com", plan: "enterprise" },
10});
11
12// Get a config value
13const price = client.get("pricing.monthly", {
14 user: { plan: "enterprise" },
15});

Config Format

JSON you can actually read

Every feature flag is a file. Every field has a purpose. No proprietary schema to learn.

feature-flags/checkout-v2.json
1{
2 "key": "checkout-v2",
3 "type": "feature_flag",
4 "valueType": "bool",
5 "sendToClientSdk": true,
6 "default": {
7 "rules": [{
8 "criteria": [{ "operator": "ALWAYS_TRUE" }],
9 "value": { "type": "bool", "value": false }
10 }]
11 },
12 "environments": [{
13 "id": "production",
14 "rules": [{
15 "criteria": [{
16 "propertyName": "user.plan",
17 "operator": "PROP_IS_ONE_OF",
18 "valueToMatch": {
19 "type": "string_list",
20 "value": ["enterprise"]
21 }
22 }],
23 "value": { "type": "bool", "value": true }
24 }]
25 }]
26}

key

Human-readable, also the filename

default.rules

Fallback when no environment matches

environments

Per-env overrides with targeting rules

criteria

26+ operators for flexible targeting

Workflow

From edit to production in seconds

Make a change in the UI or via CLI. Validation runs automatically. SDKs pick up the new config in real time.

Edit via UI or CLI
Validation
Git commit (automatic)
Cache updates
SDKs get new config

Start building

Full UI. Powerful CLI. Agent-ready. Everything you need to ship with confidence.