From ideogram-pack
Collects Ideogram API debug evidence into a tarball with environment info, connectivity tests, and redacted config for support tickets. Use when troubleshooting persistent Ideogram issues.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ideogram-pack:ideogram-debug-bundleThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
!`node --version 2>/dev/null || echo 'N/A'`
!node --version 2>/dev/null || echo 'N/A'
!python3 --version 2>/dev/null || echo 'N/A'
!echo "IDEOGRAM_API_KEY set: ${IDEOGRAM_API_KEY:+YES}${IDEOGRAM_API_KEY:-NO}"
Collect diagnostic information for Ideogram API issues. Produces a tarball with environment details, API connectivity tests, request/response samples, and redacted configuration -- suitable for attaching to support tickets.
IDEOGRAM_API_KEY environment variable setcurl and tar available#!/bin/bash
set -euo pipefail
BUNDLE_DIR="ideogram-debug-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE_DIR"
cat > "$BUNDLE_DIR/summary.txt" <<HEADER
=== Ideogram Debug Bundle ===
Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)
Hostname: $(hostname)
HEADER
# --- Environment ---
{
echo "--- Runtime ---"
echo "Node: $(node --version 2>/dev/null || echo 'not installed')"
echo "Python: $(python3 --version 2>/dev/null || echo 'not installed')"
echo "OS: $(uname -srm)"
echo ""
echo "--- Ideogram Config ---"
echo "API Key: ${IDEOGRAM_API_KEY:+SET (length=${#IDEOGRAM_API_KEY})}${IDEOGRAM_API_KEY:-NOT SET}"
} >> "$BUNDLE_DIR/summary.txt"
# --- API Connectivity Test ---
{
echo ""
echo "--- API Test (Legacy Generate) ---"
RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}\nTIME_TOTAL:%{time_total}" \
-X POST https://api.ideogram.ai/generate \
-H "Api-Key: ${IDEOGRAM_API_KEY:-missing}" \
-H "Content-Type: application/json" \
-d '{"image_request":{"prompt":"debug test","model":"V_2_TURBO","magic_prompt_option":"OFF"}}' \
2>&1 || echo "CURL_FAILED")
echo "$RESPONSE" | grep -E "HTTP_STATUS|TIME_TOTAL|error" || true
echo "$RESPONSE" | head -5 > "$BUNDLE_DIR/api-response-sample.json"
} >> "$BUNDLE_DIR/summary.txt"
# --- DNS Resolution ---
{
echo ""
echo "--- DNS & Network ---"
echo "DNS resolve: $(nslookup api.ideogram.ai 2>/dev/null | grep -A1 'Name:' | tail -1 || echo 'nslookup unavailable')"
echo "TLS test: $(curl -s -o /dev/null -w '%{ssl_verify_result}' https://api.ideogram.ai/ 2>/dev/null || echo 'failed')"
} >> "$BUNDLE_DIR/summary.txt"
# --- Local Configuration (redacted) ---
if [ -f .env ]; then
sed 's/=.*/=***REDACTED***/' .env > "$BUNDLE_DIR/env-redacted.txt"
fi
# --- Package versions ---
{
echo ""
echo "--- Dependencies ---"
npm list --depth=0 2>/dev/null || echo "No package.json found"
pip freeze 2>/dev/null | grep -i ideogram || echo "No Python ideogram packages"
} >> "$BUNDLE_DIR/summary.txt"
# --- Package ---
tar -czf "$BUNDLE_DIR.tar.gz" "$BUNDLE_DIR"
rm -rf "$BUNDLE_DIR"
echo "Bundle created: $BUNDLE_DIR.tar.gz"
echo "Contents: summary.txt, api-response-sample.json, env-redacted.txt"
set -euo pipefail
# Test API key validity
curl -s -o /dev/null -w "Status: %{http_code} | Time: %{time_total}s\n" \
-X POST https://api.ideogram.ai/generate \
-H "Api-Key: $IDEOGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"image_request":{"prompt":"test","model":"V_2_TURBO","magic_prompt_option":"OFF"}}'
# Test V3 endpoint
curl -s -o /dev/null -w "V3 Status: %{http_code}\n" \
-X POST https://api.ideogram.ai/v1/ideogram-v3/generate \
-H "Api-Key: $IDEOGRAM_API_KEY" \
-F "prompt=test" -F "rendering_speed=FLASH"
// Add to your client for capturing failed requests
async function debuggableRequest(url: string, init: RequestInit) {
const start = Date.now();
const response = await fetch(url, init);
const elapsed = Date.now() - start;
if (!response.ok) {
const body = await response.text();
console.error(JSON.stringify({
timestamp: new Date().toISOString(),
url,
method: init.method,
status: response.status,
elapsed_ms: elapsed,
error: body.slice(0, 500),
// Redact API key from headers
headers: Object.fromEntries(
Object.entries(init.headers ?? {}).map(([k, v]) =>
[k, k.toLowerCase() === "api-key" ? "***REDACTED***" : v]
)
),
}, null, 2));
throw new Error(`Ideogram ${response.status}: ${body}`);
}
return response;
}
ALWAYS REDACT before sharing:
.env file valuesSafe to include:
| Item | Purpose | Included |
|---|---|---|
| API key status | Auth verification | SET/NOT SET only |
| HTTP status code | Error classification | Full code |
| Response time | Latency diagnosis | Seconds |
| DNS resolution | Network diagnosis | IP only |
| Package versions | Compatibility check | Version strings |
ideogram-debug-YYYYMMDD-HHMMSS.tar.gz containing:
summary.txt -- environment, API test, DNS, dependenciesapi-response-sample.json -- truncated API responseenv-redacted.txt -- configuration with values masked[email protected]For rate limit issues, see ideogram-rate-limits.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin ideogram-pack2plugins reuse this skill
First indexed Jul 18, 2026
Diagnose and fix Ideogram API errors and exceptions. Use when encountering Ideogram errors, debugging failed requests, or troubleshooting integration issues. Trigger with phrases like "ideogram error", "fix ideogram", "ideogram not working", "debug ideogram", "ideogram 422", "ideogram 429".
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.