github farion1231/cc-switch v3.14.0
CC Switch v3.14.0

13 hours ago

CC Switch v3.14.0

Hermes Agent becomes the 6th managed app, Claude Opus 4.7 rolls out across the preset matrix, Gemini Native API proxy, "Local Routing" rename, and application-level window controls

中文版 → | 日本語版 →


Overview

CC Switch v3.14.0 is a major release centered on onboarding Hermes Agent as the 6th first-class managed app and rolling out Claude Opus 4.7 across the full aggregator and Bedrock preset matrix. Hermes support covers a database v9 → v10 migration, a complete Rust command surface, YAML-backed ~/.hermes/config.yaml read/write with atomic backups, MCP sync, Skills sync, SQLite + JSONL session management, and dedicated frontend panels including a Memory editor. All four API protocols aligned with Hermes Agent 0.10.0 (chat_completions, anthropic_messages, codex_responses, bedrock_converse) are selectable. Providers owned by the user-authored providers: dict are rendered as read-only cards, and deep YAML configuration is delegated directly to the Hermes Web UI.

Beyond Hermes, this release adds a Gemini Native API proxy (api_format = "gemini_native") so the proxy can forward directly to Google's generateContent endpoint with full streaming, schema conversion, and shadow request support; renames the legacy "Local Proxy Takeover" to Local Routing across UI copy, README, and docs in all three locales; introduces application-level window controls, an opt-in setting that materially improves the experience on Linux Wayland where compositor-drawn buttons can become inert; and bundles late additions for launching hermes dashboard from the toolbar, a LemonData preset across all six apps, a DDSHub Codex endpoint, plus several Hermes health-check and Usage modal fixes.

On the session side, the message list is virtualized via @tanstack/react-virtual so conversations with thousands of records scroll smoothly and long messages collapse by default; the Usage dashboard adds a date range picker (Today / 1d / 7d / 14d / 30d + custom date-time calendar) and a page-jump input; Stream Check error classification now surfaces color-coded toasts with refreshed default probe models and an explicit "model not found" branch; and switching to official providers is blocked while Local Routing is active to avoid account-suspension risk. The pricing database is reseeded from v8 → v9 with ~50 new model entries (Claude 4.7, Opus 4.7 Adaptive Thinking, Grok 4, Qwen 3.5/3.6, MiniMax M2.5/M2.7, Doubao Seed 2.0 series, GLM-5/5.1 and others) and corrected stale prices.

Release Date: 2026-04-21

Update Scale: 100 commits | 219 files changed | +20,548 / -3,569 lines


Highlights

  • Hermes Agent Support (6th Managed App): Database v9 → v10 migration, full Rust command surface, YAML read/write with atomic backups, MCP sync, Skills sync, SQLite + JSONL session management, dedicated frontend panels, and four API protocols (chat_completions / anthropic_messages / codex_responses / bedrock_converse)
  • Claude Opus 4.7 Rollout: Adaptive thinking whitelisting, per-million pricing seed, Bedrock SKU (anthropic.claude-opus-4-7 / global.anthropic.claude-opus-4-7, dropping the legacy -v1 suffix); all aggregator and Bedrock presets migrated to Opus 4.7 as the default Opus model
  • Claude max Effort Tier: Effort dropdown upgraded from high to max
  • Gemini Native API Proxy: New api_format = "gemini_native" forwards directly to Google's generateContent with full streaming / schema conversion / shadow request support
  • GitHub Copilot Enterprise Server: GHES authentication and endpoint configuration for Copilot-backed Claude providers
  • Copilot Premium Consumption Deep Optimization: Proactive thinking-block stripping before forwarding, tool_result classification fix, subagent detection, x-interaction-id billing merge, orphan tool_result sanitization, and default warmup downgrade — a systematic reduction in premium interaction consumption
  • Session List Virtualization: Long conversations scroll smoothly and long messages collapse by default to reduce text layout cost
  • Codex / OpenClaw Session Title Extraction: Meaningful title extraction with 2-line display; strips OpenClaw message_id suffix noise
  • Usage Date Range Picker: Today / 1d / 7d / 14d / 30d preset tabs + custom date-time calendar; page-jump input on paginated lists
  • Stream Check Error Classification: Color-coded error toasts; refreshed default probe models; explicit "model not found" detection
  • Block Official Provider Switching During Local Routing: Routing official API traffic through the local proxy carries account-suspension risk — switches are blocked with a warning toast
  • Pricing Database Refresh (v8 → v9): ~50 new model entries and corrected stale prices
  • Application-Level Window Controls: Opt-in setting to render CC Switch's own min/max/close buttons, materially improving Linux Wayland experience
  • Hermes in Unified Skills Management: Skill install, enable, and filter now cover Hermes
  • Hermes / OpenClaw Config Directory Override: Point CC Switch at a custom ~/.hermes/config.yaml or openclaw.json location
  • Launch Hermes Dashboard from Toolbar: When the Hermes Web UI probe fails, the toolbar entry offers to run hermes dashboard in the user's preferred terminal
  • New Partner Presets: LemonData across all six apps; DDSHub Codex endpoint; StepFun Step Plan

Added

Hermes Agent Support (6th Managed App)

CC Switch now treats Hermes Agent as a first-class managed app alongside Claude / Codex / Gemini / OpenCode / OpenClaw.

  • Database Migration v9 → v10: Adds enabled_hermes columns to mcp_servers and skills tables (DEFAULT 0, auto-migrated, no data loss)
  • YAML Configuration Read/Write: ~/.hermes/config.yaml read/write with atomic backups; tests/hermes_roundtrip.rs guards against dropped OAuth MCP auth blocks or pollution of unrelated YAML keys
  • Four API Protocols: Aligned with Hermes Agent 0.10.0 — chat_completions / anthropic_messages / codex_responses / bedrock_converse; new deeplinks default to chat_completions
  • User providers: Dict Read-Only Rendering: User-authored providers in the YAML appear as read-only cards in CC Switch; deep configuration delegates to the Hermes Web UI
  • Additive Switching: Unlike Claude / Codex's "override" style, all Hermes providers coexist in the same YAML

Hermes Memory Panel

  • New Memory panel for editing MEMORY.md / USER.md directly, with an enable switch, character-count limits, and a live save flow
  • Replaces the Prompts entry for Hermes

Hermes Provider Presets (~50)

  • Covers Nous Research, Shengsuanyun, OpenRouter, DeepSeek, Together AI, StepFun, Zhipu GLM, Bailian, Kimi, MiniMax, DouBao, BaiLing, ModelScope, KAT-Coder, PackyCode, Cubence, AIGoCode, RightCode, AICodeMirror, AICoding, CrazyRouter, SSSAiCode, Micu, CTok.ai, DDSHub, E-FlowCode, LionCCAPI, PIPELLM, Compshare, SiliconFlow, AiHubMix, DMXAPI, TheRouter, Novita, Nvidia, and Xiaomi MiMo

Launch Hermes Dashboard from Toolbar

  • When the Hermes Web UI probe fails, the toolbar entry opens a confirm dialog offering to run hermes dashboard in the user's preferred terminal
  • Spawned via a temp bash / batch script; hermes dashboard opens the browser itself once ready, so no polling is required
  • The Memory panel and Health banner keep the existing toast behavior
  • Also corrects the stale hermes web hint in the offline toast (the real command is hermes dashboard)
  • Linux terminal detection reordered to try which before stat'ing /usr/bin, /bin, /usr/local/bin

Claude Opus 4.7 Support

  • New Claude Opus 4.7 with adaptive thinking whitelisting, per-million pricing seed, and Bedrock SKU (anthropic.claude-opus-4-7 / global.anthropic.claude-opus-4-7, dropping the legacy -v1 suffix)
  • All aggregator and Bedrock presets migrated to Opus 4.7 as the default Opus model

Claude max Effort Tier

  • Claude effort dropdown upgraded from high to max for extended reasoning capacity

Gemini Native API Proxy

  • New api_format = "gemini_native" so the proxy can forward directly to Google's generateContent API (#1918, thanks @yovinchen)
  • Full streaming, schema conversion, and shadow request support
  • Adds gemini_url.rs, gemini_schema.rs, gemini_shadow.rs, streaming_gemini.rs, and transform_gemini.rs under the proxy providers module

GitHub Copilot Enterprise Server (GHES)

  • GHES authentication and endpoint configuration for Copilot-backed Claude providers (#2175, thanks @hotelbe)

Session List Virtualization

  • Virtualized the session list via @tanstack/react-virtual so long conversations (thousands of records) scroll smoothly
  • Long session messages are collapsed by default to reduce text layout cost

Codex / OpenClaw Session Title Extraction

  • Meaningful title auto-extraction for Codex and OpenClaw sessions with 2-line display
  • Strips OpenClaw message_id suffix noise

Usage Date Range Picker

  • New date range selector on the usage dashboard with preset tabs (Today / 1d / 7d / 14d / 30d) + custom date + time calendar (#2002, thanks @yovinchen)
  • Page-jump input added on paginated lists

Model Mapping Quick-Set

  • New quick-set button next to model mapping fields in provider forms for faster edits (#2179, thanks @lispking)

Stream Check Error Classification

  • Stream Check errors are classified and surfaced as color-coded toasts
  • Refreshed default probe models to match each vendor's current lineup
  • Explicit detection for "model not found" responses

Block Official Provider Switching During Local Routing

  • Switching to official providers is blocked while Local Routing is active, with a warning toast
  • Reason: routing official API traffic through the local proxy carries account-suspension risk

Pricing Database Refresh (v8 → v9)

  • Reseed-on-migration pricing table
  • ~50 new model pricing entries including Claude 4.7, Opus 4.7 Adaptive Thinking, Grok 4, Qwen 3.5/3.6, MiniMax M2.5/M2.7, Doubao Seed 2.0 series, GLM-5/5.1
  • Corrected stale prices for DeepSeek, Kimi K2.5, and others

Application-Level Window Controls

  • Opt-in setting to render CC Switch's own minimize / toggle-maximize / close buttons instead of system decorations (#1119, thanks @git1677967754)
  • Materially improves the experience on Linux Wayland where compositor-drawn buttons can become inert

Hermes in Unified Skills Management

  • Hermes is added to the unified Skills surface
  • Skill install, enable, and filter now cover the Hermes app alongside Claude / Codex / Gemini / OpenCode / OpenClaw

OpenClaw Config Directory Override

  • New settings option to point CC Switch at a custom openclaw.json location (#1518, thanks @mrFranklin)

Hermes Config Directory Override

  • New settings option to point CC Switch at a custom ~/.hermes/config.yaml location, backed by data-driven dispatch

StepFun Step Plan Preset

New API Usage Script Template

  • Added a User-Agent header to the New API usage script template for better upstream compatibility

LemonData Provider Preset (All Six Apps)

  • LemonData registered as a third-party partner preset across Claude, Codex, Gemini, OpenCode, OpenClaw, and Hermes
  • Icon assets and zh / en / ja partner-promotion copy
  • Claude preset uses ANTHROPIC_API_KEY auth; OpenAI-compatible apps target gpt-5.4

DDSHub Codex Preset

  • Added a Codex-compatible endpoint for DDSHub at the same host as its Claude service
  • Base URL omits the /v1 suffix because the gateway auto-routes OpenAI SDK paths

Changed

"Local Proxy Takeover" → "Local Routing"

  • Unified the terminology across UI copy, README, and docs in all three locales
  • Functional behavior is unchanged

Hermes Auto api_mode Removed

  • Users must pick an explicit protocol; new deeplinks default to chat_completions
  • Eliminates URL-based heuristic surprises

Hermes Provider Form

  • Added an API mode dropdown and per-provider model editor
  • Binds per-provider models to the top-level model: when switching active providers

Hermes Deep Config Delegation

  • Deep YAML knobs are no longer duplicated in the CC Switch form — they are delegated to the Hermes Web UI via a direct launch action

Hermes Toolbar Layout

  • Swapped the Hermes Web UI button from ExternalLink to LayoutDashboard (clicking may spawn hermes dashboard rather than just opening a URL)
  • Moved MCP to the final toolbar slot so Hermes matches the Claude / Codex / Gemini / OpenCode layout

ANTHROPIC_REASONING_MODEL Removed from Claude Quick-Set

  • Decoupled the reasoning capability from model selection; the legacy field is no longer surfaced in the quick-set form

Per-Provider Proxy Config Removed

  • Consolidated into global Local Routing
  • Provider-level proxy toggle and associated storage are gone

Unified Toolbar Icon Button Width

  • Normalized icon-button widths across Claude / Codex / Gemini / OpenCode / OpenClaw / Hermes panels for a consistent header look

Rust Toolchain Pinned to 1.95

  • Adopted clippy 1.95 suggestions across the workspace and pinned the toolchain to prevent nightly drift

Tray Menu ID Constant

  • The tray identifier moved from the hardcoded string "main" to a TRAY_ID constant ("cc-switch") across all call sites (#1978, thanks @lidaxian121)

Copilot Premium Consumption Deep Optimization

A systematic overhaul to reduce Copilot reverse-proxy premium interaction consumption across multiple dimensions:

  • Proactive Thinking Block Stripping Before Forwarding: Anthropic's thinking / redacted_thinking blocks are rejected by OpenAI-compatible endpoints. Previously, the request failed upstream, burning one premium interaction before the thinking_rectifier could retry. A new proactive strip step (Copilot optimization pipeline step 3.5, after tool_result merging) eliminates that wasted interaction
  • Request Classification Fix: Messages containing tool_result are now classified as agent continuation instead of user-initiated, preventing every tool call from being falsely counted as a premium interaction
  • Subagent Detection: Identifies subagents via __SUBAGENT_MARKER__ with metadata._agent_ fallback, setting x-interaction-type=conversation-subagent
  • Deterministic x-interaction-id Billing Merge: Derives x-interaction-id from the session ID so multiple requests within the same session collapse into a single billing interaction
  • Orphan tool_result Sanitization: Cleans up orphan tool_result entries to prevent upstream errors that would trigger retries and duplicate billing
  • Warmup Downgrade Enabled by Default: Uses gpt-5-mini as the default downgrade model
  • Optimization Pipeline Reorder: classify → sanitize → merge → warmup, so classification sees raw tool_result semantics
  • Fixed a CopilotOptimizerConfig default-value inconsistency (unified to gpt-5-mini)

Usage Script Intranet Support

  • Removed private-IP / suspicious-hostname blocking from usage scripts, unblocking enterprise intranet, Docker, and self-hosted API endpoints
  • Built-in templates still enforce HTTPS (except localhost) and same-origin checks; custom templates remain user-controlled with those request-URL checks skipped

Failover Queue Notes

  • Provider notes now appear in failover queue selectors and queue rows for easier identification across multi-provider queues (#2138, thanks @Coconut-Fish)

Fixed

Header Auto-Compact Latching After Maximize

  • The toolbar no longer stays compacted after maximize/restore; compaction now reevaluates on size changes

Hermes YAML Pollution & OAuth MCP auth Drop

  • Round-tripping through CC Switch no longer drops OAuth MCP auth blocks or pollutes unrelated YAML keys
  • Guard tests added via tests/hermes_roundtrip.rs

Hermes Active Provider Display

  • Hermes UI now correctly surfaces the active provider and wires add / enable / remove actions

Hermes Provider Persistence

  • Providers persist under custom_providers: so api_mode and model survive restarts and config reloads

Hermes Health Check Borrowing OpenClaw Schema

  • Hermes providers were routed through check_additive_app_stream (the OpenClaw dispatcher), which reads camelCase baseUrl / apiKey / api and surfaced "OpenClaw provider is missing baseUrl" even when every Hermes field was filled
  • Introduced check_hermes_stream with Hermes-specific extractors that map api_mode (chat_completions / anthropic_messages / codex_responses) to the matching check_claude_stream api_format; bedrock_converse returns as unsupported
  • api_mode is now resolved before URL / API key extraction, so bedrock_converse users see the real cause rather than a misleading "missing base_url"

Usage Query Modal for Hermes & OpenClaw

  • getProviderCredentials now reads flat settingsConfig fields for Hermes (snake_case base_url / api_key) and OpenClaw (camelCase baseUrl / apiKey), so the "official balance" template auto-selects for matching providers like SiliconFlow
  • Refactored the BALANCE and TOKEN_PLAN test paths to reuse the precomputed providerCredentials instead of re-reading env.ANTHROPIC_* directly, fixing the "empty key" error for non-Claude apps even when the key was configured

Codex cache_control Preservation

  • Preserve cache_control when merging system prompts during Codex format conversion (#1946, thanks @yovinchen)

Claude Prompt Cache Key Leak

  • Stopped sending prompt cache keys during Claude chat conversions (#2003, thanks @yovinchen)

Proxy Hop-by-Hop Header Stripping

  • Strip hop-by-hop response headers (Connection, Keep-Alive, Transfer-Encoding, etc.) per RFC 7230 (#2060, thanks @yovinchen)

Permissive Proxy CORS Removed

  • Removed the permissive CORS layer from the proxy (#1915, thanks @zerone0x)

Backend Error Details in Proxy Toast

  • Surface backend error payload details in proxy-related toast messages instead of a generic failure string

Usage Log Deduplication

  • Deduplicated proxy and session-log usage records so the same request is no longer double-counted
  • Synced the request log time range with the dashboard's 1d / 7d / 30d selector

Common Config Checkbox Persistence

  • Checkbox state for Claude / Codex / Gemini common-config toggles now persists correctly across reopens (#2191, thanks @zxZeng)

Claude Plugin settings.json Sync

  • Editing the current provider now syncs back to settings.json for the Claude plugin path (#1905, thanks @chengww5217)

Google Official Gemini Env Preservation

  • Saving the Google Official Gemini provider no longer clobbers the env block

OpenCode JSON5 Parser for Trailing Commas

  • OpenCode config reads now tolerate trailing commas via a JSON5 parser (#2023, thanks @wwminger)

Preset Refreshes

  • Refreshed stale context windows for DeepSeek and Claude 1M
  • Refreshed stale model IDs; backfilled Hermes model lists
  • Fixed the Nous endpoint and replaced the Hermes placeholder icon with Nous brand artwork
  • Pruned unused official Hermes presets

Auto-Expand Collapsed Messages on Search Hit

  • Collapsed messages now auto-expand when a search match lands inside hidden content

Unknown Subscription Quota Tiers Hidden

  • Provider cards no longer render unknown subscription quota tiers

Weekly Limit Label Unified

  • Aligned the weekly_limit tier label with the official 7-day naming across locales

Root-Level Skill Repo Install

  • Fixed skill installation when the repository root itself is a skill

Session ID Parsing Clippy

  • Removed a redundant closure in session ID parsing (clippy warning)

Stream Check Default Models Refresh

  • Updated stream-check default probe models to match each vendor's current lineup

Skills Import Sync

  • Imported Skills are now immediately synced into enabled app directories instead of only being recorded in the database (#2101, thanks @yaoguohh)
  • The UI no longer shows "installed" while the target app directory is missing the skill

Ghostty Session Restore

  • Fixed Ghostty session restore launch by using shell execution with --working-directory (#1976, thanks @Suda202)
  • Avoids cwd escaping issues when the path contains spaces or special characters

Docs

README Sponsor Updates

  • Updated SiliconFlow signup bonus to ¥16
  • Trimmed the SSSAiCode sponsor blurb
  • Updated partner logos
  • Added LemonData as a new sponsor

Global Proxy Hint Clarified

  • Clarified the global proxy hint about local routing across all three locales

Takeover → Routing Rename

  • Renamed takeover docs to routing and updated anchors across all languages

PIPELLM Website URL

  • Updated the PIPELLM sponsor website URL to code.pipellm.ai

⚠️ Breaking Changes

Hermes requires explicit api_mode

  • The Auto mode is gone; imported or deeplinked providers default to chat_completions
  • Users with prior Auto configs will be prompted to pick a protocol

ANTHROPIC_REASONING_MODEL removed from Claude quick-set

  • The legacy field is no longer exposed; existing settings are cleaned up automatically

Per-provider proxy configuration removed

  • Migrate to the global Local Routing setting
  • Existing per-provider proxy values are ignored

Database schema v9 → v10

  • Adds enabled_hermes columns to mcp_servers and skills
  • Auto-migrated with DEFAULT 0; no data loss

Pricing table reseeded (v8 → v9)

  • The model_pricing table is cleared and reseeded on first launch to pick up new models and corrected prices

XCodeAPI preset removed

  • Users of the XCodeAPI preset should switch to another provider

⚠️ Risk Notice

This release inherits the risk notices originally introduced in v3.12.3 / v3.13.0 for reverse-proxy-style features.

GitHub Copilot Reverse Proxy: Using Copilot's reverse-proxy path may violate GitHub / Microsoft's terms of service. See v3.12.3 release notes.

Codex OAuth Reverse Proxy: Using the Codex OAuth reverse proxy with a ChatGPT subscription may violate OpenAI's terms of service. See v3.13.0 release notes.

By enabling these features, users accept all associated risks. CC Switch is not responsible for any account restrictions, warnings, or service suspensions that result from using these features.


Download & Installation

Visit Releases to download the appropriate version.

System Requirements

OS Minimum Version Architecture
Windows Windows 10 or later x64
macOS macOS 12 (Monterey) or later Intel (x64) / Apple Silicon (arm64)
Linux See table below x64

Windows

File Description
CC-Switch-v3.14.0-Windows.msi Recommended - MSI installer, supports auto-update
CC-Switch-v3.14.0-Windows-Portable.zip Portable, extract and run, no registry writes

macOS

File Description
CC-Switch-v3.14.0-macOS.dmg Recommended - DMG installer, drag into Applications
CC-Switch-v3.14.0-macOS.zip Extract and drag into Applications, Universal Binary
CC-Switch-v3.14.0-macOS.tar.gz For Homebrew installation and auto-update

macOS builds are Apple code-signed and notarized — install directly.

Homebrew (macOS)

brew tap farion1231/ccswitch
brew install --cask cc-switch

Update:

brew upgrade --cask cc-switch

Linux

Distribution Recommended Installation
Ubuntu / Debian / Linux Mint / Pop!_OS .deb sudo dpkg -i CC-Switch-*.deb or sudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux .rpm sudo rpm -i CC-Switch-*.rpm or sudo dnf install ./CC-Switch-*.rpm
openSUSE .rpm sudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro .AppImage Add execute permission and run, or use AUR
Other distros / not sure .AppImage chmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage

Don't miss a new cc-switch release

NewReleases is sending notifications on new releases.