Files

13 KiB

CC Switch v4.0.18

This release adds support for Antigravity CLI (agy), the 11th app managed by CC Switch. You can add official sign-in cards and third-party API key cards for agy. Note: an Antigravity provider only takes effect in agy started from "Open Terminal with This Provider" on a CC Switch card; running agy directly in any other terminal does not use it. MCP, Skills and prompts sync to agy, sessions can be browsed and resumed, and usage is imported from session logs; the "Apps" page can install, upgrade and uninstall agy. On macOS, Accounts can also manage several Antigravity accounts: switch agy's sign-in in one click, see each account's quota, and bind an official card to an account. Also, in-app updates on Windows no longer restart the computer because a file is in use, and the MSI installer lets you skip creating a desktop shortcut; the header now shows the actual connection as a small badge next to the app name. Other fixes cover routing failing on macOS under many concurrent requests because file handles ran out, "Restart Codex daemon" failing with env: node when CC Switch is launched from Finder, Claude Code sessions staying under the old project after changing directory with /cd, the button on Windows spinning after opening a terminal until the terminal window was closed, Codex quota windows that were never used showing a countdown, and DeepSeek V4.1 Flash having no pricing. For everything new in 4.0, see the v4.0 release notes.


New

Antigravity CLI (agy)

Google's Antigravity CLI (the command is agy) is now a separate app with its own providers, MCP, Skills, prompts, sessions and usage, managed separately from Gemini CLI (#8268, #2959).

⚠️ An Antigravity provider only takes effect when agy is started in a terminal from CC Switch. Unlike other apps, CC Switch does not change agy's own settings files, so Antigravity cards have no "Switch" and no "In use". To use a card, click "Open Terminal with This Provider" on that card; only agy run in the terminal that opens uses that provider. Running agy directly in any other terminal still uses agy's own Google sign-in and settings. (Switching accounts in Accounts on macOS is the exception: it changes agy's global sign-in; see the next section.)

  • Two kinds of provider cards. An official sign-in card uses agy's own Google sign-in and, when opening a terminal, starts agy with the model chosen on the card, for that session only; a third-party card takes the address and key of a Gemini API-compatible service, and leaving the address empty uses Google's default API. The key and address are given only to agy in that terminal and are not written to agy's config or to shell startup files (the temporary file used for launching is deleted automatically). The model list comes from agy's built-in model catalog, using the display names agy recognizes.
  • MCP, Skills, prompts. Synced to ~/.gemini/config, agy's global customization folder, which may be shared with Antigravity IDE on the same computer. agy started from a third-party card can use these MCP servers, Skills and prompts too.
  • Sessions. You can browse agy and Antigravity IDE sessions; only what you typed is shown, not the context agy adds itself. Sessions started from a third-party card can be found too, and are resumed with the same card.
  • Usage. Imported from session logs (including Antigravity IDE sessions) and recorded under the model chosen for each turn; cost is estimated from that model's API price in the pricing table.
  • Official quota. After you turn on quota queries on an official card, it shows two groups, Gemini and Claude/GPT, each with a 5-hour and a weekly window; the card shows only the window with less left in each group, and the dropdown shows all four windows and their reset times.
  • Manage agy on the "Apps" page. It is installed with the official install script, upgraded with agy update (Homebrew installs too), and can be uninstalled.
  • Deep links can also import agy providers, MCP servers and prompts.

Multiple Antigravity accounts in Accounts (macOS)

agy can only be signed in with one account at a time. Accounts now has an Antigravity group: click "Sign in with Google" or "Add account" to add an account in the browser, and the account agy is already signed in with is added automatically.

  • Switching. Choose "Switch agy to this account" from the account's menu, and every agy opened afterwards uses that account. The account that was signed in is first collected into Accounts, so it is not lost when you switch away. If agy is running, you are warned: agy sessions already open keep using the previous account and may write it back, so it is best to quit them first.
  • Quota for each account. Each row shows its own quota, without switching to it first. Checking quota only reads the quota and does not call any model. Accounts that cannot use Antigravity (for example, because of age restrictions) show the reason Google gives instead of a cryptic 403.
  • Binding an official card to an account. The official card's form lets you pick an account: before opening a terminal, agy's sign-in is switched to that account, and nothing is written if it is already that account; the card also shows that account's quota. If none is picked, the card follows agy's current sign-in. After the card syncs to another computer, it works there only if that account has also been added on that computer; otherwise opening a terminal shows a prompt instead of starting agy with a different account.
  • Removing an account does not sign agy out. CC Switch only deletes the copy it saved itself.

Improvements

In-app updates on Windows no longer restart the computer (#8628, #8534). In-app updates run the MSI installer without dialogs, and before, whenever a file in the install folder was still in use, Windows Installer restarted the computer without asking. The installer itself now forbids restarts, which also applies when updating from an older version to this one.

The MSI installer can skip creating a desktop shortcut (#8601, #5667). The install-directory page has a new "Create a desktop shortcut" option, checked by default; silent installs can add CREATEDESKTOPSHORTCUT=0 to skip it. Upgrades keep the current state: a shortcut you deleted is not created again. A Desktop folder that cannot be written to no longer makes the install fail.

The header shows the actual connection (#8634). Where you are actually connected moves from beside the mode tabs to beside the app name, drawn as a small badge in the color of the current mode (Direct, Routing, Aggregation); it stays visible while you look at another mode tab, long names are truncated, and hovering shows the full name.

Less explanatory text in the interface (#8633). In the provider form, OpenClaw, Daily Memory, sync and rectifier settings, descriptions that repeated the label or title next to them are removed, and additional explanations move into the existing help cards; notes that affect the outcome (cost, restarts, sync, deletion and so on) are still shown.

The app filter on the Usage page lists only the apps shown on the "Apps" page. As in Sessions: when Claude Desktop is shown, Claude Code stays too, and the currently selected app does not disappear even if it is hidden.

Presets: Added DIT.ai and hao.ai.

Fixes

  • Routing failed on macOS under many concurrent requests (#8668). An app launched from Finder or as a login item can only have 256 files open at once. Each in-flight routing request takes one client connection and one upstream connection, so with enough concurrency the limit ran out: new requests could not be accepted, upstreams could not be reached, and even config files and the database could not be opened. The limit is now raised at startup to the value the system allows (up to 10240). Linux is handled the same way.
  • "Restart Codex daemon" failed with env: node: No such file or directory when CC Switch was launched from Finder (#8653). When launched from Finder, CC Switch only has the system folders on its PATH; a codex installed with npm needs node to run, and node could not be found when it was installed somewhere else. Commands like this now get the login shell's PATH added first, as when installing and upgrading tools. Fetching the model list for OpenCode had the same problem and is fixed too.
  • After changing directory with /cd in a Claude Code session, session management still grouped it under the old project (#8643, #6862). The copied resume command also ran cd into the old folder first, where claude --resume could not find the session. Sessions are now grouped by the last directory changed to, following Claude Code's own rule, including entering and leaving worktrees.
  • On Windows, after opening a terminal, the button kept spinning until that terminal window was closed (#6712). The wait now ends as soon as the terminal opens.
  • Codex quota windows that were never used still showed a reset countdown (#8631). For a window with 0 usage, Codex returns a reset time of "now plus one window length", so the countdown jumped back to the full window on every refresh (5 hours for the 5-hour window). Windows with 0 usage no longer show a reset time.
  • DeepSeek V4.1 Flash requests showed "Unpriced" and were counted as 0. The OpenCode Go, OpenRouter and Hermes presets use the model name deepseek-v4.1-flash, which was missing from the pricing table. It is now priced at DeepSeek Flash's official prices; requests already recorded are not re-priced.
  • The manual's workaround for "Codex locks the send button after the official quota runs out" no longer worked and has been corrected (#7962). Since 4.0.16, Aggregation mode keeps the ChatGPT login, so making a third-party provider the aggregation default no longer gets around it. The workaround now is: switch to Direct, make sure "Keep official login for direct switches" under "Settings → App config → Codex" is turned off, switch to a third-party provider, then fully restart Codex; switch back to Aggregation after the quota resets.

Upgrade Notes

The database schema goes from 20 to 21, adding Antigravity toggles for MCP and Skills. The database is backed up automatically before the upgrade; if you go back to an older version after upgrading, it reports that the database version is too new and cannot open it.

  • An Antigravity provider only takes effect in agy started from "Open Terminal with This Provider" on a card; running agy directly in any other terminal does not use it.
  • Antigravity is shown on the "Apps" page by default; if you don't use it, you can hide it there.
  • Managing Antigravity accounts in Accounts is currently macOS only. Other platforms show no account picker, and official cards follow agy's own sign-in; bindings synced from a Mac are ignored.

Thanks

Thanks to @Owlbay, @peterLwk888, @ajia1206 (Antigravity CLI support), @YUZHEthefool (Windows updates no longer restarting, optional desktop shortcut), @funkpopo (optional desktop shortcut), @SaladDay (header connection badge, less explanatory text), @Dopetaiga (session grouping after /cd), @cuiyf5516 (unused Codex quota windows), @umutcankurt (opening a terminal on Windows waiting indefinitely) for their contributions.

Thanks to @lm902, @zhufeizzz, @AisinGioroKiIoi, @WzLYVg387U, @mvdorofeev, @dw2286, @LeenixP for reporting issues and providing reproduction details and fix ideas.

For the full technical details, see the CHANGELOG.