by TonF1917
Multiple windows for Claude Desktop with different APIs at the same time: keep your official Claude subscription in one window and run other windows on custom / third-party APIs (cc-switch). Windows. 多开 Claude Desktop,多个窗口同时使用不同 API(官方订阅 + 第三方 API 同时工作)。
# Add to your Claude Code skills
git clone https://github.com/TonF1917/claude-desktop-multiple-windows-different-apiGuides for using api integration skills like claude-desktop-multiple-windows-different-api.
See how claude-desktop-multiple-windows-different-api compares with popular alternatives.
claude-desktop-multiple-windows-different-api is an open-source api integration skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by TonF1917. Multiple windows for Claude Desktop with different APIs at the same time: keep your official Claude subscription in one window and run other windows on custom / third-party APIs (cc-switch). Windows. 多开 Claude Desktop,多个窗口同时使用不同 API(官方订阅 + 第三方 API 同时工作)。. It has 57 GitHub stars.
claude-desktop-multiple-windows-different-api's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/TonF1917/claude-desktop-multiple-windows-different-api" and add it to your Claude Code skills directory (see the Installation section above).
claude-desktop-multiple-windows-different-api is primarily written in PowerShell. It is open-source under TonF1917 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other API Integration skills you can browse and compare side by side. Open the API Integration category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh claude-desktop-multiple-windows-different-api against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
claude-desktop-multiple-windows-different-api vs hermes agent
See comparison
English · 简体中文
Use several Claude Desktop windows at once, each on a different API. Keep your official Claude subscription in one window and run as many other windows as you like on custom / third-party APIs (driven by cc-switch). Multi-API, multi-window, multi-account Claude Desktop - on Windows (tested) and macOS (experimental).
Every window has its own data, its own recoloured icon (desktop, taskbar, system tray), its own taskbar button and - if you choose - its own API. The default third-party colour is the official icon in purple-black with a white star; pick any palette (Gemini, GPT, Perplexity, DeepSeek, WorkBuddy) or any #RRGGBB.
Unofficial community tool. Not affiliated with or endorsed by Anthropic or cc-switch. Icons are generated locally from the icon of your installed app; no Anthropic artwork is shipped in this repository.
claude:// links open in the window you used last (or a fixed one).Requirements: Windows 11 (10 should work), PowerShell 5.1+, Claude Desktop from the Microsoft Store (AnthropicPBC.Claude), cc-switch with a Claude Desktop provider.
git clone https://github.com/TonF1917/claude-desktop-multiple-windows-different-api
cd claude-desktop-multiple-windows-different-api
.\claude-multi.ps1 install # icons + shortcuts for every window in instances.json
.\claude-multi.ps1 gui # or use the Desktop shortcut "Claude Multi Manager"
Then right-click each new Desktop shortcut and choose Pin to taskbar (Windows does not let scripts pin).
| Command | What it does |
|---|---|
gui |
the manager window |
add -Id gem -Name "Claude Gemini" -Palette gemini [-Provider <id>] |
add a window (any palette name or "#E11D48") |
install [-Force] |
(re)build icons and shortcuts; rewires your existing pinned Claude shortcuts |
launch -Id gem |
start a window |
list, providers, sync, remove -Id gem, icons -Force, uninstall |
housekeeping |
The port lives in macos/ (Python 3 from the Xcode Command Line Tools, standard library only). It was written without access to a Mac: configuration, palettes, icon recolouring, cc-switch profiles, session mirroring and the GUI are exercised on Windows; the macOS-only steps (cloning Claude.app, codesign, open, iconutil) follow the documented tool behaviour but have not been run on real hardware. Bug reports with the terminal output are very welcome.
git clone https://github.com/TonF1917/claude-desktop-multiple-windows-different-api
cd claude-desktop-multiple-windows-different-api
python3 macos/claude_multi.py gui
python3 macos/claude_multi.py add --id gem --name "Claude Gemini" --palette gemini
python3 macos/claude_multi.py install # one tinted APFS clone of Claude.app per extra window (~/Applications/Claude Multi)
python3 macos/claude_multi.py launch --id gem
python3 macos/claude_multi.py agent & # session mirroring + silent background refresh
Not ported yet on macOS: pin/MCP sync, claude:// routing, tray icon, official-window isolation (launching Claude from the Dock while cc-switch has a third-party profile applied can switch it to third-party mode).
Choose a Claude Desktop provider in cc-switch (not "Official"). cc-switch starts its gateway on 127.0.0.1:15721 and writes the profile into the shared 3P config folder. Windows that follow cc-switch use that gateway and its currently selected provider. Windows with a specific provider get a profile built from that provider's own base URL, key and model routes and talk to its upstream directly (Anthropic-format providers only; model ids are the real upstream ids). That is how two windows use two different APIs at the same moment. A hand-written profile can be set per window with "profile": "path\\to\\profile.json" (see examples/profile.example.json).
When cc-switch is set to Official, third-party windows have no profile and show the normal sign-in screen.
| Item | Synced? | How / when it shows up in another window |
|---|---|---|
| Sessions (new ones, titles, archive state) | yes | files mirrored within seconds; the other window loads them after its silent background restart |
| Pinned / starred sessions and pin order | yes | the isStarred flag in each session, plus starred-* and pinnedOrder in claude_desktop_config.json; written into a window only while it is closed (or just before its background restart) so the app cannot overwrite it |
| MCP servers | yes | same mechanism (mcpServers); switch off in the GUI |
| Conversation transcripts | yes (natively) | they live in ~\.claude\projects, shared by every window |
| Login, provider, model list, window size/position | no | per window on purpose |
Known limit - pins. Each Claude Desktop keeps its pinned list in memory and rewrites it itself: a running window keeps showing its own pins until it is restarted, and a starting window trims the list it reads (tested: 17 pins written while closed came back as 12 within 8 seconds; the dropped ones are sessions created after 12 Oct 23:50 plus one older one - the rule is the app's, not ours). This tool keeps the config files identical and never lets an empty or new window wipe them, but it cannot force two windows to display the same pins.
Why not instantly? Claude Desktop does read these folders - but only when it starts, and again only when the signed-in account or organisation changes. It has no file watcher, rewriting its config.json does not make it re-read anything, and remote debugging is blocked in the production build, so nothing outside the app can tell a running window to re-read the folder. The closest safe thing is the silent restart: a window restarts in the background only if it is not focused, has not written a session file in the last 45 s, and none of its agent/tool child processes is using CPU. The restarted window comes back minimised and without taking the focus (it is started with SW_SHOWMINNOACTIVE), and syncing shows no pop-ups at all: notifications are off by default and can be switched on in the manager. A window you are using right now (focused and keyboard/mouse input in the last 90 s) is never restarted: you get a Windows notification with a Reload now button instead (or use Restart selected in the manager); once you have been idle for 90 s it is refreshed automatically. Session folders may be shared between windows through junctions - the check is therefore per running window ("does it know every session file that exists?"), not based on copying. The official window is excluded unless you tick Also live-refresh the official window (it may hold unsent drafts).
Same session in two windows. Every window runs its own Claude Code process per session (--resume=<id>). If you send in both, both append to the same transcript while each keeps its own context, so the history interleaves and the windows disagree. The agent notifies you when a session is live in two windows and one of them is working - keep a session active in one window at a time.
How sessions look. Every window shows the same merged list; there is no per-window badge. A session keeps its folder, model and effort, but when you open it in another window it runs through that window's login/provider (subscription in the official one, the chosen provider in a third-party one).
configLibrary from %LOCALAPPDATA%\Claude-3p; cc-switch writes the third-party profile there; a profile with disableDeploymentModeChooser forces every window that reads it into 3P mode - including the official one on its next start.--user-data-dir and CLAUDE_USER_DATA_DIR do not help on Windows. The production build strips the env var and overrides the data dir in 3P mode, so a second 3P window collides with the first and exits silently.%LOCALAPPDATA% does. The 3P data dir is derived from that variable, so each extra window starts with its own private LOCALAPPDATA (~\.claude-multi\<id>\Local) and its own profile.LOCALAPPDATA whose Claude-3p is empty (Claude and Packages are junctions to the real ones), so it can never be forced into 3P.SHGetPropertyStoreForWindow, WM_SETICON) and re-s