20 KiB
CC Switch v4.0.13
今回のリリースでは、Claude Desktop でも Claude Code や Codex と同じように、ページ上部で直接接続、ルーティング、集約の 3 つのモードを選べるようになりました。ルーティングモードではモデル一覧がルーティング先に合わせて変わり、集約モードでは複数のプロバイダーのモデルを同時に Desktop のモデル一覧に入れられます。Codex には「自動承認モデル」を追加しました。自動承認(Approve for me)をオンにしたサードパーティのプロバイダーで、ほとんどの中継にはないモデルをリクエストして 404 になることはなくなりました。集約モードでは、サブエージェントが使うモデルと推論強度を個別に指定することもできます。直接接続に戻す前には確認ダイアログを表示し、どのプロバイダーに接続するか、どのファイルを変更するかを明記するようになりました。GPT 系モデルのコンテキストウィンドウは一律 272K を上限とし、ウィンドウを大きく書きすぎたせいでなかなか圧縮されず、最後にアップストリームに拒否されることはなくなりました。Windows ポータブル版の更新ボタンは、対応するアーカイブを直接ダウンロードするようになりました。Claude Code の Haiku 枠でも 1M コンテキストを宣言できるようになり、モデル自体が 1M ウィンドウのプリセットは 1M が最初からオンになります。ほかにも、Codex の設定を保存するときに「duplicate key」と表示される問題、ルーティングモードで Codex のリモート圧縮が効かなくなる問題、fnm で多くのバージョンをインストールしているとモードの切り替えが数分間止まる問題、Windows 11 でウィンドウがフリーズする問題などを修正しました。4.0 の更新内容の全体は v4.0 リリースノート をご覧ください。
新機能
Claude Desktop:直接接続、ルーティング、集約から選べるようになりました。 これまで Claude Desktop では、直接接続にするかモデルマッピングを使うかをカードごとに決めており、マッピングのサービスを起動するかどうかも別のスイッチでした。現在は Claude Code、Codex、Gemini CLI、Grok Build と同じモードパネルを使い、ページ上部で選びます:
- 直接接続:プロバイダーのアドレスと Key を Desktop の設定に直接書き込み、リクエストは CC Switch を経由しません。モデルマッピングが必要なカードは直接接続できず、先に「ルーティングを開始」するよう案内します。
- ルーティング:Desktop のリクエストはこのマシンの CC Switch を経由してルーティング先に転送され、モデル一覧はルーティング先のマッピング表にあるモデルに置き換わります。その後ルーティング先を切り替えたときは、モデル一覧が変わる場合にだけ Desktop の設定ファイルを書き換えます。
- 集約:デフォルトのプロバイダーのモデルが先頭に並び、集約に加えたほかのプロバイダーのモデルが「プロバイダー / モデル」という名前で一緒に Desktop のモデル一覧に表示されます。選んだモデルはそのプロバイダーに送られ、最大 200 個までです。
Desktop は起動時にしか設定を読み込まないため、モードやルーティング先を変えたり、集約のメンバーを増減したりした後は、そのたびに Desktop を再起動しないと反映されません。画面でそれぞれ案内します。Desktop のルーティングにはフェイルオーバーはありません。CC Switch を終了しても Desktop の設定はそのまま残るので、ルーティングや集約を使い続けるには CC Switch を起動したままにしておく必要があります。これまでモデルマッピングのカードを使っていた場合は、アップグレード後に自動でルーティングモードになります。詳しくは末尾のアップグレードに関する注意をご覧ください。
Codex:自動承認に別のモデルを使えるようになりました。 Codex で自動承認(Approve for me)をオンにすると、サンドボックスの権限昇格のたびに承認モデルが許可するかどうかを判断し、そのリクエストはメインの会話と同じプロバイダーに送られます。サードパーティのカードではこれまでこのモデルを選べませんでした。モデル一覧がないと、Codex はプロバイダーに公式の codex-auto-review をリクエストしますが、ほとんどの中継はこれを受け付けず、そのまま 404 になります。モデル一覧がある場合はメインモデル自身が承認していました(#8015、#5903、#3855)。
- 直接接続とルーティング:Codex のカードに「自動承認モデル」を追加し、そのカードのモデル一覧から 1 つ選べるようにしました。公式のカードにはこの項目は表示されません。カードにモデル一覧がない場合は選択できず、その理由を表示します。
- 集約:集約タブの「集約設定」で選びます。集約内のほかのプロバイダーのモデルも選べるので、承認を別のプロバイダーに送れます。
- 変更後は Codex を再起動する必要があります。
Codex の集約モード:サブエージェントに別のモデルを使えるようになりました。 これまで集約モードでは [agents] のサブエージェントのモデルを取り除いていたため、サブエージェントはメインモデルに従うしかありませんでした(#8286)。現在は「Codex で集約を使いますか?」の確認ダイアログと、新しい「集約設定」のどちらでも「サブエージェントのモデル」と「サブエージェントの推論強度」を選べます。Codex を再起動しなくても、新しく開いた会話から反映されます。選んだモデルが集約に含まれなくなった場合(メンバーが削除された、またはそのプロバイダーがデフォルトになった場合)、サブエージェントは一時的にメインモデルに従い、再び追加すると自動で戻ります。
Claude Code:Haiku 枠でも 1M を宣言できるようになりました。 これまで「モデルマッピング」で「1M 対応を宣言」にチェックできたのは Sonnet、Opus、Fable、サブエージェントの行だけでした。以前の Haiku モデルには 1M ウィンドウがなかったためです。いまでは Haiku 枠にサードパーティのモデルを指定することも多く、Claude Code は claude- で始まらないモデル名をすべて 200K ウィンドウとして扱うため、チェックしないと早めに圧縮されていました。現在はすべての行で 1M を宣言できます。ルーティングモードは影響を受けません。ルーティングで使う Haiku のエイリアスはもともと 1M として扱われます。
プリセット: TokenFactory、Modelflare を追加しました。
Windows ポータブル版:更新ボタンでアーカイブを直接ダウンロードします。 ポータブル版はもともと起動時に更新を確認していましたが、「vX に更新」を押してもリリースページが開くだけで、数十個のファイルの中から対応するアーカイブを自分で探す必要がありました(#8300)。現在は、使っているアーキテクチャ(x64 / ARM64)に対応するポータブル版のアーカイブを直接ダウンロードします。展開して元の cc-switch.exe を上書きするだけで済みます。設定とデータはユーザーディレクトリの .cc-switch に保存されているので、上書きしても失われません。ウイルス対策ソフトにブロックされるのを避けるため、CC Switch が自分で自分のプログラムファイルを置き換えることはしません。
改善
直接接続に戻す前に確認するようになりました。 ルーティングや集約に入るときはもともと確認ダイアログがありましたが、直接接続に戻すときはクリックするとすぐに反映され、見落としやすい「元に戻す」が通知に出るだけでした。現在は「直接接続に戻す」ボタン、カードの「直接接続に戻して使う」、ルーティングのサービスが停止したときの通知のいずれからも、まず確認ダイアログを表示し、クライアントがどのプロバイダーに直接接続するか、どのファイルのアドレスとキーが元に戻されるかを明記します。ルーティングから戻すときはルーティング先、フェイルオーバーのキューと設定がすべて保持されることを、集約から戻すときはどのモデルが /model から消えるかを説明します。エラーは確認ダイアログの中に直接表示し、「元に戻す」はなくしました。
Codex:「集約モードでサブエージェントにクラシックツールを使う」がデフォルトでオンになりました。 メインエージェントとサブエージェントが別のプロバイダーにあると、Codex の新しいサブエージェントツールはタスクを暗号化し、メインエージェント側のプロバイダーしか復号できないため、サブエージェントにタスクが届きません(#8253)。このスイッチを設定ページから「集約設定」に移し、デフォルトでオンにしました。
GPT モデルのコンテキストウィンドウの上限を 272K にしました。 models.dev では GPT-5.6、GPT-6 系列のウィンドウは OpenAI API の 105 万と書かれていますが、多くの中継は ChatGPT のサブスクリプションを使って転送しており、サブスクリプションの上限は 272K です。CC Switch はアドレスからどちらなのかを見分けられません。ウィンドウを大きく書きすぎると、クライアントはアップストリームがリクエストを拒否するまでずっと圧縮せず、そのターンはそのまま失敗します。小さく書いた場合は少し早めに圧縮されるだけです。現在は、プロバイダーを追加するときに自動補完する GPT のウィンドウは一律 272K を超えず、Hermes、OpenClaw、OpenCode、Pi、Codex のプリセットにある GPT のウィンドウもあわせて引き下げました。Claude Code で ChatGPT のサブスクリプションを使う「Codex」プリセットは 372K から 272K に変更しました。272K より小さいウィンドウは変わりません。
モデル自体が 1M ウィンドウのプリセットは、1M が最初からオンになりました。 Claude Code は認識できないモデル名を 200K ウィンドウとして扱います。GLM-5.3、Kimi K3、DeepSeek V4、Qwen3.8、MiniMax-M3、MiMo、LongCat などの 1M モデルを使う 23 個のプリセットはこれを宣言しておらず、直接接続では 200K 前後で自動圧縮が始まっていました。現在はこれらのプリセットで 1M モデルを使う枠に「1M 対応を宣言」が最初からチェックされています。Kimi For Coding は意図的に 256K の圧縮ウィンドウのままです。Claude Desktop でも、同じモデルを使う 12 個のプリセットと、Claude Sonnet 5・Opus 5 を中継する 50 個のプリセットがモデル一覧で 1M を宣言するようになりました。Claude Haiku 4.x のウィンドウは 200K しかなく、一部のプリセットで誤って 1M と表示されていたのを修正しました。
修正
- Codex の設定を保存するときに「duplicate key custom in table model_providers」と表示されていた問題(#8271)。
config.tomlのプロバイダーのテーブルヘッダーに引用符が付いている([model_providers."custom"])と認識できず、保存時に同じ名前のテーブルをもう 1 つ追加していました。現在は二重引用符、単一引用符、空白を含む書き方のいずれも認識できます。 - ルーティングまたは集約モードで、Codex のリモート圧縮が効かなくなっていた問題(#8338)。ルーティングや集約に入ったとき、現在のプロバイダーを保存したとき、または CC Switch を再起動した後に、プロバイダーで有効にしていたリモート圧縮の設定が失われ、Codex がローカルの要約による圧縮を使うようになり、検索履歴を含むセッションで
response protection is unavailableが出ることがありました。現在はルーティング先の圧縮設定を保持します。 - ルーティングで OpenAI Chat のアップストリームに変換しているとき、応答の終了後にさらにエラーを受け取ることがあった問題(#8281)。アップストリームが
[DONE]を送り終えてから接続を切ると、CC Switch は正常に終了した後にさらにエラーを送るか、その後の内容を転送し続けていました。現在は[DONE]を受け取った時点で終了します。 - OpenCode のセッションの所要時間が常に 0 で、速度の列が空だった問題(#6326)。現在は各メッセージの開始時刻と完了時刻から所要時間を計算し、推定速度を表示できます。
- Codex の分岐した会話で、ページ送り後の使用量がいつまでも計上されなかった問題(#8161)。分岐した会話のページ送りで生成される続きのファイルが、新しく派生したサブセッションとして扱われ、親セッションがその時点まで書き込むのをずっと待っていました。現在はそれが分岐した会話自身の続きであることを認識します。
- fnm で多くの Node バージョンをインストールしていると、モードの切り替えが数分間止まっていた問題(#8313)。コマンドラインツールを探すときの重複除去の処理がパス数の 2 乗に比例して重くなり、fnm の multishell ディレクトリが増えるととても遅くなっていました。現在はパスが多くても数十ミリ秒で済みます。
- Windows 11 でウィンドウがフリーズし、メインスレッドが高負荷のままになっていた問題(#8321、#8324)。原因は WebView2 がネイティブのドラッグ領域を処理するところにありました。Windows ではネイティブのドラッグ領域を使わないようにし、ドラッグとダブルクリックでの最大化はアプリ自身の処理に切り替えました。タイトルバーの使い方は変わりません。
- Claude Code の集約モードで、Haiku 枠のウィンドウが 200K しかなかった問題。集約モードは Haiku 枠の 1M 宣言を外しており、集約モデルの名前は
claude-で始まらないため、Claude Code は 200K として扱っていました。現在は Haiku 枠もほかの枠と同じく 1M 宣言を保持します。 - Codex の集約モードでデフォルトのプロバイダーを変更するとき、プレビューで元のデフォルトのプロバイダーのモデルが 0 個と数えられていた問題。デフォルトのプロバイダー自体は集約モデルを公開しませんが、デフォルトから外れるとそのモデルはすべて集約に加わります。現在のプレビューでは、外れた後の数を表示します。
アップグレードに関する注意
データベースの構造は変わっていません。 バージョンは 20 のままです。
- 現在モデルマッピングのカードを使っている Claude Desktop は、初回起動時に自動でルーティングモードに切り替わってそのカードにルーティングし、直接接続側のプロバイダーは公式に変わります。Claude Desktop を再起動すると反映されます。
- Codex の「集約モードでサブエージェントにクラシックツールを使う」はデフォルトでオンになり、以前オフにしていた設定は引き継がれません。オフにしたい場合は「集約設定」でもう一度オフにしてください。
- GPT のウィンドウの上限は、新しく追加するプロバイダーと新しく補完するモデルのパラメーターにだけ影響します。追加済みのカードは元のウィンドウのままです。
- 自動承認モデルを変更した後は Codex を再起動してください。
- 1M に関するプリセットの変更は、新しく追加するプロバイダーにだけ反映されます。追加済みのカードは「モデルマッピング」で「1M 対応を宣言」に自分でチェックできます。
謝辞
@HEOJUNFO(Codex の引用符付きのプロバイダーのテーブルヘッダー)、@zqtqzy(ルーティングモードでの Codex のリモート圧縮)、@xue-ding-e(Chat ストリームを [DONE] で終了)、@zhengkaics と @SailingLoong(OpenCode のセッションの所要時間)、@Lingbou(Codex の分岐した会話のページ送りの使用量)、@hulkbig(fnm のパスの重複除去)、@funkpopo(Windows のウィンドウのフリーズ)の貢献に感謝します。
問題の報告、再現情報や修正のアイデアの提供に協力してくださった @zhangchuanqiang-cloud、@SRQuan、@vvvss7992、@obsidian0215、@wangding0610、@XinwangTao、@RRRRSH、@YwaQ96、@Tison6、@haveqqq、@cc10143、@KDB-Wind に感謝します。
技術的な詳細は CHANGELOG をご覧ください。