<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Claude Desktop - Tag - ISLAND</title><link>https://youngxhui.top/en/tags/claude-desktop/</link><description>Claude Desktop - Tag - ISLAND</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>youngxhui@gmail.com (youngxhui)</managingEditor><webMaster>youngxhui@gmail.com (youngxhui)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Mon, 18 May 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://youngxhui.top/en/tags/claude-desktop/" rel="self" type="application/rss+xml"/><item><title>Configuring Claude Desktop in CC Switch</title><link>https://youngxhui.top/en/2026/05/cc-switch-desktop/</link><pubDate>Mon, 18 May 2026 09:00:00 +0800</pubDate><author><name>youngxhui</name></author><guid>https://youngxhui.top/en/2026/05/cc-switch-desktop/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://island-hexo.oss-cn-beijing.aliyuncs.com/20260518134732567.png" referrerpolicy="no-referrer">
            </div><p>I&rsquo;ve previously covered <a href="/2026/04/cc-switch/" rel="">the basics of CC Switch</a>. Today, let&rsquo;s take a closer look at the Claude Desktop panel — added in recent versions specifically for connecting the official Claude Desktop client to third-party providers.</p>
<blockquote>
  <p>In CC Switch, &ldquo;Claude&rdquo; and &ldquo;Claude Desktop&rdquo; are two separate panels. They map to Claude Code (the CLI) and Claude Desktop (the desktop client), respectively. Claude Desktop uses its own 3P profile config rather than <code>~/.claude/settings.json</code>. The two panels are distinguished by a small badge on the icon.</p>

</blockquote><h2 id="what-it-does" class="headerLink">
    <a href="#what-it-does" class="header-mark"></a>What it does</h2><p>The Claude Desktop panel keeps things straightforward:</p>
<ul>
<li>Connect Claude Desktop to Anthropic-compatible third-party providers</li>
<li>Set up model mappings for non-Claude models like DeepSeek, Kimi, DouBao, OpenAI, and Gemini</li>
<li>Reuse Copilot / Codex OAuth-based providers</li>
<li>Switch between Claude Desktop&rsquo;s official mode and third-party providers with a single click</li>
</ul>
<p>macOS and Windows are supported. Linux can&rsquo;t yet write Claude Desktop 3P configs. You&rsquo;ll need to restart Claude Desktop after switching — it doesn&rsquo;t hot-reload the way Claude Code does.</p>
<p>One thing to note: Claude Desktop&rsquo;s 3P profile does <strong>not</strong> go through CC Switch&rsquo;s MCP / Skills sync — those are managed independently on the desktop side.</p>
<h2 id="getting-started" class="headerLink">
    <a href="#getting-started" class="header-mark"></a>Getting started</h2><h3 id="1-switch-to-the-claude-desktop-panel" class="headerLink">
    <a href="#1-switch-to-the-claude-desktop-panel" class="header-mark"></a>1. Switch to the Claude Desktop panel</h3><p>Select <strong>Claude Desktop</strong> from the app switcher on the left.</p>
<p><img class="tw:inline" loading="lazy" src='../../assets/claude-desktop-panel.png'   alt="Claude Desktop panel"  ></p>
<p>If you don&rsquo;t see it, check <strong>Settings → General → App Visibility</strong> to make sure it isn&rsquo;t hidden.</p>
<h3 id="2-import-or-add-a-provider" class="headerLink">
    <a href="#2-import-or-add-a-provider" class="header-mark"></a>2. Import or add a provider</h3><h4 id="one-click-import-from-claude-code-recommended" class="headerLink">
    <a href="#one-click-import-from-claude-code-recommended" class="header-mark"></a>One-click import from Claude Code (recommended)</h4><p>Most users start by configuring providers in Claude Code, then want to bring the same set over to Claude Desktop. If the panel is empty the first time you open it, just click <strong>Import existing providers from Claude Code</strong>.</p>
<p><img class="tw:inline" loading="lazy" src='../../assets/claude-desktop-import-from-claude.png'   alt="Import from Claude Code"  ></p>
<p>This pulls your Claude Code providers straight into the Claude Desktop panel — no need to re-enter endpoint URLs, API keys, or default models. The import logic works roughly like this:</p>
<ul>
<li>Providers with an existing matching ID are skipped</li>
<li>Providers with direct-connectable, model-name-safe configs are imported in direct mode</li>
<li>Providers that need model translation are imported in model-mapping mode</li>
<li><code>ANTHROPIC_DEFAULT_SONNET_MODEL</code>, <code>ANTHROPIC_DEFAULT_OPUS_MODEL</code>, and <code>ANTHROPIC_DEFAULT_HAIKU_MODEL</code> are automatically converted to Desktop&rsquo;s Sonnet / Opus / Haiku mappings</li>
<li>Legacy <code>[1M]</code> suffixes become <code>supports1m</code> flags in the Desktop profile</li>
<li>Providers whose model mappings can&rsquo;t be determined are skipped</li>
</ul>
<p>After importing, check each provider&rsquo;s model mapping against your actual upstream models. Non-Claude models like Kimi, DeepSeek, GLM, and DouBao typically need model-mapping mode.</p>
<h4 id="add-manually" class="headerLink">
    <a href="#add-manually" class="header-mark"></a>Add manually</h4><p>If there&rsquo;s nothing to import, or you want a different provider just for Claude Desktop, click the <strong>+</strong> button in the top-right corner.</p>
<p><img class="tw:inline" loading="lazy" src='../../assets/claude-desktop-add-provider.png'   alt="Add provider to Claude Desktop"  ></p>
<p>Three options:</p>
<ul>
<li><strong>Preset provider</strong>: Pick from built-in presets, only fill in your API key</li>
<li><strong>Custom provider</strong>: Manually enter the name, endpoint, API key, and model settings</li>
<li><strong>Claude Desktop Official</strong>: Revert to Claude Desktop&rsquo;s official login mode</li>
</ul>
<p>For standard Anthropic Messages API-compatible providers, the flow is simple: choose a preset or custom → enter API key → confirm the endpoint → turn off &ldquo;Requires model mapping&rdquo; → add.</p>
<h3 id="3-switch-and-restart-claude-desktop" class="headerLink">
    <a href="#3-switch-and-restart-claude-desktop" class="header-mark"></a>3. Switch and restart Claude Desktop</h3><p>Click <strong>Enable</strong> on the provider card, then <strong>fully quit and restart</strong> Claude Desktop.</p>
<blockquote>
  <p>Claude Desktop doesn&rsquo;t hot-reload. Closing the chat window isn&rsquo;t enough — exit from the tray or make sure the process is completely stopped.</p>

</blockquote><h2 id="two-working-modes" class="headerLink">
    <a href="#two-working-modes" class="header-mark"></a>Two working modes</h2><h3 id="direct-mode" class="headerLink">
    <a href="#direct-mode" class="header-mark"></a>Direct mode</h3><p>Use this when your provider offers a native Anthropic Messages API. CC Switch points Claude Desktop&rsquo;s 3P profile directly to the provider&rsquo;s endpoint:</p>
<div class="code-block highlight is-open show-line-numbers  tw:group tw:my-2">
  <div class="
    
    tw:flex 
    tw:flex-row
    tw:flex-1 
    tw:justify-between 
    tw:w-full tw:bg-bgColor-secondary
    ">      
    <button 
      class="
        code-block-button
        tw:mx-2 
        tw:flex
        tw:flex-row
        tw:flex-1"
      aria-hidden="true">
          <span class="tw:group-[.is-open]:rotate-90 tw:transition-[transform] tw:duration-500 tw:ease-in-out tw:print:hidden! tw:w-min tw:h-min tw:my-1 tw:mx-1"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"/></svg></span>
          <span class="tw:select-none tw:my-1! tw:block">json</span>
      </button>

   <div class="tw:flex">
      <button 
        class="
          line-number-button
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.show-line-numbers]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle line numbers"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"/></svg></button>

      <button 
        class="
          wrap-code-button
          tw:select-none 
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.is-wrap]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle code wrap"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg></button>
      
      <button 
        class="
          copy-code-button
          tw:select-none
          tw:mx-2 
          tw:hidden
          tw:group-[.is-open]:block
          tw:hover:text-fgColor-link 
          tw:print:hidden!"
        title="Copy code">
          <span class="copy-icon tw:block"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg></span>
          <span class="check-icon tw:hidden"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"/></svg></span>
      </button>
        
      <button 
        class="
          tw:select-none 
          tw:mx-2 
          tw:block 
          tw:group-[.is-open]:hidden 
          tw:print:hidden!" 
        disabled
        aria-hidden="true"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg></button>
    </div>
  </div>
  <pre style="counter-reset: codeblock;" class="tw:block tw:m-0 tw:p-0"><code 
    id="codeblock-id-9" 
    class="
      chroma 
      tw:block! 
      tw:p-0
      tw:m-0
      tw:transition-[max-height] 
      tw:duration-500 
      tw:ease-in-out 
      tw:group-[.is-closed]:max-h-0! 
      tw:group-[.is-wrap]:text-wrap
      tw:overflow-y-hidden
      tw:overflow-x-auto
      tw:scrollbar-thin
      "><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;inferenceProvider&#34;</span><span class="p">:</span> <span class="s2">&#34;gateway&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;inferenceGatewayBaseUrl&#34;</span><span class="p">:</span> <span class="s2">&#34;https://api.example.com&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;inferenceGatewayAuthScheme&#34;</span><span class="p">:</span> <span class="s2">&#34;bearer&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;inferenceGatewayApiKey&#34;</span><span class="p">:</span> <span class="s2">&#34;your API key&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre>
</div>
<p>Requirements: the provider exposes a native Anthropic Messages API, uses <code>claude-*</code> or <code>anthropic/claude-*</code> model IDs, and doesn&rsquo;t need format translation. In direct mode, you don&rsquo;t need to keep CC Switch&rsquo;s local routing running.</p>
<p>&ldquo;Manually specify Claude Desktop model list&rdquo; is an advanced option. Most native Claude providers don&rsquo;t need it — Claude Desktop reads <code>/v1/models</code> automatically. Only fill it in if the provider&rsquo;s <code>/v1/models</code> is unavailable or returns model names Claude Desktop doesn&rsquo;t recognize.</p>
<h3 id="model-mapping-mode" class="headerLink">
    <a href="#model-mapping-mode" class="header-mark"></a>Model-mapping mode</h3><p>Use this when your provider doesn&rsquo;t offer Claude-series models (deepseek, kimi, etc.) or its API format needs translation by CC Switch.</p>
<p>With &ldquo;Requires model mapping&rdquo; enabled, Claude Desktop connects to CC Switch&rsquo;s local gateway:</p>
<div class="code-block highlight is-open show-line-numbers  tw:group tw:my-2">
  <div class="
    
    tw:flex 
    tw:flex-row
    tw:flex-1 
    tw:justify-between 
    tw:w-full tw:bg-bgColor-secondary
    ">      
    <button 
      class="
        code-block-button
        tw:mx-2 
        tw:flex
        tw:flex-row
        tw:flex-1"
      aria-hidden="true">
          <span class="tw:group-[.is-open]:rotate-90 tw:transition-[transform] tw:duration-500 tw:ease-in-out tw:print:hidden! tw:w-min tw:h-min tw:my-1 tw:mx-1"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"/></svg></span>
          <span class="tw:select-none tw:my-1! tw:block">text</span>
      </button>

   <div class="tw:flex">
      <button 
        class="
          line-number-button
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.show-line-numbers]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle line numbers"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"/></svg></button>

      <button 
        class="
          wrap-code-button
          tw:select-none 
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.is-wrap]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle code wrap"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg></button>
      
      <button 
        class="
          copy-code-button
          tw:select-none
          tw:mx-2 
          tw:hidden
          tw:group-[.is-open]:block
          tw:hover:text-fgColor-link 
          tw:print:hidden!"
        title="Copy code">
          <span class="copy-icon tw:block"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg></span>
          <span class="check-icon tw:hidden"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"/></svg></span>
      </button>
        
      <button 
        class="
          tw:select-none 
          tw:mx-2 
          tw:block 
          tw:group-[.is-open]:hidden 
          tw:print:hidden!" 
        disabled
        aria-hidden="true"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg></button>
    </div>
  </div>
  <pre style="counter-reset: codeblock;" class="tw:block tw:m-0 tw:p-0"><code 
    id="codeblock-id-10" 
    class="
      chroma 
      tw:block! 
      tw:p-0
      tw:m-0
      tw:transition-[max-height] 
      tw:duration-500 
      tw:ease-in-out 
      tw:group-[.is-closed]:max-h-0! 
      tw:group-[.is-wrap]:text-wrap
      tw:overflow-y-hidden
      tw:overflow-x-auto
      tw:scrollbar-thin
      "><span class="line"><span class="cl">http://127.0.0.1:15721/claude-desktop</span></span></code></pre>
</div>
<p>CC Switch acts as middleware: it exposes safe <code>claude-*</code> model routes to Claude Desktop, maps the selected model role to the actual upstream model, translates between Anthropic / OpenAI / Gemini formats as needed, and authenticates using the credentials stored in CC Switch.</p>
<p>Supported formats:</p>
<table>
  <thead>
      <tr>
          <th>Format</th>
          <th>Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Anthropic Messages</td>
          <td>Native or compatible requests</td>
      </tr>
      <tr>
          <td>OpenAI Chat Completions</td>
          <td><code>/chat/completions</code> compatible</td>
      </tr>
      <tr>
          <td>OpenAI Responses API</td>
          <td>OpenAI Responses compatible</td>
      </tr>
      <tr>
          <td>Gemini Native generateContent</td>
          <td>Gemini native API</td>
      </tr>
  </tbody>
</table>
<p>In model-mapping mode, Claude Desktop only sees <code>claude-*</code> routing model names. The real upstream model names stay inside CC Switch&rsquo;s provider config and never appear in the Claude Desktop profile.</p>
<h2 id="configuring-model-mappings" class="headerLink">
    <a href="#configuring-model-mappings" class="header-mark"></a>Configuring model mappings</h2><p>The key idea: Claude Desktop now rejects non-<code>claude-*</code> model names, so you need CC Switch to do a round of role mapping.</p>
<table>
  <thead>
      <tr>
          <th>Field</th>
          <th>Description</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Model role</td>
          <td>Sonnet / Opus / Haiku route that Claude Desktop recognizes</td>
      </tr>
      <tr>
          <td>Menu display name</td>
          <td>Name shown in Claude Desktop&rsquo;s model picker</td>
      </tr>
      <tr>
          <td>Actual request model</td>
          <td>Real model ID sent to the upstream provider</td>
      </tr>
      <tr>
          <td>1M</td>
          <td>Declare 1M context support to Claude Desktop</td>
      </tr>
  </tbody>
</table>
<p><img class="tw:inline" loading="lazy" src='../../assets/claude-desktop-model-mapping-rows.png'   alt="Claude Desktop model mappings"  ></p>
<p>For example, using Kimi in Claude Desktop:</p>
<table>
  <thead>
      <tr>
          <th>Model role</th>
          <th>Display name</th>
          <th>Actual model</th>
          <th>1M</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Sonnet</td>
          <td>Kimi K2</td>
          <td><code>kimi-k2</code></td>
          <td>Based on provider support</td>
      </tr>
  </tbody>
</table>
<p>Using DeepSeek:</p>
<table>
  <thead>
      <tr>
          <th>Model role</th>
          <th>Display name</th>
          <th>Actual model</th>
          <th>1M</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Sonnet</td>
          <td>DeepSeek V4 Pro</td>
          <td><code>deepseek-v4-pro</code></td>
          <td>Based on provider support</td>
      </tr>
  </tbody>
</table>
<p>Suggested roles:</p>
<table>
  <thead>
      <tr>
          <th>Model role</th>
          <th>Use case</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Sonnet</td>
          <td>Default daily driver</td>
      </tr>
      <tr>
          <td>Opus</td>
          <td>High-quality or complex tasks</td>
      </tr>
      <tr>
          <td>Haiku</td>
          <td>Fast, low-cost scenarios</td>
      </tr>
  </tbody>
</table>
<p>If your provider only has one model, just configuring Sonnet is enough. Model-mapping mode requires at least one valid mapping.</p>
<h2 id="local-routing" class="headerLink">
    <a href="#local-routing" class="header-mark"></a>Local routing</h2><p>Model-mapping mode depends on CC Switch&rsquo;s local routing for request translation. The toggle is hidden by default — you&rsquo;ll need to enable it manually.</p>
<p>Go to <strong>Settings → Routing → Local Routing</strong>, and turn on <strong>Show local routing toggle on main page</strong>.</p>
<p>Back in the Claude Desktop panel, you&rsquo;ll see the local routing toggle in the top-right corner.</p>
<p><img class="tw:inline" loading="lazy" src='https://island-hexo.oss-cn-beijing.aliyuncs.com/20260518134923640.png'   alt="Claude Desktop local routing toggle"  ></p>
<p>Status meanings:</p>
<table>
  <thead>
      <tr>
          <th>Status</th>
          <th>Description</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>On</td>
          <td>Local gateway running at <code>127.0.0.1:15721</code></td>
      </tr>
      <tr>
          <td>Off</td>
          <td>Direct providers still work; model-mapping providers won&rsquo;t</td>
      </tr>
      <tr>
          <td>Loading</td>
          <td>Routing service starting or stopping</td>
      </tr>
  </tbody>
</table>
<p>Only providers with &ldquo;Requires model mapping&rdquo; enabled need local routing. Direct providers don&rsquo;t.</p>
<blockquote>
  <p>If another app is using proxy takeover, turning off local routing may be blocked. Go to the routing service area in Settings, disable the takeover for that app, then stop local routing.</p>

</blockquote><h2 id="reverting-to-official-claude-desktop" class="headerLink">
    <a href="#reverting-to-official-claude-desktop" class="header-mark"></a>Reverting to official Claude Desktop</h2><p>To switch back to official login:</p>
<ol>
<li>Select <strong>Claude Desktop Official</strong></li>
<li>Click <strong>Enable</strong></li>
<li>Restart Claude Desktop</li>
</ol>
<p>CC Switch restores Claude Desktop&rsquo;s official 1P mode and cleans up the 3P profile. Official mode needs no API key or local routing.</p>
<p>When importing from Claude Code, a <strong>Claude Desktop Official</strong> entry is automatically added so you can switch back anytime.</p>
<h2 id="config-file-locations" class="headerLink">
    <a href="#config-file-locations" class="header-mark"></a>Config file locations</h2><p>CC Switch writes to Claude Desktop&rsquo;s 3P config directories:</p>
<p><strong>macOS:</strong></p>
<div class="code-block highlight is-open show-line-numbers  tw:group tw:my-2">
  <div class="
    
    tw:flex 
    tw:flex-row
    tw:flex-1 
    tw:justify-between 
    tw:w-full tw:bg-bgColor-secondary
    ">      
    <button 
      class="
        code-block-button
        tw:mx-2 
        tw:flex
        tw:flex-row
        tw:flex-1"
      aria-hidden="true">
          <span class="tw:group-[.is-open]:rotate-90 tw:transition-[transform] tw:duration-500 tw:ease-in-out tw:print:hidden! tw:w-min tw:h-min tw:my-1 tw:mx-1"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"/></svg></span>
          <span class="tw:select-none tw:my-1! tw:block">text</span>
      </button>

   <div class="tw:flex">
      <button 
        class="
          line-number-button
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.show-line-numbers]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle line numbers"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"/></svg></button>

      <button 
        class="
          wrap-code-button
          tw:select-none 
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.is-wrap]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle code wrap"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg></button>
      
      <button 
        class="
          copy-code-button
          tw:select-none
          tw:mx-2 
          tw:hidden
          tw:group-[.is-open]:block
          tw:hover:text-fgColor-link 
          tw:print:hidden!"
        title="Copy code">
          <span class="copy-icon tw:block"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg></span>
          <span class="check-icon tw:hidden"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"/></svg></span>
      </button>
        
      <button 
        class="
          tw:select-none 
          tw:mx-2 
          tw:block 
          tw:group-[.is-open]:hidden 
          tw:print:hidden!" 
        disabled
        aria-hidden="true"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg></button>
    </div>
  </div>
  <pre style="counter-reset: codeblock;" class="tw:block tw:m-0 tw:p-0"><code 
    id="codeblock-id-11" 
    class="
      chroma 
      tw:block! 
      tw:p-0
      tw:m-0
      tw:transition-[max-height] 
      tw:duration-500 
      tw:ease-in-out 
      tw:group-[.is-closed]:max-h-0! 
      tw:group-[.is-wrap]:text-wrap
      tw:overflow-y-hidden
      tw:overflow-x-auto
      tw:scrollbar-thin
      "><span class="line"><span class="cl">~/Library/Application Support/Claude/claude_desktop_config.json
</span></span><span class="line"><span class="cl">~/Library/Application Support/Claude-3p/claude_desktop_config.json
</span></span><span class="line"><span class="cl">~/Library/Application Support/Claude-3p/configLibrary/_meta.json
</span></span><span class="line"><span class="cl">~/Library/Application Support/Claude-3p/configLibrary/00000000-0000-4000-8000-000000157210.json</span></span></code></pre>
</div>
<p><strong>Windows:</strong></p>
<div class="code-block highlight is-open show-line-numbers  tw:group tw:my-2">
  <div class="
    
    tw:flex 
    tw:flex-row
    tw:flex-1 
    tw:justify-between 
    tw:w-full tw:bg-bgColor-secondary
    ">      
    <button 
      class="
        code-block-button
        tw:mx-2 
        tw:flex
        tw:flex-row
        tw:flex-1"
      aria-hidden="true">
          <span class="tw:group-[.is-open]:rotate-90 tw:transition-[transform] tw:duration-500 tw:ease-in-out tw:print:hidden! tw:w-min tw:h-min tw:my-1 tw:mx-1"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"/></svg></span>
          <span class="tw:select-none tw:my-1! tw:block">text</span>
      </button>

   <div class="tw:flex">
      <button 
        class="
          line-number-button
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.show-line-numbers]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle line numbers"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"/></svg></button>

      <button 
        class="
          wrap-code-button
          tw:select-none 
          tw:mx-2 
          tw:hidden 
          tw:group-[.is-open]:block 
          tw:group-[.is-wrap]:text-fgColor-link 
          tw:print:hidden!" 
        title="Toggle code wrap"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg></button>
      
      <button 
        class="
          copy-code-button
          tw:select-none
          tw:mx-2 
          tw:hidden
          tw:group-[.is-open]:block
          tw:hover:text-fgColor-link 
          tw:print:hidden!"
        title="Copy code">
          <span class="copy-icon tw:block"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg></span>
          <span class="check-icon tw:hidden"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"/></svg></span>
      </button>
        
      <button 
        class="
          tw:select-none 
          tw:mx-2 
          tw:block 
          tw:group-[.is-open]:hidden 
          tw:print:hidden!" 
        disabled
        aria-hidden="true"><svg class="icon"
    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg></button>
    </div>
  </div>
  <pre style="counter-reset: codeblock;" class="tw:block tw:m-0 tw:p-0"><code 
    id="codeblock-id-12" 
    class="
      chroma 
      tw:block! 
      tw:p-0
      tw:m-0
      tw:transition-[max-height] 
      tw:duration-500 
      tw:ease-in-out 
      tw:group-[.is-closed]:max-h-0! 
      tw:group-[.is-wrap]:text-wrap
      tw:overflow-y-hidden
      tw:overflow-x-auto
      tw:scrollbar-thin
      "><span class="line"><span class="cl">%LOCALAPPDATA%\Claude\claude_desktop_config.json
</span></span><span class="line"><span class="cl">%LOCALAPPDATA%\Claude-3p\claude_desktop_config.json
</span></span><span class="line"><span class="cl">%LOCALAPPDATA%\Claude-3p\configLibrary\_meta.json
</span></span><span class="line"><span class="cl">%LOCALAPPDATA%\Claude-3p\configLibrary\00000000-0000-4000-8000-000000157210.json</span></span></code></pre>
</div>
<p>Config files are maintained by CC Switch — editing them manually isn&rsquo;t recommended. If things get out of sync, re-enabling the current provider usually fixes it.</p>
<h2 id="faq" class="headerLink">
    <a href="#faq" class="header-mark"></a>FAQ</h2><h3 id="i-switched-but-claude-desktop-hasnt-changed" class="headerLink">
    <a href="#i-switched-but-claude-desktop-hasnt-changed" class="header-mark"></a>I switched but Claude Desktop hasn&rsquo;t changed?</h3><p>Fully quit and restart Claude Desktop. It only reads the 3P profile on startup — no hot reload.</p>
<h3 id="requests-fail-with-a-model-mapping-provider" class="headerLink">
    <a href="#requests-fail-with-a-model-mapping-provider" class="header-mark"></a>Requests fail with a model-mapping provider?</h3><p>Checklist: Is CC Switch running → Is Claude Desktop local routing on → Are the API key and endpoint correct → Did you fill in the actual request model in the mapping → Did you restart Claude Desktop after switching.</p>
<h3 id="why-am-i-getting-errors-in-direct-mode" class="headerLink">
    <a href="#why-am-i-getting-errors-in-direct-mode" class="header-mark"></a>Why am I getting errors in direct mode?</h3><p>Direct mode requires the provider to offer a native Anthropic Messages API and accept the model names Claude Desktop uses. If your provider uses OpenAI, Gemini, or non-Claude model IDs, turn on &ldquo;Requires model mapping.&rdquo;</p>
<h3 id="my-custom-brand-name-doesnt-show-in-the-model-picker" class="headerLink">
    <a href="#my-custom-brand-name-doesnt-show-in-the-model-picker" class="header-mark"></a>My custom brand name doesn&rsquo;t show in the model picker?</h3><p>Edit the provider, fill in the &ldquo;Menu display name&rdquo; in the model mapping, then re-enable the provider and restart Claude Desktop.</p>
<h3 id="can-i-close-cc-switch" class="headerLink">
    <a href="#can-i-close-cc-switch" class="header-mark"></a>Can I close CC Switch?</h3><p>In direct mode, yes — once Claude Desktop loads the config after restart, you don&rsquo;t need local routing running. In model-mapping mode, no — CC Switch must stay running with the local routing toggle on.</p>
<h3 id="will-my-real-upstream-model-names-be-written-to-claude-desktop" class="headerLink">
    <a href="#will-my-real-upstream-model-names-be-written-to-claude-desktop" class="header-mark"></a>Will my real upstream model names be written to Claude Desktop?</h3><p>Not in model-mapping mode. The Claude Desktop profile only contains safe <code>claude-*</code> routes and display names. The actual upstream model names stay in CC Switch&rsquo;s provider config, and the mapping happens at the local gateway.</p>
<h2 id="summary" class="headerLink">
    <a href="#summary" class="header-mark"></a>Summary</h2><p>The Claude Desktop panel in CC Switch essentially brings the provider management that was previously CLI-only to the desktop side. If you&rsquo;ve already set up a bunch of providers in CC Switch, the one-click import from Claude Code is the fastest path.</p>
<p>Direct mode is hassle-free; model-mapping mode is flexible. If you mainly use Claude-series models, direct mode is all you need. If you want to use Kimi, DeepSeek, or other non-Claude models inside Claude Desktop, model-mapping mode with local routing gets it done.</p>
]]></description></item></channel></rss>