Skip to main content
FireWeave SDKs evaluate control points, optionally register targets, drive a release lifecycle, and record exposures and signals. Your application authenticates with a FireWeave project key and talks to fw-server. OpenFeature and the wire protocol still use the parameter name flagKey; the product name is control point.
The SDK is pre-release. As of 2026-08-17, npm latest for @fireweaveai/sdk is 2.1.0, @fireweaveai/web-sdk@2.1.0 is on npm, and PyPI has fireweave 0.1.0. Pin Node @2.1.02.0.0 is still on npm and still ships a direct PostHog adapter and ./posthog. The Go module and Java ai.fireweave:* (0.1.0-SNAPSHOT) remain unpublished (checkout / mvn install only). See Quickstart.

Quickstart

Install, initialize, evaluate a control point, record an outcome, and shut down — offline first, with real APIs.

SDKs

Five packages share one architecture: FireweaveProvider and FireweaveClient sit on FireweaveRuntime, which talks to a BackendAdapter.

Node.js, Bun, and Deno

@fireweaveai/sdkcontrolPoints, registerTarget. npm latest is 2.1.0; pin it. 2.0.0 still has PostHog / ./posthog.

Python

fireweave — snake_case control_points and register_target. PyPI 0.1.0: pip install 'fireweave[openfeature]'.

Go

github.com/FireWeave-HQ/fireweave-sdk/sdks/goFlags().Evaluate only. No registerTarget on master.

Java

ai.fireweave:*evaluate / boolean and string helpers. No env auto-read; close() does not flush.

Browser

@fireweaveai/web-sdk — synchronous reads, identify, STALE on prefetch timeout. npm 2.1.0; no env.

Compatibility

Type split, adapter matrix, and language gaps (register, namespaces, flush).

What you can do

These capabilities are implemented in the five packages (language differences are called out on the SDK pages):
  • Evaluate boolean, string, numeric, and object decisions. Evaluation returns a default on failure and does not throw.
  • OpenFeature providers in every language, so call sites can use getBooleanValue / language equivalents with flagKey.
  • Targets — Node registerTarget, Python register_target, Web identify. Go and Java have no registration API; pass targetingKey (and attributes) on each evaluate.
  • ReleasessetContext / start / complete / fail.
  • Exposuresrecord / flush. Evaluate-path emission is opt-in (sendExposure defaults false).
  • Signals — health, error, metric, and outcome (recordOutcome / language equivalent).
  • Capabilitiescapabilities.get() reports what this build and adapter can do. Guardrails are a typed stub (guardrails: false).
This site does not document wrap workflows, fw.isOn, working client-side guardrails, or OpenFeature Tracking (spec §6). Those are absent or unverified against the SDK.

Architecture and concepts

How it works

Evaluate, register, capture — the runtime path without console ramp or wrap stories.

Architecture

Provider + Client → Runtime → Adapter, lifecycle states, and the three fw-server paths.

Core concepts

Control points, targeting, releases, exposures, signals, capabilities, adapters.

OpenFeature

Providers, resolvers, and the flagKey boundary. Extensions stay on FireweaveClient.

Production, troubleshooting, reference

Configuration and auth

FW_API_URL, FW_PROJECT_API_KEY, Bearer auth. Java and Web do not read the environment.

Lifecycle

Initialize, READY / STALE, shutdown. Java close() does not flush exposures.

Errors

Fifteen error kinds and how they map onto OpenFeature codes.

Troubleshooting

Defaults that look like “off,” missing targeting keys, and Go/Java checkout installs.

Package index

Package names, peers, and what is actually published.

Node 2.0 → 2.1

Breaking changes from Node 2.0.0 (PostHog / ./posthog) to published 2.1.0.
Start with the Quickstart if you want a first evaluate in one sitting.
Last modified on August 18, 2026