sdk-install — Claude Code skill: install the LaunchDarkly SDK
Installs and initializes the right LaunchDarkly SDK in your project: detects the stack, builds a plan, then edits the code.
npx skills add launchdarkly/ai-tooling --skill sdk-install -a claude-codeWhat sdk-install does
The skill runs three nested steps in order. detect reads the language, package manager, monorepo target, entrypoint and any existing LaunchDarkly usage. plan picks the SDK, lists the files to change and lays out the env plan. apply installs the packages, wires secrets into .env, adds init code and runs a compile check. Some points are blocking: the skill asks a structured question and waits before moving on.
Keys stay out of the first two steps. The SDK key, client-side ID or mobile key is collected at apply, when env wiring happens, and never hardcoded. When MCP is already configured, account status comes from OAuth instead of a prompt.
The project needs a supported language or framework, otherwise you fall back to the SDK recipes and the full catalog. A dual-SDK case — Next.js server plus client, or a user who wants frontend and backend — gets both packages and both inits, and the second one is not done until the lockfile and entrypoint show it. In a monorepo the skill stays inside the subtree you picked.
What it helps with
- wire a LaunchDarkly SDK into an unfamiliar project
- identify the language and package manager before installing
- move keys into env variables instead of hardcoding them
- show a file-change plan before touching anything
- set up server-side and client-side SDKs together
Example prompts for the agent
- set up the LaunchDarkly SDK in this project
- install the SDK for both the frontend and the backend
- verify the SDK install and that the code still compiles
How to install sdk-install
1Skills CLI (Vercel)
npx skills add launchdarkly/ai-tooling --skill sdk-install -a claude-code2Manually: put the files in place
~/.claude/skills/sdk-install/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/sdk-install/
1Skills CLI (Vercel)
npx skills add launchdarkly/ai-tooling --skill sdk-install -a codex2Manually: put the files in place
.agents/skills/sdk-install/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add launchdarkly/ai-tooling --skill sdk-install -a cursor2Manually: put the files in place
.cursor/skills/sdk-install/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install launchdarkly/ai-tooling sdk-install2Manually: put the files in place
.github/skills/sdk-install/SKILL.md1Skills CLI (Vercel)
npx skills add launchdarkly/ai-tooling --skill sdk-install -a gemini-cli2Platform CLI
gemini skills install https://github.com/launchdarkly/ai-tooling --path skills/onboarding/sdk-installManually: put the files in place
.devin/skills/sdk-install/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add launchdarkly/ai-tooling --skill sdk-install -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about sdk-install
How do I install sdk-install in Claude?
Run npx skills add launchdarkly/ai-tooling --skill sdk-install -a claude-code. The skill then sits at ~/.claude/skills/sdk-install/SKILL.md.
What does sdk-install do?
It walks through LaunchDarkly SDK setup in three steps: detect, plan, apply. You end up with the package installed, env variables wired and init code checked by a compile pass.
Do I need LaunchDarkly keys up front?
No. Detect and plan run without them; the SDK key or client-side ID is only needed at apply, when the skill writes the environment variables.
Source text
SKILL.md · Apache-2.0
--- name: sdk-install description: "Install and initialize the correct LaunchDarkly SDK during onboarding by running nested skills in order: detect, plan, apply. Parent onboarding Step 4 is first flag." license: Apache-2.0 compatibility: Requires a supported language/framework in the project. SDK credentials are required by [Apply](apply/SKILL.md), not for [Detect](detect/SKILL.md) / [Plan](plan/SKILL.md) alone (see parent onboarding **Prerequisites**). metadata: author: launchdarkly version: "0.2.0" --- # LaunchDarkly SDK Install (onboarding) Installs and initializes the right LaunchDarkly SDK for the user’s project by following **three nested skills in order**. **Do not** skip ahead to feature flags here—the parent [LaunchDarkly onboarding](../SKILL.md) continues with **Step 4: First flag**. ## Prerequisites - Project context from parent **Step 1: Explore the Project** (reuse it; only re-run deep detection if something is unclear) - **SDK key / client-side ID / mobile key:** Needed when you reach [Apply code changes](apply/SKILL.md) (env wiring). **Do not** ask the user for these during detect or plan solely because you opened this skill—follow parent onboarding: account status is inferred via MCP OAuth when MCP is already configured, or surfaced at D7 in apply; key material is collected at apply (see parent [Prerequisites](../SKILL.md#prerequisites)). ## Key types (summary) | SDK Type | Variable (logical) | Source in LaunchDarkly | |-------------|---------------------------|-------------------------------| | Server-side | `LAUNCHDARKLY_SDK_KEY` | Environments → SDK key | | Client-side | Client-side ID (bundler-prefixed env names) | Environments → Client-side ID | | Mobile | `LAUNCHDARKLY_MOBILE_KEY` | Environments → Mobile key | **Never hardcode keys.** Full env rules, consent, and bundler tables: [Apply code changes](apply/SKILL.md) Step 2. ## Workflow — run these nested skills in order Execute **all three** unless the [detect decision tree](detect/SKILL.md#decision-tree) short-circuits (e.g. skip to apply only). Each nested skill may contain decision points — some **blocking** (marked `D<N> -- BLOCKING`, where you must call your structured question tool and wait for the user's response before continuing) and some **non-blocking** (where you present information and continue unless the user objects). Do NOT batch tool calls across blocking boundaries. | Order | Nested skill | Role | |-------|----------------|------| | 1 | [Detect repository stack](detect/SKILL.md) | Language, package manager, monorepo target, entrypoint, existing LD usage | | 2 | [Generate integration plan](plan/SKILL.md) | SDK choice, files to change, env plan -- presented to user (non-blocking; see plan SKILL.md D6) | | 3 | [Apply code changes](apply/SKILL.md) | Install package(s), `.env` / secrets with consent, init code, compile check (**both** tracks when [dual-SDK plan](plan/SKILL.md#dual-sdk-integrations)) | Shared references for all steps: [SDK recipes](../references/sdk/recipes.md), [SDK snippets](../references/sdk/snippets/). ### After Step 3 completes Continue with the parent skill: - **Step 4:** [First flag](../SKILL.md#step-4-first-flag) Do not add standalone “sample flag” evaluation in this skill unless the user explicitly needs a throwaway check; the parent flow creates the first flag in order. ## Guidelines - Match existing codebase conventions for imports, config, and style. - Prefer TypeScript in TypeScript projects. - If the project uses a shared config layer, initialize LaunchDarkly there. - Add `.env.example` entries when the project uses dotenv. - **Dependency scope:** Add only LaunchDarkly SDK package(s) from the recipe unless the user **explicitly approves** upgrading or adding other packages ([Apply — Permission before changing other dependencies](apply/SKILL.md#permission-before-changing-other-dependencies)). ## Edge cases - **Multiple environments (e.g. Next.js server + client) or user asked for frontend + backend:** Use a **dual-SDK** [plan](plan/SKILL.md#dual-sdk-integrations) and [apply](apply/SKILL.md) **both** packages and **both** inits—never summarize the second SDK as done without lockfile + entrypoint evidence. - **Monorepo:** Integrate the package the user chose in parent onboarding; stay within that subtree. - **SDK already installed and initialized:** Parent may skip this handoff—see parent **Edge Cases** and [detect decision tree](detect/SKILL.md#decision-tree). - **Unsupported or uncommon stack:** Use [SDK recipes](../references/sdk/recipes.md) and the [full SDK catalog](https://launchdarkly.com/docs/sdk). ## References - [Detect repository stack](detect/SKILL.md) - [Generate integration plan](plan/SKILL.md) - [Apply code changes](apply/SKILL.md) - [SDK recipes](../references/sdk/recipes.md) - [SDK snippets](../references/sdk/snippets/) - [LaunchDarkly onboarding (parent)](../SKILL.md)
© launchdarkly · Apache-2.0 · launchdarkly/ai-tooling