Configure custom Claude API endpoints and alternative providers for The Construct CLI.
- Overview
- Quick Setup
- Supported Providers
- Configuration
- Environment Variables
- Examples
- Troubleshooting
The Construct CLI supports configuring alternative providers for Claude Code. This allows you to:
- Use custom Claude API endpoints
- Switch between different providers (Zai, MiniMax, Kimi, Qwen, Mimo, etc.)
- Configure provider-specific settings (timeouts, models)
- Reference environment variables for API keys
Select from the supported providers below.
Edit ~/.config/construct-cli/config.toml:
[claude.cc.zai]
ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_ZAI_API_KEY}"export CNSTR_ZAI_API_KEY="your-api-key-here"construct claude zai "Help me with this code"Provider ID: zai
[claude.cc.zai]
ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_ZAI_API_KEY}"
API_TIMEOUT_MS = "3000000"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"Environment variable: CNSTR_ZAI_API_KEY
Provider ID: minimax
[claude.cc.minimax]
ANTHROPIC_BASE_URL = "https://api.minimax.io/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_MINIMAX_API_KEY}"
API_TIMEOUT_MS = "3000000"
ANTHROPIC_MODEL = "MiniMax-M2"
ANTHROPIC_SMALL_FAST_MODEL = "MiniMax-M2"Environment variable: CNSTR_MINIMAX_API_KEY
Provider ID: kimi
[claude.cc.kimi]
ANTHROPIC_BASE_URL = "https://api.moonshot.ai/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_KIMI_API_KEY}"
API_TIMEOUT_MS = "3000000"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"Environment variable: CNSTR_KIMI_API_KEY
Provider ID: qwen
[claude.cc.qwen]
ANTHROPIC_BASE_URL = "https://dashscope-intl.aliyuncs.com/api/v2/apps/claude-code-proxy"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_QWEN_API_KEY}"
API_TIMEOUT_MS = "3000000"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"Environment variable: CNSTR_QWEN_API_KEY
Provider ID: mimo
[claude.cc.mimo]
ANTHROPIC_BASE_URL = "https://api.xiaomimimo.com/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_MIMO_API_KEY}"
API_TIMEOUT_MS = "3000000"Environment variable: CNSTR_MIMO_API_KEY
[claude.cc.<provider-id>]
ANTHROPIC_BASE_URL = "https://api.example.com/anthropic"
ANTHROPIC_AUTH_TOKEN = "${ENV_VAR_NAME}"
API_TIMEOUT_MS = "3000000"Required:
ANTHROPIC_BASE_URL- API endpoint URLANTHROPIC_AUTH_TOKEN- API authentication key
Optional:
API_TIMEOUT_MS- Request timeout in milliseconds (default: 300000)ANTHROPIC_MODEL- Model to useANTHROPIC_SMALL_FAST_MODEL- Small/fast model for quick tasksCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC- Disable non-essential traffic
Construct prefix: CNSTR_
Pattern: CNSTR_<PROVIDER>_API_KEY
Examples:
CNSTR_ZAI_API_KEYCNSTR_MINIMAX_API_KEYCNSTR_KIMI_API_KEY
In config.toml:
[claude.cc.zai]
ANTHROPIC_AUTH_TOKEN = "${CNSTR_ZAI_API_KEY}"Set in shell:
export CNSTR_ZAI_API_KEY="sk-..."Fallback behavior:
- If
CNSTR_ZAI_API_KEYis not set, Construct falls back toZAI_API_KEY - This allows using either variable name
Construct automatically forwards common provider keys:
ANTHROPIC_API_KEY- Official Anthropic APIOPENAI_API_KEY- OpenAI API keyGEMINI_API_KEY- Google Gemini API keyOPENROUTER_API_KEY- OpenRouter API keyZAI_API_KEY- Zai API keyOPENCODE_API_KEY- OpenCode API keyHF_TOKEN- Hugging Face API tokenKIMI_API_KEY- Kimi API keyMINIMAX_API_KEY- MiniMax API keyMIMO_API_KEY- Mimo API keyQWEN_API_KEY- Qwen API key
Prefix handling: All CNSTR_ prefixed variables are also auto-forwarded.
[claude.cc.zai]
ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_ZAI_API_KEY}"# Set the API key
export CNSTR_ZAI_API_KEY="your-key-here"
# Run with provider
construct claude zai "Help me debug this"[claude.cc.zai]
ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_ZAI_API_KEY}"
[claude.cc.minimax]
ANTHROPIC_BASE_URL = "https://api.minimax.io/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_MINIMAX_API_KEY}"# Use Zai provider
construct claude zai "Task for Zai"
# Use MiniMax provider
construct claude minimax "Task for MiniMax"[claude.cc.custom]
ANTHROPIC_BASE_URL = "https://my-custom-proxy.com/anthropic"
ANTHROPIC_AUTH_TOKEN = "${MY_CUSTOM_API_KEY}"
API_TIMEOUT_MS = "600000" # 10 minutes[claude.cc.minimax]
ANTHROPIC_BASE_URL = "https://api.minimax.io/anthropic"
ANTHROPIC_AUTH_TOKEN = "${CNSTR_MINIMAX_API_KEY}"
ANTHROPIC_MODEL = "MiniMax-M2"
ANTHROPIC_SMALL_FAST_MODEL = "MiniMax-M2"Error: provider "xyz" not found
Solution: Check provider ID is correct
# List available providers
construct claude --help
# Check config
construct sys configError: 401 Unauthorized or invalid API key
Solutions:
-
Check environment variable is set
echo $CNSTR_ZAI_API_KEY
-
Check variable name in config
# Correct ANTHROPIC_AUTH_TOKEN = "${CNSTR_ZAI_API_KEY}" # Wrong (no quotes, no braces) ANTHROPIC_AUTH_TOKEN = $CNSTR_ZAI_API_KEY
-
Verify API key is valid
- Check provider dashboard
- Regenerate key if needed
- Check key has required permissions
-
Check for typos in provider name
# Correct construct claude zai "..." # Wrong construct claude ZAI "..." # Provider IDs are lowercase
Error: timeout waiting for response
Solutions:
-
Increase timeout
[claude.cc.zai] API_TIMEOUT_MS = "600000" # 10 minutes
-
Check network connectivity
# Test API endpoint curl -I https://api.z.ai -
Check if API is down
- Visit provider status page
- Check provider social media
Error: model "xyz" not found
Solutions:
-
Check provider supports the model
- See provider documentation
- Check model availability in your region
-
Verify model name in config
ANTHROPIC_MODEL = "correct-model-name"
-
Check provider dashboard
- Ensure model is enabled
- Check API has access to model
To add a new provider:
-
Add configuration section
[claude.cc.newprovider] ANTHROPIC_BASE_URL = "https://api.newprovider.com/anthropic" ANTHROPIC_AUTH_TOKEN = "${CNSTR_NEWPROVIDER_API_KEY}"
-
Add to help text
- Edit
internal/ui/help.go - Add provider to available providers list
- Edit
-
Add to post-install verification
- Edit
internal/config/packages.go - Add provider slug to verification loop
- Edit
-
Update documentation
- Add to this guide
- Update README.md
See Development Guide for details.
✅ DO:
- Use environment variables for API keys
- Never commit API keys to config files
- Use
CNSTR_prefix for consistency - Rotate API keys regularly
❌ DON'T:
- Hardcode API keys in config.toml
- Commit API keys to version control
- Share config files with API keys
- Use weak or expired API keys
✅ DO:
- Test provider configuration before using
- Use appropriate timeouts for your use case
- Configure multiple providers for comparison
- Keep provider configs commented when not in use
❌ DON'T:
- Leave unused provider configs active
- Set excessively long timeouts
- Override same provider multiple times
- Mix up provider IDs
- Configuration Guide - Complete config reference
- Security Guide - Provider security best practices
- Installation Guide - Installation instructions
Provider-specific issues:
- Check provider documentation
- Visit provider dashboard
- Check provider status page
Construct issues:
construct sys doctor- System health checkconstruct sys config- Edit configuration- GitHub Issues - Report bugs