This fork keeps the Web runtime as the only official GitHub Release deliverable.
This fork is used for local customization and ongoing development. The current codebase provides:
- Configuration management for Claude Code, Codex, Gemini, OpenCode, and OpenClaw
- MCP, prompts, skills, proxy, failover, and usage-related features
- A single-binary Web runtime for official releases
- Tauri desktop code kept in-repo for local development only
| Main Interface | Add Provider |
|---|---|
![]() |
![]() |
GitHub Releases publish the Web runtime only.
| Platform | Asset | Run |
|---|---|---|
| Windows x86_64 | cc-switch-web-v{version}-windows-x86_64.exe |
./cc-switch-web-v{version}-windows-x86_64.exe |
| Linux x86_64 | cc-switch-web-v{version}-linux-x86_64-ubuntu20.04 |
chmod +x ./cc-switch-web-v{version}-linux-x86_64-ubuntu20.04 && ./cc-switch-web-v{version}-linux-x86_64-ubuntu20.04 |
- URL:
http://127.0.0.1:17666 - Port override:
CC_SWITCH_PORT=8080 - Host override:
CC_SWITCH_HOST=0.0.0.0 - Linux compatibility baseline: Ubuntu 20.04+
- Windows: run the
.exedirectly in PowerShell or Command Prompt. - Linux: official assets are built on Ubuntu 20.04 to keep the minimum supported baseline explicit.
- Node.js 18+
- pnpm 8+ or npm
- Rust 1.85+
- Tauri CLI 2.8+ for desktop-only local development
# Install dependencies
pnpm install
# Web development
pnpm dev:server
pnpm dev:web
# Type checking
pnpm typecheck
# Frontend unit tests
pnpm test:unit
# Build Web frontend (default build target)
pnpm build
# Desktop packaging when needed
pnpm build:desktop./start-web.shThen open:
http://localhost:17666
Stop the service:
./stop-web.shRuntime files are written to ./.run/web/ by default:
- log:
backend.log - pid:
backend.pid
To override the runtime directory:
CC_SWITCH_RUNTIME_DIR=/tmp/cc-switch-web ./start-web.shpnpm build
cargo build --release --manifest-path crates/server/Cargo.toml
./crates/server/target/release/cc-switch-web./build-web-release.shThis script emits release-web/cc-switch-web-v{version}-linux-x86_64-ubuntu20.04.
Stage the changes you want in the release commit first, then run the helper:
git add <your-files>
pnpm release:cut -- 3.12.6 --pushThe helper synchronizes these version files before commit and tag creation:
package.jsonsrc-tauri/Cargo.tomlsrc-tauri/tauri.conf.json
To update version fields only:
pnpm release:sync-version -- 3.12.6- Frontend: React 18, TypeScript, Vite, TailwindCSS, TanStack Query
- Backend: Tauri 2, Rust, tokio, serde
- Testing: vitest, MSW, @testing-library/react
src/ frontend code
src-tauri/ Tauri desktop backend
crates/server/ web server
crates/core/ shared core logic
tests/ frontend tests
assets/ screenshots and assets
docs/ supplementary documentation
See LICENSE.

