launchdarkly/ai-tooling11 files

Projects

Guide for setting up LaunchDarkly projects in your codebase. Helps you assess your stack, choose the right approach, and integrate project management that makes sense for your architecture.

Specification
Skill ID
launchdarkly/ai-tooling/projects
Publisher
launchdarkly
Repository
ai-tooling
Installs
0
Files
11
Requires
Requires LaunchDarkly API access token with projects:write permission or LaunchDarkly MCP server.
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

launchdarkly/ai-tooling/projectsInstalls these files
  • README.md
  • SKILL.md
  • references/admin-tooling.md
  • references/env-config.md
  • references/go-setup.md
  • references/iac-automation.md
  • references/multi-language-setup.md
  • references/nodejs-setup.md
  • references/project-cloning.md
  • references/python-setup.md
  • references/quick-start.md

What this skill tells the agent

LaunchDarkly Projects Setup

You're using a skill that will guide you through setting up LaunchDarkly project management in a codebase. Your job is to explore the codebase to understand the stack and patterns, assess what approach makes sense, choose the right implementation path from the references, execute the setup, and verify it works.

Prerequisites

Choose one:

  • LaunchDarkly API access token with projects:write permission
  • LaunchDarkly MCP server configured in your environment

Core Principles

  1. Understand First: Explore the codebase to understand the stack and patterns.
  2. Choose the Right Fit: Select an approach that matches your architecture.
  3. Follow Conventions: Respect existing code style and structure.
  4. Verify Integration: Confirm the setup works: the agent performs checks and reports results.

API Key Detection

Before prompting the user for an API key, try to detect it automatically:

  1. Check environment variables: Look for LAUNCHDARKLY_API_KEY, LAUNCHDARKLY_API_TOKEN, or LD_API_KEY
  2. Check MCP config: If using Claude, read ~/.claude/config.json for mcpServers.launchdarkly.env.LAUNCHDARKLY_API_KEY
  3. Prompt user: Only if detection fails, ask the user for their API key

See Quick Start for API usage patterns.

What Are Projects?

Projects are LaunchDarkly's top-level organizational containers that hold:

  • All your configs
  • Feature flags and segments
  • Multiple environments (Production and Test created by default)

Think of projects as separate applications, services, or teams that need their own isolated set of configurations.

Project Setup Workflow

Step 1: Explore the Codebase

Before implementing anything, understand the existing architecture:

  1. Identify the tech stack:
  • What language(s)? (Python, Node.js, Go, Java, etc.)
  • What framework(s)? (FastAPI, Express, Spring Boot, etc.)
  • Is there an existing LaunchDarkly integration?
  1. Check environment management:
  • How are environment variables stored? (.env files, secrets manager, config files)
  • Where is configuration loaded? (startup scripts, config modules)
  • Are there existing LaunchDarkly SDK keys?
  1. Look for patterns:
  • Are there existing API clients or service modules?
  • How is external API integration typically done?
  • Is there a CLI, scripts directory, or admin tooling?
  1. Understand the use case:
  • Is this a new project being set up?
  • Adding to an existing LaunchDarkly integration?
  • Part of a multi-service architecture?
  • Need for project cloning across regions/teams?

Step 2: Assess the Situation

Based on your exploration, determine the right approach:

ScenarioRecommended Path
New project, no LaunchDarkly integrationQuick Setup - Create project and save SDK keys
Existing LaunchDarkly usageAdd to Existing - Create new project or use existing
Multiple services/microservicesMulti-Project - Create projects per service
Multi-region or multi-tenantProject Cloning - Clone template project
Infrastructure-as-Code (IaC) setupAutomated Setup - Script-based creation
Need project management toolingCLI/Admin Tools - Build project management utilities

Step 3: Choose Your Implementation Path

Select the reference guide that matches your stack and use case:

By Language/Stack:

  • Python Implementation - For Python applications (FastAPI, Django, Flask)
  • Node.js/TypeScript Implementation - For Node.js/Express/NestJS applications
  • Go Implementation - For Go services
  • Multi-Language Setup - For polyglot architectures

By Use Case:

  • Quick Start - Create first project and get SDK keys
  • Environment Configuration - Save SDK keys to .env, secrets, or config
  • Project Cloning - Clone projects for regions/teams
  • IaC/Automation - Terraform, scripts, CI/CD integration
  • Admin Tooling - Build CLI or admin utilities

Step 4: Implement the Integration

Follow the chosen reference guide to implement project management. Key considerations:

  1. API Authentication:
  • Store API token securely
  • Follow existing secrets management patterns
  • Never commit tokens to version control
  1. Project Naming:
  • Use consistent, descriptive names
  • Follow existing naming conventions
  • Project keys: lowercase, hyphens, start with letter
  1. SDK Key Management:
  • Extract and store SDK keys for each environment
  • Use the same pattern as other secrets in your codebase
  • Consider separate keys for test/staging/production
  1. Error Handling:
  • Handle existing projects gracefully (409 conflict)
  • Provide clear error messages
  • Don't fail silently

Step 5: Verify the Setup

After creating the project, verify it works:

  1. Fetch to confirm it exists. Prefer the MCP get-project tool over raw curl — it returns a typed object you can inspect directly. If you must call the REST API: ``bash curl -X GET "https://app.launchdarkly.com/api/v2/projects/{projectKey}?expand=environments" \ -H "Authorization: {api_token}" ` **Do not pipe the response straight into a .environments.items[]-style jq filter.** The shape of environments varies by expand parameter — sometimes it's {items: [...]}, sometimes a bare array — and a hand-rolled filter will fail with Cannot index array with string "items". Run jq -e . first to inspect the actual shape, or use jq '.environments | if type == "object" then .items else . end'` to handle both.
  1. Test SDK integration: Run a quick verification to ensure the SDK key works: ```python import ldclient from ldclient.config import Config

ldclient.set_config(Config("{sdk_key}"))

# SDK initializes successfully

# Always flush events before closing — trailing events are at risk of being

# lost otherwise, in short-lived scripts and long-running services alike. ldclient.get().flush() ldclient.get().close()


3. **Report results:**
   - ✓ Project exists and has environments
   - ✓ SDK keys are present and valid
   - ✓ SDK can initialize (or flag any issues)

## Project Key Best Practices

Project keys must follow these rules:

✓ Good examples:

  • "support-ai"
  • "chat-bot-v2"
  • "internal-tools"

✗ Bad examples:

  • "Support_AI" # No uppercase or underscores
  • "123-project" # Must start with letter
  • "my.project" # No dots allowed

**Naming Recommendations:**
- Keep keys short but descriptive
- Use team/service/purpose as naming scheme
- Be consistent across your organization

## Common Organization Patterns

### By Team

platform-ai → Platform Team Agent customer-ai → Customer Success Team Agent internal-ai → Internal Tools Team Agent


### By Application/Service

mobile-ai → Mobile App configs web-ai → Web App configs api-ai → API Service configs


### By Region/Deployment

ai-us → US Region ai-eu → Europe Region ai-apac → Asia-Pacific Region


## Edge Cases

| Situation | Action |
|-----------|--------|
| Project already exists | Check if it's the right one; use it or create with different key |
| Need multiple projects | Create separately for each service/region/team |
| Shared configs across services | Use same project, separate by SDK context |
| Token lacks permissions | Request `projects:write` or use MCP server |
| Project name conflict | Keys must be unique, names can be similar |

## What NOT to Do

- Don't create projects without understanding the use case first

Use this skill in a project

Open any RiverX project, search the Skills panel for launchdarkly/ai-tooling/projects, and install it in one click.

Use this skill