View and configure image generation providers (DALL-E 3, Gemini)
Manages image generation API providers like DALL-E 3 and Gemini, including setup, configuration, testing, and budget settings.
When to use
Use this when you need to configure, test, or switch between different AI image generation services within Claude.
How to invoke
manual via /dp:providers, auto-invoked when relevant
npx claudepluginhub danielraffel/generous-corp-marketplace[list|set-default|test|setup]For Claude: Manage image generation API providers and settings.
Usage: /dp:providers or /dp:providers list
Process:
.claude/dp.local.md for usage statsOutput:
Image Generation Providers
Configured:
OpenAI DALL-E 3
- Status: Enabled
- Cost: $0.04/image (standard), $0.08/image (HD)
- Usage: 3 images, $0.12 total
- Last used: Today 2:30 PM
- Rate limit: 5/min
Google Gemini Nano Banana Pro
- Status: Not configured
- Model: gemini-3-pro-image-preview (default)
- Cost: Currently free during preview (subject to change)
- Setup: Run /dp:providers setup
Default: DALL-E 3
Fallback order: DALL-E 3 → Gemini
Budget:
- Daily limit: $5.00
- Today's spend: $0.12 (2%)
- Remaining: $4.88
- Resets: Tonight at midnight
Note: Pricing shown is estimated and may not reflect current API rates. Actual costs may vary.
Usage: /dp:providers set-default
Process:
Use AskUserQuestion:
{
"questions": [
{
"question": "Which provider should be your default?",
"header": "Default Provider",
"multiSelect": false,
"options": [
{
"label": "OpenAI DALL-E 3",
"description": "Higher quality, $0.04/image (standard)"
},
{
"label": "Google Gemini",
"description": "Budget-friendly, FREE (experimental)"
},
{
"label": "Ask each time",
"description": "Choose provider per generation"
}
]
},
{
"question": "Set fallback order?",
"header": "Fallback",
"multiSelect": false,
"options": [
{
"label": "DALL-E → Gemini",
"description": "Use Gemini if DALL-E fails"
},
{
"label": "Gemini → DALL-E",
"description": "Use DALL-E if Gemini fails"
},
{
"label": "No fallback",
"description": "Fail if default provider unavailable"
}
]
}
]
}
Update .claude/dp.local.md:
image_generation:
default_provider: "[selection]"
fallback_order: ["[primary]", "[fallback]"]
Output:
Default provider updated to: DALL-E 3
Fallback order: DALL-E 3 → Gemini
Settings saved to .claude/dp.local.md
Usage: /dp:providers test
Process:
# Run test suite
node ${CLAUDE_PLUGIN_ROOT}/scripts/test-providers.js
Output:
Provider Test Results
OpenAI DALL-E 3:
Success
- Response time: 11.2s
- Cost: $0.04
- Image saved to: artifacts/images/test-dalle.png
Google Gemini:
Failed
- Error: API key not configured
- Setup: /dp:providers setup
Summary:
- Tests run: 2
- Passed: 1
- Failed: 1
Usage: /dp:providers setup
Process:
Detect current configuration
node ${CLAUDE_PLUGIN_ROOT}/scripts/detect-api-keys.js
Ask which provider(s) to configure
{
"question": "Which provider would you like to configure?",
"header": "Setup",
"multiSelect": true,
"options": [
{
"label": "OpenAI DALL-E 3",
"description": "Best quality, $0.04/image - Get key at: https://platform.openai.com/api-keys"
},
{
"label": "Google Gemini Nano Banana Pro",
"description": "High quality, currently free (preview) - Get key at: https://aistudio.google.com/api-keys"
}
]
}
For each selected provider:
OpenAI Setup:
OpenAI DALL-E 3 Setup
Get your API key:
1. Visit: https://platform.openai.com/api-keys
2. Sign in or create account
3. Click "Create new secret key"
4. Copy the key (starts with sk-proj-...)
Paste your API key: [user input]
Save to your shell profile (~/.zshrc or ~/.bashrc):
export OPENAI_API_KEY="your-key-here"
Then restart your terminal or run: source ~/.zshrc
Testing connection...
[Runs test generation]
Success! DALL-E 3 is ready to use.
Gemini Nano Banana Pro Setup:
Google Gemini Nano Banana Pro Setup
Get your API key:
1. Visit: https://aistudio.google.com/api-keys
2. Click "Create API Key"
3. Copy the API key (starts with AIza...)
Paste your API key: [user input]
Save to your shell profile (~/.zshrc or ~/.bashrc):
export GEMINI_API_KEY="your-key-here"
Then restart your terminal or run: source ~/.zshrc
Models available:
- gemini-3-pro-image-preview (default, highest quality)
- gemini-2.5-flash-image (faster alternative)
Testing connection...
[Runs test generation]
Success! Gemini Nano Banana Pro is ready to use.
Currently free during preview (pricing subject to change).
Create or update .env file
# Check if .env exists in plugin root
if [ ! -f .env ]; then
cp .env.example .env
fi
# Append or update keys
echo "OPENAI_API_KEY=${apiKey}" >> .env
Security check
Checking .gitignore...
WARNING: .env is not in .gitignore!
This is a security risk. Your API keys could be committed to git.
Should I add .env to .gitignore? (Recommended)
Update state
# In .claude/dp.local.md
image_generation:
enabled: true
providers:
openai:
configured: true
enabled: true
Set default provider
{
"question": "Which should be your default?",
"options": ["OpenAI", "Gemini", "Ask each time"]
}
Final Output:
Setup complete!
Configured providers:
- OpenAI DALL-E 3: Ready
- Google Gemini: Ready
Default: DALL-E 3
Daily budget: $5.00
You're all set! Use /dp:visualize to generate images.
Can also be used to adjust budget settings:
{
"question": "Adjust daily budget?",
"header": "Budget",
"options": [
{"label": "$5.00 (default)", "description": "~125 standard images/day"},
{"label": "$10.00", "description": "~250 standard images/day"},
{"label": "$20.00", "description": "~500 standard images/day"},
{"label": "No limit", "description": "Use with caution"},
{"label": "Custom amount", "description": "Enter specific amount"}
]
}
Usage: /dp:providers configure-output or first-time setup prompt
Process:
Detect current environment
node ${CLAUDE_PLUGIN_ROOT}/scripts/configure-output.js "${PWD}/.claude/dp.local.md" "${CLAUDE_PLUGIN_ROOT}"
Show current configuration and options
Where should generated images be saved?
Current: Downloads folder (default)
Location: ~/Downloads/design-partner-a3f8c2/
Use AskUserQuestion to configure
{
"questions": [
{
"question": "Where should generated images be saved?",
"header": "Output Path",
"multiSelect": false,
"options": [
{
"label": "Downloads folder (Default)",
"description": "Easy to find: ~/Downloads/design-partner-[session]/"
},
{
"label": "Git repo (.claude/design-partner/)",
"description": "Save in your project repo (gitignored automatically)"
},
{
"label": "Custom path",
"description": "Specify your own location"
},
{
"label": "Plugin cache (hidden)",
"description": "~/.claude/plugins/cache/... (harder to discover)"
}
]
}
]
}
If custom path selected, ask for path
Enter custom path (use ~ for home directory):
Examples:
- ~/Documents/design-partner
- ~/Desktop/mockups
- /Users/you/projects/designs
Update .claude/dp.local.md
output_path_preference: "git-repo" # or "downloads", "plugin-cache", or "/custom/path"
session_id: "a3f8c2"
output_path: "/Users/you/project/.claude/design-partner/artifacts"
Create directories and show confirmation
Output path configured!
Images will be saved to:
/Users/you/Downloads/design-partner-a3f8c2/images/
Gallery will be at:
/Users/you/Downloads/design-partner-a3f8c2/gallery.html
You can change this anytime with /dp:providers configure-output
# List current providers
/dp:providers
# Setup new provider
/dp:providers setup
# Configure where images are saved
/dp:providers configure-output
# Test all configured providers
/dp:providers test
# Change default
/dp:providers set-default