18 KiB
CC Switch v4.0.20
今回のリリースでは、Oh My Pi に対応しました。CC Switch が管理する 13 番目のアプリです。複数のプロバイダーを同時に models.yml に書き込むことができ、MCP、Skills、プロンプトは Oh My Pi に同期され、セッションは閲覧と再開ができます。「アプリ」ページで Oh My Pi のインストール、アップグレード、アンインストールもできます。「アプリ」ページは「インストール済み」「未インストール」の 2 つのグループに分かれ、インストール済みのアプリはドラッグで並べ替えられ、サイドバーもその順序に従います。Kimi 公式アカウントのカードでモデルを編集したり、Kimi Code から削除したりできるようになり、マネージド ChatGPT アカウントはブラウザでログインできるようになりました。このほか、DeepSeek の残高を使い切ると「プラン期限切れ」と表示される、Kimi Code のサブエージェントの使用量が集計されない、Skills の更新で HTTP 429 が出続ける、Pi の API Key を環境変数の参照で書くと利用枠の照会が 401 になる、Claude Code のセッションのタイトルが <local-command-stdout> と表示される、Linux でアプリ内ウィンドウボタンを有効にするとヘッダーでウィンドウをドラッグできない、といった問題を修正しました。4.0 の更新内容の全体は v4.0 リリースノート をご覧ください。
新機能
Oh My Pi
Oh My Pi(コマンドは omp)が独立したアプリになりました。プロバイダー、MCP、Skills、プロンプト、セッションをそれぞれ持ちます(#6747、#8308)。設定は ~/.omp/agent にあり、名前付きのプロファイルを使っている場合は ~/.omp/profiles/<name>/agent を使います。設定でほかのディレクトリに変更することもできます。
- プロバイダーを同時に有効にできます。 Pi と同じく、カードには「有効にする」「削除」があり、複数のプロバイダーを同時に
models.ymlに書き込み、Oh My Pi の中で選んで使います。変更するのは CC Switch が書き込んだエントリだけで、ファイルのほかの内容はそのまま残ります。YAML のアンカーやタグといった書き方を使っているエントリは書き換えず、手動で変更するよう案内します。 - 書き込む前に Oh My Pi のルールで確認します。 Oh My Pi はプロバイダーが 1 つでもルールに合わないと、カスタムプロバイダーをすべて無効にするため、Oh My Pi が受け付けない値を入力した場合は保存するときに通知し、書き込みません。旧形式の
models.jsonだけがあり、models.ymlがまだない場合は、先にompを一度実行して Oh My Pi 自身に移行させるよう案内します。新しいファイルを作って元のプロバイダーを使えなくしてしまうことはありません。 - プロバイダーの追加。 フォームは Pi と共通で、プリセットも Pi のカタログから取ります。「モデル一覧を取得」した後は、ダイアログでモデルを選びます。「モデルの自動検出」(Oh My Pi 自身がエンドポイントに利用できるモデルを問い合わせる機能)は、ヘッダー、互換性オプションと一緒に「詳細オプション」にあります。API Key には環境変数名を書くこともでき、利用枠を照会するときは CC Switch が Oh My Pi のルールに従って実際の値を取り出します。
- MCP、Skills、プロンプト。 MCP は
mcp.jsonに書き込み、Skills は Oh My Pi 自身のスキルディレクトリにインストールし、プロンプトはAGENTS.mdに書き込みます。Oh My Pi はほかのツールのディレクトリからも MCP とスキルを探すため、実際に読み込まれるものが CC Switch に表示されているものより多い場合があります。この点は MCP と Skills のページにある Oh My Pi の列の説明で解説しています。 - セッション。 Oh My Pi のセッションを閲覧、再開でき、プレビューではプロジェクト内の画像も表示できます。
- 「アプリ」ページで Oh My Pi を管理。 公式のインストールスクリプトでインストールし(Bun が入っていれば Bun を使い、なければ公式のバイナリをダウンロードします)、アップグレードでは
omp updateを実行します(Homebrew でインストールした場合は引き続き Homebrew を使います)。アンインストールもできます。 - Oh My Pi はローカルルーティングを経由せず、使用量もまだ集計しません。
マネージド ChatGPT アカウントがブラウザでログインできるように
「アカウント」ページまたは Codex のプロバイダーフォームでマネージド ChatGPT アカウントを追加するとき、「ログイン方法」で「ブラウザでログイン」を選べるようになりました(#8288、#8284)。一部の企業ワークスペースではデバイスコードによるログインが無効になっており、これまでそうしたアカウントは追加できませんでした。再ログインにもブラウザを使えます。「デバイスコードでログイン」も引き続き選べます。
改善
「アプリ」ページを「インストール済み」「未インストール」の 2 つのグループに分けました。 各グループの見出しには件数が付き、アプリのないグループは表示しません。開いた直後のまだ検出しているあいだは 1 つの表で表示し、検出が終わってからグループに分けるので、行が 1 つずつ移動することはありません。Claude Desktop には調べられるコマンドがないため、Desktop がインストールされているかどうかでグループを分け、行には従来どおり CC Switch に接続済みかどうかを表示します。
インストール済みのアプリをドラッグで並べ替えられるように。 行にマウスを移すと行の先頭にドラッグ用のハンドルが表示され、プロバイダーカードの並べ替えと同じように操作できます。サイドバーと既定で開くアプリもこの順序に従います。順序はこのパソコンにだけ保存され、クラウドには同期されません。
Kimi 公式アカウントのカードを編集、削除できるように。 これまで公式カードは「アカウント」ページでしか管理できず、モデルはログインしたときのままでした。現在はカードを編集できます。接続とログインは引き続き「アカウント」ページで管理し、ここで変更するのはモデルだけです。「モデル一覧を取得」はこのアカウントで現在使える公式モデルを読み込み、公式のコンテキストウィンドウ、機能、思考レベルも反映します。公式カードもほかの Kimi のプロバイダーと同じく、Kimi Code から「削除」できます。カードとログインは残るので、もう一度「追加」を押せば元に戻ります。完全に削除するには、先に「削除」で外すか、「アカウント」ページで削除します。
Kimi Code のプランがない Kimi アカウントには「未契約」と表示するように。 これまでは「アカウント」ページと公式カードの利用枠の欄が空のままで、照会に失敗したように見えていました。
残高を使い切っても金額を表示するように。 残高がゼロまたはマイナスのとき、これまでプロバイダーカードとトレイには「残高なし」としか表示されず、どれだけ不足しているかがわからないうえ、赤い文字も「残量を取得できません」と見分けがつきませんでした。現在は常に「残高 <金額>」と表示し、ゼロまたはマイナスのときは、これまでどおりカードでは行全体が赤く、トレイではオレンジ色になります。
利用枠の照会に失敗したときの中国語の表示を「额度查询失败」に変更しました(以前は「额度没查到」)。プロバイダーカード、「アカウント」ページ、トレイがまとめて変わります。変更したのは簡体字中国語と繁体字中国語(「額度查詢失敗」)の表示だけで、日本語の「残量を取得できません」は変わりません。
Pi で「モデル一覧を取得」した後、ダイアログで選べるように。 これまでは 1 行ずつドロップダウンから選ぶしかありませんでしたが、現在は OpenCode、Codex、Kimi Code と同じく一覧が表示され、選んだモデルは自動で 1 行ずつ追加され、プリセットや models.dev からパラメーターが補われます。選択を外すと対応する行が削除されます。行ごとのドロップダウンも引き続き使えます。
Pi のヘッダーと互換性オプションを「詳細オプション」にまとめました。 既定では折りたたまれており、Claude Code、Codex のフォームと同じです。互換性オプションの説明もわかりやすい言葉に書き直しました。
Claude Code、Claude Desktop で GitHub Copilot のプロバイダーを選ぶと、上流フォーマットに「モデルに応じてルーティングが自動選択」と表示するように(#8196、#8195)。Copilot の上流フォーマットはもともとモデルに応じて自動で選ばれますが、これまではフォームで手動で選べてしまい、選んでも反映されませんでした。
使用量ページの明細タブの件数を一度にすべて表示するように。 これまでは「モデル」タブは開くまで件数が出ず、アプリを切り替えると 3 つの件数がいったん消えてからまた表示され、タブバーもそれに合わせてずれていました。
料金表に Kimi K3.1 Pro と K3.1 Pro HighSpeed を追加しました。
トルコ語の翻訳を補完しました(#8616)。
プリセット: 各社のプリセットのモデルを現在の最新モデルに更新しました。Key を入力すればそのまま使えます。
修正
- DeepSeek の残高がゼロまたはマイナスのとき、カードとトレイに「プラン期限切れ」と表示され、残高の数字が消える問題(#8812)。DeepSeek が返す「利用可能かどうか」は残高が呼び出しに足りるかどうかを示すだけで、残高がゼロになると「いいえ」になりますが、Key 自体は有効なままです。現在は通常どおり残高を表示します。Key が本当に無効になっている場合は、引き続き認証エラーとして通知します。
- Kimi Code のサブエージェントの使用量が集計されない問題(#8792)。Kimi Code はサブエージェントごとの記録を別のファイルに書き込みますが、これまではメインエージェントのファイルしか読んでいませんでした。現在はすべてのサブエージェントを取り込み、呼び出しごとに記録するので、メインエージェントの集計と重複して計上されることはありません。
- Antigravity のサブエージェントと ACP セッションの使用量が不明なモデルとして記録される問題(#8693)。現在は agy のローカルの会話データベースからモデルを取得します(読み取りのみで、agy の書き込みが終わるのを待つこともありません)。
- Skills のインストールや更新で HTTP 429 が出続ける問題(#8813)。GitHub リポジトリのアーカイブをダウンロードするときに User-Agent を付けていませんでした。GitHub はこうしたリクエストをより厳しく制限しており、複数の人が 1 つの送信元 IP を共有しているとさらに起きやすくなります。現在は
CC-Switch/<version>を付けます。 - Pi の API Key を
$NAME、${NAME}のような環境変数の参照で書くと、利用枠と残高の照会が 401 になる問題(#8822)。これまでは参照をそのまま Key として送っていましたが、現在は Pi のルールに従って変数の値を取り出します。変数が設定されていない場合も、参照を Key として送ることはなくなりました。!command形式の Key は、これまでどおり CC Switch が実行することはありません。取り出した値はその照会にだけ使い、設定には書き戻しません。 - セッション管理で Claude Code のセッションのタイトルが
<local-command-stdout>Set model to opus</local-command-stdout>と表示される問題(#8799、#8798)。セッションの冒頭で/model、/effortなどのローカルコマンドを実行するとタイトルがこうなり、最後にローカルコマンドを実行した場合は一覧の最後のメッセージにもコマンドの出力が表示されていました。現在はこうした記録をスキップします。 - Linux で「アプリ内ウィンドウボタンを有効化」をオンにすると、ヘッダーでウィンドウをドラッグできず、ウィンドウの端にサイズ変更のカーソルも表示されない問題(#8092、#8091)。
- Codex が Chat のアップストリームを経由するとき、画像付きの孤立したツール結果で、プレースホルダーの文が画像は「次のメッセージ」にあると書いているのに、実際にはそのメッセージがない問題(#8157)。現在は画像が画像として添付済みであると書くようにしました。
アップグレードに関する注意
データベースのバージョンが 22 から 23 に上がります。 MCP に Oh My Pi のスイッチを追加するためです。アップグレード前にデータベースは自動でバックアップされます。アップグレード後に旧バージョンに戻すと、旧バージョンはデータベースのバージョンが新しすぎると表示し、開けません。
- Oh My Pi はデフォルトでサイドバーに表示されます。使わない場合は「アプリ」ページで「Oh My Pi をサイドバーに表示」をオフにできます。
謝辞
@JackieJK、@allenxu09(Oh My Pi への対応)、@Llugaes(ChatGPT アカウントのブラウザログイン)、@dsdbb520(Antigravity のサブエージェントの使用量)、@L4XB(Claude Code のセッションのタイトル)、@vianrina(Linux のウィンドウのドラッグ)、@Railgun-wiki(Copilot の上流フォーマット)、@NeeYoonc(孤立したツール結果の画像のプレースホルダー)、@alkank(トルコ語の翻訳)の貢献に感謝します。
問題の報告、再現情報や修正のアイデアの提供に協力してくださった @CypressStar、@taylortaurus、@SoraStr、@Lain-in-coding、@TomMao23、@L-Molish、@taki-ohh に感謝します。
以下のコントリビューターの皆さんに、心より感謝申し上げます。皆さんの PR は実際に起きていた問題を見つけ、修正してくださいました。同じ問題がその後メインラインで別途修正されたため、PR はクローズとなりました。@yvzhou1111、@AkimioJR、@KirisameLonnet。
技術的な詳細は CHANGELOG をご覧ください。