ID

ideogram-multi-env-setup

Configure and isolate Ideogram API settings and keys across different software development environments.

Install

mkdir -p .claude/skills/ideogram-multi-env-setup && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5433" && unzip -o skill.zip -d .claude/skills/ideogram-multi-env-setup && rm skill.zip

Installs to .claude/skills/ideogram-multi-env-setup

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Configure Ideogram across development, staging, and production environments.
76 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Isolate API keys per environment
  • Configure environment-specific model and speed settings
  • Implement secure secret management

How it works

The workflow detects the current environment and retrieves the corresponding API key and configuration settings, ensuring isolation between development, staging, and production.

Inputs & outputs

You give it
Environment variables and configuration settings
You get back
Validated Ideogram configuration object

When to use ideogram-multi-env-setup

  • Isolating dev and prod API keys
  • Configuring environment-specific caches
  • Setting up CI/CD secret management
  • Defining per-environment timeouts
  • Managing model/speed settings

About this skill

Ideogram Multi-Environment Setup

Overview

Configure Ideogram API access across development, staging, and production with isolated API keys, environment-specific model/speed settings, and proper secret management. Each environment gets its own key and configuration to prevent cross-environment issues.

Environment Strategy

EnvironmentAPI Key SourceModelSpeedCacheBilling
Development.env.localV_2_TURBOTURBODisabledMinimal top-up
StagingCI/CD secretsV_2DEFAULT5 min TTLModerate
ProductionSecret managerV_2 or V3DEFAULT10 min TTLFull auto top-up

Instructions

Step 1: Configuration Structure

// config/ideogram.ts
type Environment = "development" | "staging" | "production";

interface IdeogramConfig {
  apiKey: string;
  defaultModel: string;
  renderingSpeed: string;
  timeout: number;
  maxRetries: number;
  concurrency: number;
  cache: { enabled: boolean; ttlSeconds: number };
  debug: boolean;
}

const configs: Record<Environment, Omit<IdeogramConfig, "apiKey">> = {
  development: {
    defaultModel: "V_2_TURBO",
    renderingSpeed: "TURBO",
    timeout: 30000,
    maxRetries: 1,
    concurrency: 2,
    cache: { enabled: false, ttlSeconds: 60 },
    debug: true,
  },
  staging: {
    defaultModel: "V_2",
    renderingSpeed: "DEFAULT",
    timeout: 60000,
    maxRetries: 3,
    concurrency: 5,
    cache: { enabled: true, ttlSeconds: 300 },
    debug: false,
  },
  production: {
    defaultModel: "V_2",
    renderingSpeed: "DEFAULT",
    timeout: 60000,
    maxRetries: 5,
    concurrency: 8,
    cache: { enabled: true, ttlSeconds: 600 },
    debug: false,
  },
};

export function getIdeogramConfig(): IdeogramConfig {
  const env = detectEnvironment();
  const apiKey = getApiKeyForEnv(env);

  if (!apiKey) {
    throw new Error(`IDEOGRAM_API_KEY not set for environment: ${env}`);
  }

  return { ...configs[env], apiKey };
}

function detectEnvironment(): Environment {
  const env = process.env.NODE_ENV || "development";
  if (env === "production") return "production";
  if (env === "staging" || process.env.VERCEL_ENV === "preview") return "staging";
  return "development";
}

function getApiKeyForEnv(env: Environment): string {
  const envVar = {
    development: "IDEOGRAM_API_KEY_DEV",
    staging: "IDEOGRAM_API_KEY_STAGING",
    production: "IDEOGRAM_API_KEY",
  }[env];

  return process.env[envVar] || process.env.IDEOGRAM_API_KEY || "";
}

Step 2: Environment Files

# .env.local (development -- git-ignored)
IDEOGRAM_API_KEY_DEV=your-dev-key
NODE_ENV=development

# .env.staging (CI only)
IDEOGRAM_API_KEY_STAGING=your-staging-key
NODE_ENV=staging

# Production: use secret manager, never .env files

Step 3: Secret Management by Platform

set -euo pipefail
# --- GitHub Actions ---
gh secret set IDEOGRAM_API_KEY_STAGING --env staging
gh secret set IDEOGRAM_API_KEY --env production

# --- AWS Secrets Manager ---
aws secretsmanager create-secret \
  --name ideogram/staging/api-key \
  --secret-string "your-staging-key"

aws secretsmanager create-secret \
  --name ideogram/production/api-key \
  --secret-string "your-production-key"

# --- GCP Secret Manager ---
echo -n "your-staging-key" | gcloud secrets create ideogram-api-key-staging --data-file=-
echo -n "your-production-key" | gcloud secrets create ideogram-api-key-prod --data-file=-

Step 4: GitHub Actions with Environment Secrets

# .github/workflows/deploy.yml
jobs:
  deploy-staging:
    runs-on: ubuntu-latest
    environment: staging
    env:
      IDEOGRAM_API_KEY_STAGING: ${{ secrets.IDEOGRAM_API_KEY_STAGING }}
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build
      - run: npm run deploy:staging

  deploy-production:
    runs-on: ubuntu-latest
    environment: production
    needs: deploy-staging
    env:
      IDEOGRAM_API_KEY: ${{ secrets.IDEOGRAM_API_KEY }}
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build
      - run: npm run deploy:production

Step 5: Startup Validation

import { z } from "zod";

const configSchema = z.object({
  apiKey: z.string().min(10, "API key too short"),
  defaultModel: z.enum(["V_1", "V_1_TURBO", "V_2", "V_2_TURBO", "V_2A", "V_2A_TURBO"]),
  timeout: z.number().min(5000).max(120000),
  concurrency: z.number().min(1).max(10),
});

// Validate at application startup
try {
  const config = configSchema.parse(getIdeogramConfig());
  console.log(`Ideogram configured for ${detectEnvironment()} (model: ${config.defaultModel})`);
} catch (err: any) {
  console.error("Ideogram config invalid:", err.message);
  process.exit(1);
}

Error Handling

IssueCauseSolution
Wrong environment detectedMissing NODE_ENVSet in deployment platform
Secret not foundWrong variable nameCheck env-specific key name
Cross-env data leakShared API keyCreate separate keys per env
Staging using prod keyNo env isolationValidate key identity at startup

Output

  • Environment-aware configuration with separate API keys
  • Secret management for GitHub Actions, AWS, and GCP
  • Startup validation preventing misconfiguration
  • CI/CD pipeline with environment gates

Resources

Next Steps

For deployment patterns, see ideogram-deploy-integration.

When not to use it

  • Using shared API keys across environments
  • Storing production secrets in .env files

Prerequisites

IDEOGRAM_API_KEY_DEVIDEOGRAM_API_KEY_STAGINGIDEOGRAM_API_KEY

Limitations

  • Requires distinct API keys for each environment
  • Startup validation fails if configuration is incomplete

How it compares

This approach prevents cross-environment pollution by enforcing strict secret management and environment-specific configuration schemas.

Compared to similar skills

ideogram-multi-env-setup side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
ideogram-multi-env-setup (this skill)127dReviewIntermediate
swarm-act01moReviewAdvanced
miniprogram-development372moNo flagsIntermediate
azure-functions105moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

swarm-act

ethersphere

Guide to Swarm ACT encryption and access control: create grantees, upload protected data, grant/revoke access, and troubleshoot not-found/history issues.

00

miniprogram-development

TencentCloudBase

WeChat Mini Program development rules. Use this skill when developing WeChat mini programs, integrating CloudBase capabilities, and deploying mini program projects.

3792

azure-functions

aj-geddes

Create serverless functions on Azure with triggers, bindings, authentication, and monitoring. Use for event-driven computing without managing infrastructure.

10104

firebase

davila7

Firebase gives you a complete backend in minutes - auth, database, storage, functions, hosting. But the ease of setup hides real complexity. Security rules are your last line of defense, and they're often wrong. Firestore queries are limited, and you learn this after you've designed your data model. This skill covers Firebase Authentication, Firestore, Realtime Database, Cloud Functions, Cloud Storage, and Firebase Hosting. Key insight: Firebase is optimized for read-heavy, denormalized data. I

2050

blockchain-developer

sickn33

Build production-ready Web3 applications, smart contracts, and decentralized systems. Implements DeFi protocols, NFT platforms, DAOs, and enterprise blockchain integrations. Use PROACTIVELY for smart contracts, Web3 apps, DeFi protocols, or blockchain infrastructure.

655

file-uploads

davila7

Expert at handling file uploads and cloud storage. Covers S3, Cloudflare R2, presigned URLs, multipart uploads, and image optimization. Knows how to handle large files without blocking. Use when: file upload, S3, R2, presigned URL, multipart.

438

Search skills

Search the agent skills registry