Transformer Guide
December 2, 2025 ยท View on GitHub
Transformers allow start-claude to convert requests between different API formats, enabling compatibility with various AI providers while using Claude Code. This feature is essential for using non-Anthropic API providers with Claude Code.
Overview
Transformers provide:
- ๐ Format Conversion: Convert between Claude and other AI API formats (OpenAI, etc.)
- ๐ Provider Support: Connect Claude Code to different AI service providers
- ๐ Seamless Integration: Transparent proxy that handles format conversion automatically
- โ๏ธ Load Balancer Compatibility: Works with load balancing for multiple providers
- โ๏ธ Auto-Detection: Automatically enables proxy mode for transformer-enabled configs
How Transformers Work
- Request Interception: Claude Code sends requests to start-claude proxy
- Format Detection: Proxy detects the target API format based on configuration
- Request Transformation: Converts Claude API format to target provider format
- Response Conversion: Transforms provider response back to Claude format
- Seamless Delivery: Claude Code receives properly formatted responses
Configuration
Enable Transformer for a Configuration
# Add a configuration with transformer enabled
start-claude add
# During setup:
# - Name: openai-provider
# - Profile Type: default
# - Base URL: https://api.openai.com/v1
# - API Key: sk-your-openai-key
# - Enable Transformer: Yes
Configuration Structure
{
"name": "openai-provider",
"profileType": "default",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-your-openai-key",
"transformerEnabled": true,
"model": "gpt-4"
}
Required Fields for Transformer Configs
Transformer-enabled configurations must include:
baseUrl: Target API endpoint URLapiKey: Authentication key for the target providertransformerEnabled: true: Enable transformer processing
Supported Providers
OpenAI API
Configure for OpenAI-compatible APIs:
{
"name": "openai",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-your-openai-key",
"transformerEnabled": true,
"model": "gpt-4"
}
Custom API Providers
For providers with OpenAI-compatible endpoints:
{
"name": "custom-provider",
"baseUrl": "https://your-provider.com/v1",
"apiKey": "your-api-key",
"transformerEnabled": true,
"model": "custom-model"
}
Usage Examples
Single Transformer Configuration
# Create transformer config
start-claude add
# Name: openai-gpt4
# Base URL: https://api.openai.com/v1
# API Key: sk-your-key
# Transformer: Yes
# Use the configuration
start-claude openai-gpt4
# Automatically enables proxy mode with transformer
Multiple Providers with Load Balancing
# Add multiple transformer configs
start-claude add # openai-provider (order: 0)
start-claude add # anthropic-backup (order: 10)
start-claude add # custom-provider (order: 5)
# Start with load balancing across all providers
start-claude --balance
Mixed Configuration Types
# Mix regular Claude configs with transformer configs
start-claude --balance claude-official openai-gpt4 custom-provider
# Load balances between different API providers
Proxy Mode Integration
Automatic Proxy Enablement
Transformer configurations automatically enable proxy mode:
# This automatically starts proxy server
start-claude openai-config
# Equivalent to:
start-claude --balance openai-config
Manual Proxy Control
# Start with transformer support but no load balancing
start-claude openai-config
# Start with full load balancing across providers
start-claude --balance openai-config anthropic-config
Request/Response Format Conversion
Claude โ OpenAI Format Conversion
Claude Code Request:
{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 1000,
"messages": [
{ "role": "user", "content": "Hello" }
]
}
Transformed to OpenAI:
{
"model": "gpt-4",
"max_tokens": 1000,
"messages": [
{ "role": "user", "content": "Hello" }
]
}
Response Conversion
OpenAI Response:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello! How can I help?"
}
}
]
}
Transformed to Claude Format:
{
"content": [
{
"type": "text",
"text": "Hello! How can I help?"
}
],
"role": "assistant"
}
Configuration Management
Via Command Line
# List configurations (shows transformer status)
start-claude list
# Edit transformer settings
start-claude edit openai-config
Via Web Interface
# Open configuration manager
start-claude manager
# Features:
# - Toggle transformer enable/disable
# - Configure API endpoints
# - Set model preferences
# - Manage load balancing order
Configuration File
Edit directly in ~/.start-claude/config.json:
{
"configs": [
{
"name": "openai-gpt4",
"profileType": "default",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-your-openai-key",
"transformerEnabled": true,
"model": "gpt-4",
"order": 0
}
]
}
Advanced Usage
Health Monitoring
Transformer configurations participate in health checks:
# Health check tests transformer endpoint
start-claude --balance --verbose
Health check process:
- Sends test request to transformer endpoint
- Verifies response format conversion
- Marks endpoint healthy/unhealthy
- Participates in load balancing
Error Handling
Common transformer errors:
- 401 Unauthorized: Invalid API key for target provider
- 404 Not Found: Incorrect base URL or unsupported endpoint
- 422 Validation: Model not supported by target provider
- Transform Error: Format conversion failed
Debugging
Enable verbose logging:
# Show transformer processing details
start-claude --balance --verbose
# Monitor transformation logs
# Logs show: request transformation, response conversion, provider responses
Best Practices
- API Key Security: Use separate API keys for different providers
- Model Compatibility: Ensure model names match target provider capabilities
- Rate Limiting: Consider provider-specific rate limits in load balancing
- Health Monitoring: Regular health checks ensure transformer reliability
- Fallback Strategy: Mix multiple providers for redundancy
Troubleshooting
Transformer Not Working
Check configuration requirements:
# Verify transformer config has required fields
start-claude list
# Required:
# - baseUrl: Target API endpoint
# - apiKey: Valid API key
# - transformerEnabled: true
Format Conversion Issues
Common problems:
- Model mismatch: Target provider doesn't support specified model
- API version: Base URL points to wrong API version
- Authentication: API key format doesn't match provider requirements
Proxy Not Starting
Transformer configs require proxy mode:
# Proxy starts automatically with transformer configs
start-claude transformer-config
# If proxy fails:
# 1. Check port 2333 availability
# 2. Verify API credentials
# 3. Check network connectivity
Integration Examples
With Claude Code
# Set Claude Code to use transformer proxy
export ANTHROPIC_BASE_URL="http://localhost:2333"
export ANTHROPIC_AUTH_TOKEN="sk-claude-load-balancer-proxy-key"
# Claude Code will send requests to transformer proxy
claude --model openai-gpt4
Docker Deployment
FROM node:18-alpine
RUN pnpm add -g start-claude
COPY config.json /root/.start-claude/config.json
EXPOSE 2333
CMD ["start-claude", "--balance"]
Multiple Provider Setup
{
"configs": [
{
"name": "anthropic-primary",
"profileType": "default",
"baseUrl": "https://api.anthropic.com",
"apiKey": "sk-ant-key",
"order": 0
},
{
"name": "openai-backup",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-openai-key",
"transformerEnabled": true,
"model": "gpt-4",
"order": 10
},
{
"name": "custom-fallback",
"baseUrl": "https://custom.api.com/v1",
"apiKey": "custom-key",
"transformerEnabled": true,
"model": "custom-model",
"order": 20
}
]
}
This setup provides a robust multi-provider configuration with automatic failover between different AI services.