3.5 Import settings and links
Import settings takes two things: everything a CC Switch installation on this machine holds, and whatever a vendor's "add this" link carries. Both are shown first, and nothing is written until you say so.
From CC Switch
If CC Switch is installed under this account, the page says so and offers what it keeps: providers, MCP servers, instructions and skill sources.
- Tick what to bring over, or Select everything.
- CC Switch is only read, and stays exactly as it is.
- Anything already here under the same name is flagged rather than overwritten silently.
- A row Gateway cannot take over says so instead of failing quietly.
From a link
Vendors put an "add this to my agent manager" button on their own pages, which opens a ccswitch:// link rather than a page. Gateway reads that format instead of inventing a second one nobody would be given a button for.
One link carries any of five things:
| Kind | What arrives |
|---|---|
| Provider | Base URL, key and model list |
| MCP server | The JSON block a server is written in, with the arguments it would run with |
| Instructions | A set of instructions for an agent to read before every session |
| Skill source | A repository to install skills from — adding it installs nothing |
| Connection | The name of an application in Gateway's own catalogue |
Writing a connection link
A vendor whose application is in the catalogue can put a button on their own page. The link names the application and, optionally, the agents to offer it for:
ccswitch://v1/import?resource=connection&connector=notion&apps=claude,cursor| Parameter | |
|---|---|
connector | The id of the entry in Gateway's catalogue. A name Gateway does not have is refused by name, so the reader can say what they were sent. |
apps | Optional, comma-separated. The same app names the other kinds use. |
A connection link carries no credential, and there is nowhere in it to put one. Opening it takes the reader to the form where they fill those in themselves — which is the only sensible thing for a link that arrives from a website.
Everything the link held is laid out before any of it is written: the arguments an MCP server would be run with, the instructions in full, the repository a skill would come from. The link came from a website, so its values are read first.
- A provider goes on to the Providers form, where it is reviewed and probed against the upstream before it is stored.
- The other three are written through the same endpoints that add one by hand, into the agents you tick.
- A link names apps rather than the agents on this machine, and the ones Gateway does not manage are named back to you rather than quietly dropped.
Clicking a link on the web
Gateway claims the ccswitch:// scheme on Windows and Linux when it starts, so clicking such a button opens Gateway on the Import page with the link's contents laid out.
- The scheme is taken from whatever held it only the first time, and given back when Gateway is removed.
- A registration that is already Gateway's own is rewritten on every start, since it records a path that an update or a move would otherwise leave pointing at a Gateway that is no longer there.
- On macOS nothing is claimed at all — a URL scheme there belongs to an application bundle and the link arrives as an Apple event, which this launcher has no loop to receive, so declaring it would take links away from whatever can open them.
Paste a link into the box on the Import page instead, which works on every platform. The Providers page takes a provider link the same way.
Why the link is not in the address bar
The link is handed to Gateway in the body of an API call, not in the address of the page it opens, because a provider link carries an API key — and an address is kept in browser history and sent on to wherever the page navigates next.
3.4 Authenticity
A reseller can sell a frontier model and serve a cheaper one, count a cached prefix as fresh input, or answer in an API it only pretends to speak. None of that shows up in the traffic.
3.6 Model routing and automatic fallback
The reason it exists: an agent picks its own model names. Claude Code asks for claude-sonnet-4-5 for your turn and claude-haiku-4-5 for its background summaries, whatever it is configured with; Codex Desktop remembers the model chosen in its own state and ignores the config file. Point either at a provider that never heard of those names and the model in the request is not a name that provider serves.