Skip to main content
The proxy maps Anthropic model names to GitHub Copilot’s available models, allowing you to use different Claude model tiers through your Copilot subscription.

Available models

The proxy supports all current Claude model families. Here’s the complete mapping from the proxy source:
The latest and most capable Opus model.Supported aliases:
  • claude-opus-4-6
  • claude-opus-4-6-20260214
  • claude-opus-4-6-latest
Maps to: claude-opus-4.6
# Launch with Opus 4.6
./scripts/launch.sh --model claude-opus-4-6
All three aliases map to the same underlying model. Use whichever naming convention you prefer.

Model mapping implementation

The proxy uses a comprehensive mapping table to translate model names:
const MODEL_MAP = {
  // Opus 4.6
  "claude-opus-4-6": "claude-opus-4.6",
  "claude-opus-4-6-20260214": "claude-opus-4.6",
  "claude-opus-4-6-latest": "claude-opus-4.6",
  // Sonnet 4.5
  "claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
  "claude-sonnet-4-5": "claude-sonnet-4.5",
  "claude-sonnet-4-5-latest": "claude-sonnet-4.5",
  // Sonnet 4
  "claude-sonnet-4-20250514": "claude-sonnet-4",
  "claude-sonnet-4": "claude-sonnet-4",
  "claude-3-5-sonnet-20241022": "claude-sonnet-4",
  "claude-3-5-sonnet-latest": "claude-sonnet-4",
  // ... and more
}

Intelligent fallback mapping

For unknown model names, the proxy uses pattern matching:
function mapModel(anthropicModel) {
  if (MODEL_MAP[anthropicModel]) return MODEL_MAP[anthropicModel]

  // Try pattern matching for unknown dated versions
  const m = anthropicModel.toLowerCase()
  if (m.includes("opus") && (m.includes("4.6") || m.includes("4-6"))) return "claude-opus-4.6"
  if (m.includes("sonnet") && (m.includes("4.5") || m.includes("4-5"))) return "claude-sonnet-4.5"
  if (m.includes("sonnet")) return "claude-sonnet-4"
  if (m.includes("opus") && (m.includes("4.5") || m.includes("4-5"))) return "claude-opus-4.5"
  if (m.includes("opus") && (m.includes("4.1") || m.includes("4-1"))) return "claude-opus-41"
  if (m.includes("haiku")) return "claude-haiku-4.5"
  if (m.includes("opus")) return "claude-opus-4.6"

  // Pass through as-is
  return anthropicModel
}
This intelligent mapping means you can use almost any Claude model name format, and the proxy will find the best match.

Switching models

Within Claude Code, use the /model command to switch models interactively:
# Inside Claude Code session
/model claude-opus-4-6
This changes the model for the current session without restarting.
The /model command is the fastest way to try different models during a session.

Checking available models

Query the proxy’s /models endpoint to see all available models:
curl http://localhost:18080/v1/models
{
  "data": [
    { "id": "claude-opus-4-6", "object": "model" },
    { "id": "claude-sonnet-4-5-20250929", "object": "model" },
    { "id": "claude-sonnet-4-20250514", "object": "model" },
    { "id": "claude-opus-4-5-20251101", "object": "model" },
    { "id": "claude-haiku-4-5", "object": "model" }
  ]
}
This endpoint is called by Claude Code when it starts up to discover available models.

Model selection strategies

For complex reasoning

Use: Claude Opus 4.6Best for:
  • Complex code refactoring
  • Architecture decisions
  • Debugging difficult issues
  • Writing comprehensive documentation

For balanced performance

Use: Claude Sonnet 4.5Best for:
  • General development tasks
  • Code reviews
  • Writing tests
  • Day-to-day coding assistance

For quick tasks

Use: Claude Haiku 4.5Best for:
  • Simple code generation
  • Quick questions
  • Syntax help
  • Fast iterations

For specific capabilities

Use: Sonnet 4.5 or Opus 4.5Best for:
  • Testing model variations
  • Comparing outputs
  • Fallback options

Request logging

The proxy logs every model mapping for transparency:
 claude-sonnet-4-5-20250929 claude-sonnet-4.5 | stream | 3 messages
This shows:
  • Left side: Model name from Claude Code
  • Arrow: Indicates mapping
  • Right side: Actual model sent to GitHub Copilot
  • Additional info: Streaming mode and message count
Watch these logs to verify your model selection is working correctly.

Legacy model support

The proxy maintains backward compatibility with Claude 3 naming conventions:
"claude-3-opus-20240229": "claude-opus-4.5"
"claude-3-5-opus-latest": "claude-opus-4.5"
Maps to Claude Opus 4.5 for compatibility.
"claude-3-5-sonnet-20241022": "claude-sonnet-4"
"claude-3-5-sonnet-latest": "claude-sonnet-4"
Maps to Claude Sonnet 4.
"claude-3-5-haiku-20241022": "claude-haiku-4.5"
"claude-3-haiku-20240307": "claude-haiku-4.5"
Maps to Claude Haiku 4.5.
Using legacy model names ensures existing scripts and configurations continue to work without modification.

Troubleshooting

If you use an unknown model name, the proxy will:
  1. Check the MODEL_MAP
  2. Try pattern matching
  3. Pass the name through as-is
Check the proxy logs to see how your model name was mapped:
 your-model-name claude-opus-4.6 | stream | 2 messages
If Copilot rejects the model name:
 Copilot API error: 400 {"error": "model not found"}
This means GitHub Copilot doesn’t support that model. Try a different model from the available list.
Remember that models are served by GitHub Copilot, not Anthropic. Behavior may differ slightly from the official Anthropic API.If you notice issues:
  1. Try a different model variant
  2. Check GitHub Copilot’s status page
  3. Verify your Copilot subscription is active

Performance comparison

Different models have different characteristics:
ModelSpeedQualityBest for
Claude Opus 4.6SlowerHighestComplex reasoning, architecture
Claude Sonnet 4.5FastHighGeneral development tasks
Claude Sonnet 4FastHighDaily coding work
Claude Opus 4.5MediumVery HighAdvanced tasks
Claude Haiku 4.5FastestGoodSimple tasks, quick questions
Start with Sonnet 4.5 for most tasks, then switch to Opus 4.6 when you need deeper reasoning or to Haiku 4.5 when you need speed.

Next steps

Web search

Enable web search for any model

Launching Claude

Learn different launch methods