Skip to content

Ticking 1M for DeepSeek does nothing? cc-switch local proxy config

Quick fix

With the cc-switch local proxy on, do not enter [1m] and leave the main model empty. The [1m] suffix only works with the proxy off.

Error output
deepseek-v4-pro -> deepseek-v4-flash

In cc-switch local routing/proxy mode, the provider model field is forwarded verbatim as the upstream API model value, and the Claude Code `[1m]` client syntax is not stripped. Entering deepseek-v4-pro[1m] can make DeepSeek treat it as a non-canonical model name and fall back to deepseek-v4-flash, which is why the statistics page shows pro -> flash. With the local proxy off, cc-switch only writes the Claude Code config and Claude Code removes `[1m]` before sending the request, so the suffix is fine there.

Another common problem: ANTHROPIC_MODEL takes priority over role mappings such as ANTHROPIC_DEFAULT_OPUS_MODEL. If the default fallback model has no `[1m]`, Claude Code may not offer a 1M context option even with 1M ticked for Sonnet/Opus. That UI problem was fixed in v3.17.0.

  1. Check whether cc-switch local routing/proxy is on. If it is, do not put a `[1m]` suffix in the provider model field.

  2. With the local proxy on, leave the main model / ANTHROPIC_MODEL / Default model empty so Claude Code uses its own default Opus/Sonnet 1M preset, which cc-switch then maps onto the real DeepSeek model.

    cc-switch provider env
    ANTHROPIC_MODEL=
    ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-pro
    ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro
    ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro
  3. With the local proxy off, enter `[1m]` the way you would for a direct Claude Code connection — deepseek-v4-pro[1m] for the main model and Haiku, for instance. Avoid repeating the suffix on Sonnet/Opus, or /model shows deepseek-v4-pro[1m][1m].

    cc-switch provider env
    ANTHROPIC_MODEL=deepseek-v4-pro[1m]
    ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-pro[1m]
    ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro
    ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro
  4. If 1M is ticked but the Claude Code model picker or /context still does not show 1M, upgrade cc-switch to v3.17.0 or newer and tick 1M for the default fallback model field too.

  5. In Claude Code, check with /context whether the context became 1M. If the current model did not land on a 1M-capable Opus/Sonnet, switch by hand with /model.

ToolClaude Code
Version< 3.17.0
PlatformsWindowsmacOSLinux
Why does the cc-switch statistics page show deepseek-v4-pro -> deepseek-v4-flash?
The left side is the model in the request as it entered the cc-switch proxy, and the right side is the model DeepSeek declared in its response. If the provider field carries `[1m]`, cc-switch forwards it verbatim and DeepSeek may fall back to flash.
What should the main model be with the local proxy on?
Leave it empty. Claude Code then uses its own default Opus/Sonnet 1M preset, which cc-switch maps onto the DeepSeek model.
Does an uppercase [1M] stop 1M applying?
No. The Claude Code source is case-insensitive about `[1m]`. The real problem is usually the ANTHROPIC_MODEL fallback field lacking the 1M marker and overriding the role model settings.
I ticked 1M on the role models — why is there still no 1M option in Claude Code?
Because ANTHROPIC_MODEL takes priority over the Sonnet/Opus/Haiku aliases. Upgrade cc-switch to v3.17.0 and tick 1M for the default fallback model field as well.
DeepSeek statistics show flash calls that cc-switch never recorded. Why?
Without the proxy on, that may relate to Claude Code sub-agent calls. With the proxy on, they are usually not missed.
Is a model not found error with image context a 1M config problem?
No. deepseek-v4-pro is a text-only model, and Claude Code may falsely report model not found for context containing images. Switch to a model that supports image recognition.

This is an unofficial community wiki with no affiliation to the cc-switch authors or the project itself. Its content is compiled from the project's public GitHub issues. This site distributes no software.