CC Switch: Claude Code, Codex и 5 CLI в одном (2026)
Что вы получите за 30 секунд
| Вопрос | Ответ |
|---|---|
| Что будет в итоге | Одно десктопное приложение, которое переключает API-провайдеров в Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw и Hermes Agent — без ручного редактирования конфигов |
| Сколько времени уйдёт | 10 минут (установка + первый провайдер + проверка переключения через трей) |
| Что нужно | macOS 12+ / Windows 10+ / Linux (Ubuntu 22.04+, Debian 11+, Fedora 34+, Arch), Node.js 20 LTS для большинства CLI (минимум для Gemini CLI и Hermes Agent), Node 22.19+ при установке OpenClaw, плюс хотя бы один API-ключ провайдера |
| Последняя версия (проверено) | CC Switch v3.16.1, выпуск 2026-06-01 |
Если CC Switch уже стоит и нужно решить конкретную проблему — не подхватывается конфиг, цикл OAuth-логина, несовпадение wire_api в Codex — переходите к разделу Типичные ошибки при установке ниже. Иначе следующие четыре раздела последовательно проведут через установку → первый провайдер → проверку → мульти-CLI.
Системные требования
CC Switch — десктопное приложение на Tauri 2, маленькое (~10 МБ установщик), но ему нужны графическая сессия и корректные рантаймы CLI под капотом. Проверьте каждую строку перед стартом — большинство жалоб «CC Switch не работает» сводится к отсутствию самого CLI, а не к приложению.
| Компонент | Минимум | Рекомендуется | Проверенная версия |
|---|---|---|---|
| CC Switch | v3.13.0 (минимум для OAuth-прокси Codex) | v3.16.1 | v3.16.1 (2026-06-01) |
| Node.js (для CLI из npm) | 20 LTS (22.19+ для OpenClaw) | 22 LTS | 22.x |
Claude Code (@anthropic-ai/claude-code) | Node 18+ | latest | 2.1.163 |
Codex (@openai/codex) | Node 16+; 0.137.0 (минимум для wire_api responses-only) | latest | 0.137.0 |
Gemini CLI (@google/gemini-cli) | Node 20+ | latest | 0.45.1 |
OpenCode (opencode-ai) | минимум по engines не объявлен | latest | 1.16.0 |
OpenClaw (openclaw) | Node 22.19+ | latest | 2026.6.1 |
Hermes Agent (hermes-agent) | Node 20+ | latest | 0.15.2 |
| ОС (десктоп) | macOS 12 / Windows 10 / Ubuntu 22.04 / Debian 11 / Fedora 34 / Arch | последняя стабильная | — |
Ставить все CLI сразу не обязательно — CC Switch управляет только теми панелями, под которые на диске уже есть CLI. Начните с одного-двух, которыми пользуетесь чаще всего.
Шаг 1 — Установка CC Switch
Выбирайте нативный для платформы способ. На macOS не смешивайте Homebrew и ручную загрузку — автообновление работает только по одному каналу.
macOS (Homebrew)
brew install --cask cc-switch
# обновление позже:
brew upgrade --cask cc-switch
Cask подписан и нотаризован Apple — первый запуск проходит без диалога Gatekeeper.
macOS (вручную через .dmg)
# Скачайте свежий DMG со страницы Releases, затем:
open CC-Switch-v3.16.1-macOS.dmg
# Перетащите CC Switch.app в /Applications
Windows
Скачайте CC-Switch-v3.16.1-Windows.msi с github.com/farion1231/cc-switch/releases и запустите двойным кликом. Если машина блокирует установку MSI, доступен портативный CC-Switch-v3.16.1-Windows-Portable.zip.
Linux (Debian / Ubuntu)
# пример для x86_64
sudo dpkg -i CC-Switch-v3.16.1-Linux-x86_64.deb
# если apt ругается на зависимости:
sudo apt-get install -f
Linux (Arch)
paru -S cc-switch-bin # или: yay -S cc-switch-bin
Linux (универсальный AppImage)
chmod +x CC-Switch-v3.16.1-Linux-x86_64.AppImage
./CC-Switch-v3.16.1-Linux-x86_64.AppImage
Headless-серверы / CI
Десктопу на Tauri 2 нужны Wayland или X11. Для безголовых машин — сборочных раннеров, удалённых песочниц — берите Rust-форк SaladDay/cc-switch-cli. Он читает тот же бандл конфигов, что синхронизируется по WebDAV, так что провайдеров можно завести на ноутбуке и подтянуть на агенте.
Проверка установки
После первого запуска:
- Окно CC Switch открывается на панели Claude Code по умолчанию.
- Иконка CC Switch появляется в системном трее (menu bar на macOS, system tray на Windows/Linux).
- В переключателе приложений слева сверху перечислены семь управляемых целей — Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, Hermes Agent. Серым отмечены CLI, которых CC Switch не нашёл на диске; это ожидаемо, если они ещё не установлены.
Если на Linux нет иконки в трее, ваше окружение, вероятно, не поддерживает StatusNotifierItem: установите gnome-shell-extension-appindicator (GNOME) или аналог и перезапустите сессию.
Шаг 2 — Установка CLI, которыми будете управлять
CC Switch не ставит сами CLI — он управляет их конфигами. Установите те, что нужны:
# Все семь, для справки. Берите только то, чем реально пользуетесь.
npm install -g @anthropic-ai/claude-code # Claude Code (Node 18+)
npm install -g @openai/codex # Codex (Node 16+)
npm install -g @google/gemini-cli # Gemini CLI (Node 20+)
npm install -g opencode-ai # OpenCode (минимум по engines не задан)
npm install -g openclaw # OpenClaw (Node 22.19+)
npm install -g hermes-agent # Hermes Agent (Node 20+)
Claude Desktop — отдельное приложение от Anthropic, его берут с claude.ai/download, а не из npm.
Если npm install -g падает с EACCES или новый shim не попадает в PATH, см. разбор исправления прав npm и PATH для Codex CLI — те же приёмы подходят для любого CLI из этого списка.
Шаг 3 — Добавление первого провайдера
Откройте CC Switch и нажмите + в правом верхнем углу. У панели добавления провайдера две вкладки:
- App-specific Provider — только для текущей панели
- Universal Provider — общий для Claude Code, Codex и Gemini CLI
Для первого раза берите App-specific:
- В выпадающем списке Preset выберите провайдера, выдавшего ключ. CC Switch поставляет около 50 сторонних пресетов на всех панелях: DeepSeek, Zhipu GLM, MiniMax, Kimi, Bailian (Alibaba Qwen), AWS Bedrock, NVIDIA NIM, OpenRouter и длинный список релейных сервисов. Большинству нужен только API-ключ — endpoint и протокол заполнены заранее.
- Вставьте свой API Key.
- (Только Codex) Если у пресета есть пометка «Needs Local Routing» — это любой chat-completions backend, например DeepSeek или Zhipu — CC Switch сам включит переключатель Local Routing, который проксирует протокол Responses API в
/v1/chat/completionsпровайдера. Не выключайте: Codex 0.137.0 убрал поддержкуwire_api = "chat"при загрузке конфига и принимает толькоresponses. - Нажмите Add.
Что именно пишет каждый пресет
Список пресетов — это слой удобства. Под ним CC Switch пишет в нативный конфиг CLI:
| CLI | Файл конфига | Что пишет CC Switch |
|---|---|---|
| Claude Code | ~/.claude/settings.json | env.ANTHROPIC_API_KEY + env.ANTHROPIC_BASE_URL |
| Codex | ~/.codex/auth.json + ~/.codex/config.toml | OPENAI_API_KEY в auth.json; model_provider, model, base_url, wire_api в config.toml |
| Gemini CLI | ~/.gemini/.env + ~/.gemini/settings.json | GEMINI_API_KEY + GOOGLE_GEMINI_BASE_URL в .env |
| OpenCode | ~/.config/opencode/opencode.json | блок провайдера внутри provider |
| OpenClaw | ~/.openclaw/openclaw.json (JSON5) | блок провайдера внутри models.providers |
| Hermes Agent | ~/.hermes/config.yaml + ~/.hermes/.env | запись custom_providers + секреты в .env; model.provider / model.default при переключении |
Принцип — «минимальное вмешательство»: даже если завтра удалить CC Switch, все CLI продолжат работать, потому что их нативные конфиги останутся целыми. Состояние CC Switch в ~/.cc-switch/cc-switch.db строго аддитивное.
Шаг 4 — Переключение и проверка
Когда хотя бы один провайдер заведён на каждой CLI-панели:
- Из приложения: кликните карточку провайдера и нажмите Enable.
- Из системного трея (по-настоящему полезная часть): правый клик по иконке CC Switch → выбор CLI-панели → клик по имени провайдера. Новый конфиг записывается до закрытия меню.
Затем активируйте на стороне CLI:
| CLI | Активация |
|---|---|
| Claude Code | Hot-reload — следующий запрос подхватывает ключ без перезапуска |
| Codex | Закрыть и заново открыть терминал |
| Gemini CLI | Hot-reload — ~/.gemini/.env перечитывается на каждом запросе |
| OpenCode | Закрыть и заново открыть терминал |
| OpenClaw | Закрыть и заново открыть терминал |
| Hermes Agent | Закрыть и заново открыть терминал |
Быстрая проверка внутри сессии каждого CLI:
> Hello — which model am I talking to right now?
Разумное самоопределение модели подтверждает, что ключ валиден и роутинг корректный.
Типичные ошибки при установке и их исправление
| Симптом | Корневая причина | Исправление |
|---|---|---|
| На Linux нет иконки в трее | DE не поддерживает StatusNotifierItem | Поставить gnome-shell-extension-appindicator (или эквивалент для KDE); перезапустить сессию |
| Переключение прошло, но Codex продолжает использовать старый ключ | Codex кеширует config.toml при старте | Полностью закрыть процесс Codex (а не только промпт) и запустить заново |
Пресет Codex подключается, но каждый запрос возвращает CHAT_WIRE_API_REMOVED_ERROR | Переключатель «Needs Local Routing» был отключён после добавления | Снова включить Local Routing на карточке провайдера; Codex 0.137.0 отбрасывает wire_api = "chat" при загрузке конфига |
| «First-run wizard» Claude Code появляется при каждом переключении | Дефолтный onboarding-флоу перезапускается при изменении ~/.claude/settings.json | Settings → General → включить Skip Claude Code first-run confirmation (пишет skipIntroduction в ~/.claude/settings.json) |
Authentication failed (401/403) на каждом пресете | Строка API-ключа неправильная либо ключ не авторизован для выбранной модели | Сначала проверить ключ в дашборде самого провайдера; кнопка Auto-Fetch Models (иконка скачивания рядом с полем модели) дёргает /v1/models и сразу всплывает ошибка авторизации |
| Не получается удалить активного провайдера | Защита «не оставлять без конфига» | Сначала переключиться на другого провайдера, потом удалить; если хочется полностью очистить панель, скройте этот CLI в Settings |
| Gemini CLI игнорирует провайдера | Обнаружен Node 18, но @google/[email protected] требует Node 20 | nvm install 20 && nvm alias default 20, затем переустановить CLI |
| OpenClaw не ставится или не запускается | Node < 22.19 (минимум engines >=22.19.0) | nvm install 22 && nvm alias default 22, затем переустановить |
| Hermes Agent не ставится | Node < 20 (минимум engines >=20.0.0) | nvm install 20 && nvm alias default 20, затем переустановить |
| Запись по WebDAV проходит, но на других устройствах новых провайдеров не видно | Оба устройства должны указывать на один и тот же WebDAV-корень и одинаковый custom config directory в Settings → Storage | Задать одинаковые claudeConfigDir / codexConfigDir и т. д. на каждом устройстве |
~/.cc-switch/cc-switch.db заблокирован | Одновременно открыты два экземпляра CC Switch (частая история на macOS с iCloud-синхронизацией) | Закрыть один; CC Switch держит эксклюзивный SQLite-мьютекс на файле |
Если CLI ругается на собственный конфиг — model_not_found, EACCES, 429, 503 — это проблема CLI, а не CC Switch. Для Codex отдельно сценарий command not found сразу после установки разобран в Codex command not found: 7 исправлений после npm install -g. У каждого CLI свой runbook по рантайм-ошибкам; CC Switch управляет только файлом конфига, не путём запроса.
Командные конфигурации и несколько разработчиков
Настоящая боль, которую решает CC Switch, — это команды, где сторонние ключи делятся между несколькими агентами, а не одиночка с одним CLI. Хорошо масштабируются три паттерна.
Паттерн 1 — Universal Provider для общего relay-ключа
Если команда использует один OpenAI-совместимый relay (один base URL, один общий ключ) для Claude Code, Codex и Gemini CLI, нужная вкладка — Universal Provider. Добавляете один раз endpoint и ключ relay, отмечаете три приложения для синхронизации — и CC Switch пишет один и тот же ключ в нативный конфиг каждого CLI. Когда relay ротирует ключ, достаточно обновить одну запись и нажать Save and Sync — все CLI на всех ноутбуках подхватят его при следующем переключении.
Паттерн 2 — Бандл конфигов по WebDAV для ноутбука + CI
Поднимите WebDAV-сервер (Nextcloud, self-hosted, что угодно из уже имеющегося у команды) и укажите Settings → Storage → custom config directory на него. Авторы заводят провайдеров на ноутбуках; CI-раннеры на SaladDay/cc-switch-cli подтягивают тот же SQLite-снимок. Не синхронизируйте ~/.cc-switch/cc-switch.db через обычный Dropbox или iCloud — они спокойно перезапишут базу прямо во время записи, если два устройства пушнут одновременно. Для файла базы безопаснее WebDAV с корректным локингом.
Паттерн 3 — Локальный override для дежурного инженера
Если одному инженеру нужно протестировать другого провайдера, не задевая остальную команду, помогает device-level ~/.cc-switch/settings.json с переопределениями claudeConfigDir, codexConfigDir и т. п., указывающими CC Switch на отдельный каталог конфигов. Командный WebDAV-бандл остаётся нетронутым; override испаряется, как только настройку откатить.
Во всех трёх случаях относитесь к ~/.cc-switch/cc-switch.db как к ~/.ssh/ — он не шифрован на диске, поэтому защита файла — это права файловой системы плюс транспорт, которым его синхронизируют.
Продвинутое — MCP, Skills, Prompts и OAuth-переиспользование
Когда переключение провайдеров решено, единые панели — это то, ради чего CC Switch начинает оправдываться.
Единый MCP по пяти CLI
Откройте кнопку MCP на любой панели. CC Switch читает список MCP-серверов из нативного места каждого CLI — ~/.claude.json для Claude Code, блоки [mcp_servers.*] в ~/.codex/config.toml, mcpServers в ~/.gemini/settings.json, аналоги в OpenCode и Hermes — и даёт включать каждый сервер отдельно по CLI. Добавили mcp-fetch один раз, синхронизировали на Claude Code + Codex + Gemini — и у каждого агента одинаковая поверхность инструментов.
Промпты (CLAUDE.md / AGENTS.md / GEMINI.md)
Панель Prompts — это Markdown-редактор с кросс-аппной синхронизацией. Правите один промпт в CC Switch, синхронизируете в ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md и ~/.gemini/GEMINI.md одним кликом. Защита от затирания подхватывает правки, сделанные напрямую в живых файлах, до того как следующая синхронизация их перепишет — полезно, если коллега правил CLAUDE.md руками.
Skills
Панель Skills ставит скиллы из GitHub-репозиториев или ZIP-архивов в каталог скиллов каждого CLI (~/.claude/skills/, ~/.config/opencode/skills/ и т. д.). По умолчанию используется режим симлинков — одна каноническая копия лежит в ~/.cc-switch/skills/, а CLI видят её через симлинк. Переключайтесь на режим копирования файлов, если CLI запущен в песочнице, которая не идёт по симлинкам.
Codex OAuth reverse-proxy (с v3.13)
CC Switch добавил способ переиспользовать Codex-привилегии аккаунта ChatGPT внутри Claude Code. Появляется как новый тип карточки Claude-провайдера — не как пресет Codex — и заворачивает запросы Claude Code через локальный прокси, прикидывающийся chatgpt.com и auth.openai.com. Полезно, если уже оплачен ChatGPT Plus или Pro. Перед использованием в продакшене прочитайте предупреждение внутри приложения: способ неофициальный и может сломаться в тот день, когда OpenAI закрутит авторизацию.
Альтернативы — когда десктоп не вариант
Два пути покрывают случаи, когда десктоп на Tauri не подходит.
- Единый OpenAI-совместимый gateway — если нужен один base URL, на который смотрят Claude Code, Codex, Cursor, Cline и OpenClaw, OfoxAI отдаёт
https://api.ofox.ai/v1как единый OpenAI-совместимый endpoint. К нему обращаются команды, которые хотят полностью уйти от редактирования конфигов каждого CLI; см. гайд по интеграции с Claude Code для настройки в одну строку. Можно оставить CC Switch ради переключений из трея и держать ofox как нижележащего провайдера — или отказаться от CC Switch вовсе, если хватает одного endpoint. - Headless / скриптовые окружения — SaladDay/cc-switch-cli — Rust-форк CLI, который умеет переключение провайдеров, управление MCP, установку скиллов и локальный прокси из терминала. Формат хранения совместим с WebDAV, как у десктопа. Лучший вариант для сборочных агентов, удалённых dev-контейнеров и серверов «только
tmux». - Браузерный UI — Laliet/cc-switch-web — браузерная альтернатива от сообщества, покрывает Claude Code, Codex и Gemini CLI. По функциональности пока уступает десктопу, но удобна, если нужна общая ссылка, которую открывает вся команда.
Как следить за обновлениями и держать актуальную версию
- Автообновление — Settings → About → Check for updates. Десктоп автоматически проверяет при запуске.
- Лента релизов — подпишитесь на github.com/farion1231/cc-switch/releases. Свежие изменения, за которыми стоит следить: Claude Desktop как панель первого класса, Codex OAuth reverse-proxy (v3.13), унифицированная установка Skills из GitHub (добавлена до v3.16), дашборды использования по приложениям.
- Гигиена бэкапов — в
~/.cc-switch/backups/автоматически хранятся 10 последних SQLite-снимков. Перед мажорным апгрейдом сделайтеcp ~/.cc-switch/cc-switch.db ~/.cc-switch/cc-switch.db.bak.$(date +%F)— ручной снимок переживёт скользящее окно.
FAQ
Блок faq во frontmatter выше содержит канонические ответы; вопросы там зеркалят кластер People Also Ask по cc switch claude code install, ccswitch install npm и смежным запросам. Пробегитесь по ним — там покрыт состав поддерживаемых CLI, поведение при перезапуске терминала, ландшафт форков, сосуществование с официальными аккаунтами, режим OAuth reverse-proxy для Codex, хранение ключей, поддержка headless и сравнение с ручным редактированием.
Источники, проверенные для этого обновления
- README farion1231/cc-switch — подтверждён состав из семи CLI и дата релиза v3.16.1 (проверено 2026-06-05)
- User Manual CC Switch — installation guide и provider config formats — подтверждены пути конфигов каждого CLI и поведение Codex «Needs Local Routing»
- FAQ CC Switch — 5.1 Configuration Files — подтверждены пути SQLite и нативные конфиги каждого CLI
- npm registry —
npm view <pkg> version enginesдля@anthropic-ai/[email protected],@openai/[email protected],@google/[email protected],[email protected],[email protected],[email protected]— подтверждены опубликованные версии и минимальные Node engines (проверено 2026-06-05) SaladDay/cc-switch-cliиLaliet/cc-switch-web— подтверждены совместимое с WebDAV хранилище и состав поддерживаемых CLI у обоих форков- openai/codex, источник
model-provider-info— подтверждено, что в 0.137.0 принимается толькоwire_api = "responses";"chat"десериализуется вCHAT_WIRE_API_REMOVED_ERROR


