Flags and experiments
CLI commands to roll out feature flags and run A/B tests on paywalls.
These commands create and roll out feature flags, fix them for one person, and run A/B tests from draft to a concluded winner. Studio's Feature flags and A/B tests pages do the same.
Feature flags and A/B tests are in early access. Ask us on Discord, or email support@voidhash.com on a paid plan, to turn them on for your team.
Feature flags
| Command | What it does | Key flags |
|---|---|---|
flag list | Flags with their state and variants. | --archived |
flag view [flag] | State, variants, allow and deny lists, and overrides. | |
flag create | Creates a flag, off unless you pass --rollout. | --key, --type boolean|string|number|json, --variant (repeat), --description, --rollout 10% |
flag enable [flag] | Turns a flag on. | --rollout |
flag disable [flag] | Turns a flag off for everyone, overrides included. Asks first. | |
flag rollout [flag] [percent] | Sets the share of people who get it. Lowering it asks first. | |
flag edit [flag] | Changes a flag's key or description. | --key, --description |
flag variants set [flag] [value…] | Sets exactly the values a flag hands out. Removing one asks first. | |
flag override [flag] [person] [setting] | Fixes a flag for one person: on, off, a variant, or clear. | --note |
flag target [flag] [person] [list] | Puts a person on the allow or deny list, or clears them. | |
flag evaluate [person] | What a person gets from each flag, and why. | --flag (repeat) |
flag archive [flag] | Archives a flag; apps stop receiving it. Asks first when it's on. | |
flag restore [flag] | Restores an archived flag as it was. |
Experiments
| Command | What it does | Key flags |
|---|---|---|
experiment list | Experiments with their status and arms. | --status draft|running|paused|concluded, --archived |
experiment view [experiment] | Status, metric and the paywall each arm shows where. | |
experiment create | Sets up a draft experiment. | --name, --hypothesis, --metric (set it, such as $subscription.created), --location, --arm, --control, --weights |
experiment edit [experiment] | Changes its setup. Metrics change only in a draft, arms not while running. | Same as create, plus --description, --secondary-metric |
experiment start [experiment] | Starts or resumes it at its locations. Asks first. | |
experiment pause [experiment] | Pauses it: everyone sees the control arm. | |
experiment results [experiment] | Each arm's conversion, with a verdict that says when it's too early to tell. | |
experiment conclude [experiment] | Ends it for good with a winner. Shows the results and asks first. | --winner (default: the control) |
experiment archive [experiment] | Archives a draft or concluded experiment. | |
experiment restore [experiment] | Restores an archived experiment. |
Always pass --metric, the goal event. Without it, results count purchase_completed, an event
Voidhash never sends, so every arm shows 0 conversions. See Conversions
for which built-in event to use.
--arm takes NAME=PAYWALL with --location, or NAME=LOCATION:PAYWALL[,LOCATION:PAYWALL].
Repeat it for each arm; the first is the control unless --control names another, and
--weights 60,40 splits traffic unevenly.
Example
voidhash flag create --key new-onboarding --rollout 10%
voidhash experiment create --name "Annual first" --metric '$subscription.created' \
--location onboarding --arm Control=pro --arm Annual=annual-firstNext steps
- How a flag decides: targeting, overrides and rollouts.
- A/B test results: conversions and verdicts.
- Analytics and ads: measure the results.
Something wrong or missing on this page? Tell us by email or on Discord.