
Product
Socket for ClickUp Is Now Available
Create ClickUp tasks from Socket alerts, automate ticketing with custom rules, and keep alert and task status synchronized.
@shipeasy/sdk
Advanced tools
Shipeasy SDK — feature gates, runtime configs, experiments, and metrics for the Shipeasy hosted service.
The Shipeasy SDK for feature flags, dynamic configs, kill switches, A/B experiments, metric tracking, and SSR/i18n — for Node, Next.js, and Cloudflare Workers. Server-key only on the server; the browser uses its own client key.
📚 Full documentation: https://shipeasy-ai.github.io/sdk/ — also browsable under
docs/. This README is generated from those docs.
This SDK ships an installable agent skill — a copy-paste-ready guide to
configure() + new Client(user), testing, experiments, error reporting, and
more, with links the agent can pull for deeper docs:
docs/skill/SKILL.md · raw:
https://shipeasy-ai.github.io/sdk/skill/SKILL.mdnpx shipeasy-skill install → .claude/skills/shipeasy-typescript/SKILL.md
(or via the Shipeasy CLI: shipeasy docs skill --sdk typescript --install)Humans: you can copy that skill straight into your own project's agent skills
directory (e.g. .claude/skills/shipeasy-typescript/SKILL.md) so your coding agent
always uses the correct Shipeasy patterns. Every doc page and snippet is also
fetchable by URL — start from the manifest at https://shipeasy-ai.github.io/sdk/manifest.json.
npm install @shipeasy/sdk
# or
pnpm add @shipeasy/sdk
# or
yarn add @shipeasy/sdk
Per-framework setup (Next.js / Express / Cloudflare Workers) and the anon-id middleware are on the Installation page.
configure() once, then new Client(user) per requestimport { configure, Client } from "@shipeasy/sdk/server"; // or /client
configure({ apiKey: process.env.SHIPEASY_SERVER_KEY!,
attributes: (u: MyUser) => ({ user_id: u.id, plan: u.plan }) });
const flags = new Client(currentUser);
if (flags.getFlag("new_checkout")) { /* ship it */ }
Constructing new Client(user) before configure() throws.
| Page | What |
|---|---|
| Overview | The configure() + new Client(user) model. |
| Installation | Install, frameworks (Next / Express / Workers), configure() wiring. |
| Configuration | Keys, attributes, one-shot vs poll, every option. |
| Feature flags | getFlag, getFlagDetail, defaults. |
| Dynamic configs | getConfig, typed decode, defaults. |
| Kill switches | getKillswitch, named switches. |
| Experiments | getExperiment, logExposure, track. |
| Internationalization | SSR bootstrap + i18n loader tags. |
| Error reporting | see() structured error reporting. |
| Testing | configureForTesting / configureForOffline, overrides. |
| OpenFeature | ShipeasyProvider (OpenFeature server provider). |
| react native devtools | The SDK ships a shake-to-open devtools overlay for React Native / Expo apps at feature… |
| browser devtools | The in-browser devtools overlay ships inside the SDK, sharing one headless core (@shipe… |
| Advanced | Anon-id middleware, private attributes, sticky bucketing, SSR. |
Copy-paste snippets live under docs/snippets/
(release · metrics · i18n · ops); an installable agent skill is at
docs/skill/SKILL.md.
For unit tests, swap the live configure() for configureForTesting() — a drop-in sibling with no network, ever (no SDK key required). It replaces the active configuration with a network-free engine, seeds the values your code should see, and is read through the ordinary new Client(user). In this mode the rules never fetch, track() is a no-op, assign() logs no exposure, and telemetry is off — your tests never touch the network.
import { configureForTesting, Client, clearOverrides } from "@shipeasy/sdk/server"; // or /client
// Seed everything the code under test should see (no key, no network):
configureForTesting({
flags: { new_checkout: true },
configs: { upload_limits: { max_uploads: 50 } },
});
const flags = new Client({ user_id: "u_1" }); // construct once per callsite
flags.getFlag("new_checkout"); // true
flags.getConfig("upload_limits"); // { max_uploads: 50 }
clearOverrides(); // reset every seeded override back to the empty-blob default
More — the on-the-spot override helpers and a working example snapshot file — on the Testing page.
See LICENSE. Evaluation is tested against the cross-language
MurmurHash3 vectors in experiment-platform/04-evaluation.md.
FAQs
Shipeasy SDK — feature gates, runtime configs, experiments, and metrics for the Shipeasy hosted service.
We found that @shipeasy/sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Create ClickUp tasks from Socket alerts, automate ticketing with custom rules, and keep alert and task status synchronized.

Product
Create and manage Asana tasks directly from Socket alerts, with manual task creation, automated ticketing rules, and two-way sync.

Security News
Open VSX has removed three extension IDs from its malicious-extension list as the legitimate publishers they impersonated move to claim the names for themselves.