Configure Clay across development, staging, and production environments. Use when setting up multi-environment deployments, configuring per-environment secrets, or implementing environment-specific Clay configurations. Trigger with phrases like "clay environments", "clay staging", "clay dev prod", "clay environment setup", "clay config by env".
Use the skills CLI to install this skill with one command. Auto-detects all installed AI assistants.
Method 1 - skills CLI
npx skills i jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/clay-pack/skills/clay-multi-env-setupMethod 2 - openskills (supports sync & update)
npx openskills install jeremylongshore/claude-code-plugins-plus-skillsAuto-detects Claude Code, Cursor, Codex CLI, Gemini CLI, and more. One install, works everywhere.
Installation Path
Download and extract to one of the following locations:
No setup needed. Let our cloud agents run this skill for you.
Select Provider
Select Model
Best for coding tasks
No setup required
Configure Clay across development, staging, and production environments.
| Environment | Purpose | API Keys | Data |
|---|---|---|---|
| Development | Local dev | Test keys | Sandbox |
| Staging | Pre-prod validation | Staging keys | Test data |
| Production | Live traffic | Production keys | Real data |
config/
├── clay/
│ ├── base.json # Shared config
│ ├── development.json # Dev overrides
│ ├── staging.json # Staging overrides
│ └── production.json # Prod overrides
{
"timeout": 30000,
"retries": 3,
"cache": {
"enabled": true,
"ttlSeconds": 60
}
}{
"apiKey": "${CLAY_API_KEY}",
"baseUrl": "https://api-sandbox.clay.com",
"debug": true,
"cache": {
"enabled": false
}
}{
"apiKey": "${CLAY_API_KEY_STAGING}",
"baseUrl": "https://api-staging.clay.com",
"debug": false
}{
"apiKey": "${CLAY_API_KEY_PROD}",
"baseUrl": "https://api.clay.com",
"debug": false,
"retries": 5
}// src/clay/config.ts
import baseConfig from '../../config/clay/base.json';
type Environment = 'development' | 'staging' | 'production';
function detectEnvironment(): Environment {
const env = process.env.NODE_ENV || 'development';
# .env.local (git-ignored)
CLAY_API_KEY=sk_test_dev_***env:
CLAY_API_KEY: ${{ secrets.CLAY_API_KEY_${{ matrix.environment }} }}# AWS Secrets Manager
aws secretsmanager get-secret-value --secret-id clay/production/api-key
# GCP Secret Manager
gcloud secrets versions access latest --secret=clay-api-key
# HashiCorp Vault
vault kv get -field=api_key secret/clay/production// Prevent production operations in non-prod
function guardProductionOperation(operation: string): void {
const config = getClayConfig();
if (config.environment !== 'production') {
console.warn(`[clay] ${operation} blocked in ${config.environment}`);
const featureFlags: Record<Environment, Record<string, boolean>> = {
development: {
newFeature: true,
betaApi: true,
},
staging: {
newFeature: true,
betaApi: false,
},
production: {
newFeature:
Set up the base and per-environment configuration files.
Add logic to detect and load environment-specific config.
Store API keys securely using your secret management solution.
Implement safeguards for production-only operations.
| Issue | Cause | Solution |
|---|---|---|
| Wrong environment | Missing NODE_ENV | Set environment variable |
| Secret not found | Wrong secret path | Verify secret manager config |
| Config merge fails | Invalid JSON | Validate config files |
| Production guard triggered | Wrong environment | Check NODE_ENV value |
const env = getClayConfig();
console.log(`Running in ${env.environment} with ${env.baseUrl}`);For observability setup, see clay-observability.