Three lines to
your first flag.
Install the SDK, wrap the change, turn the dial. Everything else — targeting, rollouts, rollbacks — happens at runtime.
import { Rheostat } from "@rheostat/node"const rh = new Rheostat(process.env.RH_KEY)const useNewCheckout = await rh.flag("new-checkout", user)if (useNewCheckout) // 5% today, 100% on Fridayreturn renderCheckoutV2(cart)return renderCheckout(cart)
from rheostat import Rheostatrh = Rheostat(os.environ["RH_KEY"])use_new_checkout = rh.flag("new-checkout", user)if use_new_checkout: # 5% today, 100% on Fridayreturn render_checkout_v2(cart)return render_checkout(cart)
import "github.com/rheostat/go"rh := rheostat.New(os.Getenv("RH_KEY"))useNew, _ := rh.Flag(ctx, "new-checkout", user)if useNew { // 5% today, 100% on Fridayreturn RenderCheckoutV2(cart)}return RenderCheckout(cart)
import dev.rheostat.Rheostat;var rh = new Rheostat(System.getenv("RH_KEY"));boolean useNew = rh.flag("new-checkout", user);if (useNew) // 5% today, 100% on Fridayreturn renderCheckoutV2(cart);return renderCheckout(cart);
Terminal
$ npm i @rheostat/nodeadded 1 package in 1.2s$ rh flag create new-checkout✓ created new-checkout (off)$ rh rollout new-checkout 5%✓ 5% of users · 12 rules · live$ rh watch new-checkoutp95 212 ms · errors 0.02% · okAn API that reads
like a sentence.
Every action in the dashboard is one call away. Versioned, idempotent and documented with runnable examples.
- GET
/v1/flagsList every flag in a project18 ms - POST
/v1/flagsCreate a flag with default rules24 ms - PATCH
/v1/flags/{key}/rolloutMove a flag to a new percentage21 ms - POST
/v1/flags/{key}/rollbackDial a flag back to 0% now16 ms - GET
/v1/runs/{id}/traceFetch an agent run with every span33 ms - DELETE
/v1/flags/{key}Archive a flag and its history19 ms
Pay for evaluations,
not seats.
Your first million evaluations every month are free. After that you pay for what the SDK actually asks — invite the whole team.
Shipped this month.
- Sep 24v4.2.0
Rollback rules now accept agent judge scores
Trigger a rollback when any judge in a run scores below your threshold.
- Sep 17v4.1.3
Go SDK: zero-allocation flag evaluation
Hot paths evaluate a flag in 40 ns with no heap allocation.
- Sep 09v4.1.0
MCP server for coding agents
Let your coding agent create, flip and clean up flags with your permissions.
- Sep 02v4.0.2
Warehouse export to Parquet
Every evaluation and trace, partitioned by day, in your own bucket.
Developers ship on day one.
“Installed the SDK, wrapped one function, deployed. The first flag was live before my coffee was cold.”
“The TypeScript types are generated from our own flag definitions. Typos in flag keys are compile errors now.”
“Forty nanoseconds per evaluation in Go, no allocations. It does not show up in our profiles at all.”
API questions.
- Is there a rate limit?
- The evaluation API has no rate limit. The management API allows 100 requests a second per token.
- Do SDKs work offline?
- Yes. SDKs cache the last rules and keep evaluating locally if the network is gone.
- Which languages are supported?
- Node, Python, Go, Java, Ruby, .NET, PHP, Rust, Swift, Kotlin and the browser.
- Is there a Terraform provider?
- Yes, and a CLI. Flags, rules and environments can all live in your repository.
Built in the open,
with 18k developers.
- 18.4k
- GitHub stars
- 412
- contributors
- 2.1M
- weekly SDK downloads