SaladDay/cc-switch-cli: Claude Code, Codex, Gemini, OpenCode 및 OpenClaw를 위한 명령줄
요약
cc-switch-cli는 Claude Code, Codex, Gemini, OpenCode, OpenClaw 등 다양한 AI 모델 제공자의 설정을 통합 관리할 수 있는 명령줄 도구입니다. MCP 서버, 기술(skills), 프롬프트, 로컬 프록시 경로 및 환경 점검에 대한 앱별 지원을 제공하며, WebDAV 동기화 기능을 통해 업스트림 프로젝트와 호환됩니다.
핵심 포인트
- Claude Code, Codex, Gemini 등 다양한 AI 모델의 설정을 통합 관리하는 CLI 도구
- MCP 서버, 프롬프트, 기술(skills) 및 로컬 프록시 경로에 대한 앱별 지원 제공
- WebDAV 동기화 기능을 통해 원본 프로젝트와 완벽한 호환성 유지
- 대화형 모드와 명령줄 모드를 모두 지원하여 사용자 편의성 제공
Claude Code, Codex, Gemini, OpenCode 및 OpenClaw를 위한 명령줄 관리 도구 (Command-Line Management Tool)
Claude Code, Codex, Gemini, OpenCode 및 OpenClaw 제공자 설정에 대한 통합 관리와 더불어 MCP 서버, 기술 (skills), 프롬프트 (prompts), 로컬 프록시 경로 (local proxy routes) 및 환경 점검 (environment checks)에 대한 앱별 지원을 제공합니다.
English | 中文
이 프로젝트는 CC-Switch의 **CLI 포크 (CLI fork)**입니다.
🔄 WebDAV 동기화 기능은 업스트림 (upstream) 프로젝트와 완전히 호환됩니다.
Credits: 원본 아키텍처 및 핵심 기능은 farion1231/cc-switch에서 제공되었습니다.
Changelog: CHANGELOG.md
이 프로젝트를 후원해 주신 PackyCode에 감사드립니다! PackyCode는 Claude Code, Codex, Gemini 등을 위한 중계 서비스를 제공하는 신뢰할 수 있고 효율적인 API 중계 서비스 제공업체입니다. PackyCode는 저희 소프트웨어 사용자들에게 특별 할인을 제공합니다: 이 링크를 통해 가입하고 충전 시 프로모션 코드 cc-switch-cli를 사용하면 10% 할인을 받을 수 있습니다.
|
|
이 프로젝트를 후원해 주신 AICodeMirror에 감사드립니다! AICodeMirror는 Claude Code / Codex / Gemini CLI를 위해 기업급 동시성, 빠른 인보이스 발행, 24/7 전담 기술 지원을 갖춘 공식 고안정성 중계 서비스를 제공합니다. Claude Code / Codex / Gemini 공식 채널 가격의 38% / 2% / 9% 수준이며, 충전 시 추가 할인이 제공됩니다! AICodeMirror는 cc-switch-cli 사용자들에게 특별한 혜택을 제공합니다: 이 링크를 통해 가입하면 첫 충전 시 20% 할인을 받을 수 있으며, 기업 고객은 최대 25%까지 할인을 받을 수 있습니다!
|
|
이 프로젝트를 후원해 주신 RightCode에 감사드립니다! RightCode는 Claude Code, Codex, Gemini와 같은 모델에 대한 라우팅 서비스를 안정적으로 제공합니다. 매우 가성비 좋은 Codex 월간 구독 플랜을 특징으로 하며, 쿼터 이월 (quota rollovers)—하루 동안 사용하지 않은 쿼터를 다음 날로 이월하여 사용할 수 있는 기능을 지원합니다. RightCode는 CC-Switch CLI 사용자들을 위해 특별한 혜택을 제공합니다: 이 링크를 통해 가입하고 매 충전 시 5%의 종량제 (pay-as-you-go) 크레딧 보너스를 받으세요!
|
|
이 프로젝트를 후원해 주신 DDS에 감사드립니다! DDS Hub는 신뢰할 수 있는 고성능 Claude API 프록시 (proxy) 서비스입니다.
DDS Hub는 개인 및 기업 사용자 모두에게 비용 효율적인 국내 Claude 직접 가속 서비스를 제공합니다. 당사는 Claude Haiku, Opus, Sonnet 및 기타 플래그십 모델을 완벽하게 지원하며, 안정적이고 지연 시간이 낮은 Claude Max 넘버 풀 (number pools)을 제공합니다. 1,000 RMB 이상의 충전 시 인보이스 (Invoices) 발행이 가능합니다. 기업 고객은 맞춤형 그룹화 및 전담 기술 지원 서비스도 이용할 수 있습니다. CC-Switch CLI 사용자 전용 혜택: 이 링크를 통해 등록하고 첫 충전 시 10% 추가 크레딧을 받으세요 (충전 후 그룹 관리자에게 문의하여 수령하시기 바랍니다)!
|
| 전환 (Switch) | 설정 (Settings) |
|---|
대화형 모드 (Interactive Mode, 권장)
cc-switch
🤩 화면에 표시되는 메뉴를 따라 기능을 탐색하세요.
명령줄 모드 (Command-Line Mode)
cc-switch provider list # 제공자(providers) 목록 표시
cc-switch provider switch <id> # 제공자 전환
cc-switch provider export <id> # Claude 제공자를 독립된 설정 파일로 내보내기
...
전체 명령 목록은 "Features" 섹션을 참조하세요.
Windows 사용자: 아래의 수동 설치 (Manual Installation) 섹션을 참조하세요.
curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash
이 명령은 cc-switch를 ~/.local/bin에 설치합니다. 대상 디렉토리를 변경하려면 CC_SWITCH_INSTALL_DIR을 설정하세요.
- 대상 디렉토리가 이미 존재하는 경우, 설치 프로그램은 TTY에서 프롬프트를 표시하며,
CC_SWITCH_FORCE=1이 설정되지 않은 비대화형 셸 (non-interactive shells)에서는 덮어쓰기를 거부합니다. - Linux의 경우, glibc 빌드가 필요한 경우CC_SWITCH_LINUX_LIBC=glibc를 설정하세요.
수동 설치 (Manual Installation)
# 유니버설 바이너리 (Universal Binary) 다운로드 (권장, Apple Silicon + Intel 지원)
curl -LO https://github.com/saladday/cc-switch-cli/releases/latest/download/cc-switch-cli-darwin-universal.tar.gz
# 압축 해제
...
# 다운로드
curl -LO https://github.com/saladday/cc-switch-cli/releases/latest/download/cc-switch-cli-linux-x64-musl.tar.gz
# 압축 해제
...
# Raspberry Pi 또는 ARM 서버용
curl -LO https://github.com/saladday/cc-switch-cli/releases/latest/download/cc-switch-cli-linux-arm64-musl.tar.gz
tar -xzf cc-switch-cli-linux-arm64-musl.tar.gz
...
# zip 파일 다운로드
# https://github.com/saladday/cc-switch-cli/releases/latest/download/cc-switch-cli-windows-x64.zip
# 압축 해제 후, cc-switch.exe를 PATH 디렉터리로 이동합니다. 예:...
사전 준비 사항 (Prerequisites):
- Rust 1.85+ (rustup을 통해 설치)
빌드 (Build):
git clone https://github.com/saladday/cc-switch-cli.git
cd cc-switch-cli/src-tauri
cargo build --release
...
시스템에 설치 (Install to System):
# macOS/Linux
sudo cp target/release/cc-switch /usr/local/bin/
# Windows
...
Claude Code, Codex, Gemini, OpenCode, 및 OpenClaw의 API 구성을 관리합니다.
기능 (Features): 원클릭 전환, 독립형 Claude 설정 내보내기(export), 다중 엔드포인트 지원, API 키 관리, 원격 모델 검색(remote model discovery), 그리고 지원되는 경우 속도 테스트 또는 스트림 상태 확인과 같은 앱별 진단 기능.
cc-switch provider list # 모든 제공업체 목록 표시
cc-switch provider current # 현재 제공업체 표시
cc-switch provider switch <id> # 제공업체 전환
...
Claude, Codex, Gemini, 및 OpenCode 전반에 걸쳐 Model Context Protocol (MCP) 서버를 관리합니다.
기능 (Features): 통합 관리, 다중 앱 지원, 세 가지 전송 유형(stdio/http/sse), 자동 동기화(automatic sync), 그리고 TOML 및 JSON 타겟을 위한 실시간 구성 어댑터(live-config adapters).
cc-switch mcp list # 모든 MCP 서버 목록 표시
cc-switch mcp add # 새 MCP 서버 추가 (대화형)
cc-switch mcp edit <id> # MCP 서버 편집
...
AI 코딩 어시스턴트의 시스템 프롬프트 프리셋을 관리합니다.
크로스 앱 지원 (Cross-app support): Claude (CLAUDE.md),
Codex (AGENTS.md),
Gemini (GEMINI.md),
OpenCode (AGENTS.md),
OpenClaw (AGENTS.md).
cc-switch prompts list # 프롬프트 프리셋 목록 표시
cc-switch prompts current # 현재 활성 프롬프트 표시
cc-switch prompts activate <id> # 프롬프트 활성화
...
커뮤니티 스킬 (skills)을 통해 Claude Code/Codex/Gemini/OpenCode의 기능을 관리하고 확장합니다.
주요 기능: SSOT (Single Source of Truth) 기반의 스킬 저장소, 멀티 앱 활성화/비활성화, 앱 디렉토리로의 동기화, 미관리 항목 스캔/가져오기, 리포지토리 (repo) 탐색.
cc-switch skills list # 설치된 스킬 목록 표시
cc-switch skills discover <query> # 사용 가능한 스킬 탐색 (별칭: search)
cc-switch skills install <name> # 스킬 설치
...
설정 (configuration) 백업, 가져오기 (import), 내보내기 (export)를 관리합니다.
주요 기능: 사용자 정의 백업 명명, 대화형 백업 선택, 자동 로테이션 (10개 유지), 가져오기/내보내기, 공통 스니펫 (snippets), WebDAV 동기화.
cc-switch config show # 설정 표시
cc-switch config path # 설정 파일 경로 표시
cc-switch config validate # 설정 파일 유효성 검사
...
지원되는 앱에서 사용하는 로컬 멀티 앱 프록시 (multi-app proxy)를 검사하고 제어합니다.
주요 기능: 지속 가능한 활성화/비활성화 스위치, 현재 라우트 (route) 검사, 대시보드 텔레메트리 (telemetry), 디버깅을 위한 포그라운드 서브 (foreground serve) 모드.
cc-switch proxy show # 프록시 설정 및 라우트 표시
cc-switch proxy enable # 지속 가능한 프록시 스위치 활성화
cc-switch proxy disable # 지속 가능한 프록시 스위치 비활성화
...
환경 충돌 및 필수 로컬 CLI (Command Line Interface) 설치 여부를 검사합니다.
cc-switch env check # 환경 충돌 검사
cc-switch env list # 관련 환경 변수 목록 표시
cc-switch env tools # Claude/Codex/Gemini/OpenCode CLI 확인
대화형 모드는 영어와 중국어를 지원하며, 언어 설정은 자동으로 저장됩니다.
- 기본 언어: 영어
- 언어 전환을 위해
⚙️ Settings메뉴로 이동하세요.
셸 완성 (Shell completions), 환경 관리 및 기타 유틸리티를 제공합니다.
# 셸 완성
cc-switch completions install --activate # 권장: bash/zsh용 설치 + 활성화
cc-switch completions install # 보수적 방식: 설치만 수행, rc 파일 수정 없음
...
자동 설치/활성화는 현재 bash 및 zsh를 대상으로 합니다.
만입니다. 다른 셸(shell)은 cc-switch completions fish와 같이 원본 생성기 경로(raw generator path)를 통해 계속 사용할 수 있습니다.
.
SQLite 기반 상태 관리 (SQLite-backed state): 핵심 데이터는 기본적으로 ~/.cc-switch/cc-switch.db에 저장됩니다 (또는 $CC_SWITCH_CONFIG_DIR/가 설정된 경우 해당 경로에 저장됨). 기존의 config.json은 이전 버전의 가져오기(import) 및 마이그레이션(migration) 경로를 위해서만 유지됩니다.
기술 단일 진실 공급원 (Skills SSOT): 기술 소스 파일은 기본적으로 ~/.cc-switch/skills/에 저장됩니다 (또는 $CC_SWITCH_CONFIG_DIR/skills/가 설정된 경우 해당 경로에 저장됨). 반면, 설치 상태 및 앱 활성화 정보는 데이터베이스에 유지됩니다.
안전한 라이브 동기화 (Safe Live Sync, 기본값): 아직 초기화되지 않은 앱에 대해 라이브 파일(live files) 작성을 건너뜁니다 (이는 ~/.claude, ~/.codex, ~/.gemini, ~/.config/opencode 또는 ~/.openclaw가 예기치 않게 생성되는 것을 방지합니다).
원자적 쓰기 (Atomic Writes): 임시 파일 생성 후 이름 변경(temp file + rename) 패턴을 사용하여 데이터 손상을 방지합니다.
서비스 레이어 재사용 (Service Layer Reuse): 기존 GUI 버전의 기능을 100% 재사용합니다.
동시성 안전 (Concurrency Safe): 범위 지정 가드(scoped guards)를 갖춘 RwLock을 사용합니다.
CC-Switch 저장소 (CC-Switch Storage) (기본값: ~/.cc-switch, 재정의: CC_SWITCH_CONFIG_DIR):
~/.cc-switch/cc-switch.db: 제공자(providers), MCP, 프롬프트(prompts) 및 앱 상태를 위한 메인 데이터베이스~/.cc-switch/settings.json: 설정(settings)~/.cc-switch/skills/: 설치된 기술 소스 (SSOT)~/.cc-switch/backups/: 자동 순환(auto-rotation, 10개 유지)~/.cc-switch/config.json: 호환성 및 가져오기 흐름을 위해 유지되는 레거시 JSON
CC_SWITCH_CONFIG_DIR이 설정되면, CC-Switch는 해당 디렉토리를 설정 루트(config root)로 사용합니다. ~/.cc-switch 아래에 있는 기존 데이터는 자동으로 마이그레이션되지 않습니다.
라이브 설정 (Live Configs):
- Claude:
~/.claude/settings.json(제공자/공통 설정)~/.claude.json(MCP)~/.claude/CLAUDE.md(프롬프트)
- Codex:
~/.codex/auth.json(인증 상태)~/.codex/config.toml(제공자/공통 설정 + MCP)~/.codex/AGENTS.md(프롬프트)
Codex 설정 디렉토리는 CC-Switch의 수동 재정의(manual override)를 우선적으로 사용합니다. 재정의가 구성되지 않은 경우, CC-Switch는 $CODEX_HOME이 기존 디렉토리를 가리키면 해당 경로를 따르며, 그렇지 않으면 $HOME/.codex를 사용합니다.
- Codex 설정 디렉토리는 CC-Switch의 수동 오버라이드 (manual override)를 우선적으로 사용합니다. 오버라이드가 구성되어 있지 않으면, CC-Switch는 Codex의 설정을 따릅니다.
- Gemini:
~/.gemini/.env(provider env),
~/.gemini/settings.json(settings + MCP),
~/.gemini/GEMINI.md(prompts) - OpenCode:
~/.config/opencode/opencode.json(providers + MCP + runtime config),
~/.config/opencode/AGENTS.md(prompts) - OpenClaw:
~/.openclaw/openclaw.json(providers + env/tools/agents defaults),
~/.openclaw/AGENTS.md(prompts)
프로바이더 (provider)를 전환한 후 왜 제 설정이 적용되지 않나요?
먼저, 대상 CLI가 최소 한 번은 초기화되었는지 확인하십시오 (즉, 해당 설정 디렉토리가 존재하는지 확인). CC-Switch는 초기화되지 않은 앱에 대해 실시간 동기화 (live sync)를 건너뛸 수 있으며, 이 경우 경고 메시지가 표시됩니다. 대상 CLI를 한 번 실행한 후 (예: claude --help, codex --help, gemini --help, opencode --help, openclaw --help), 다시 전환하십시오.
이는 대개 환경 변수 (environment variable) 충돌로 인해 발생합니다. 시스템 환경 변수에 API 키 (예: ANTHROPIC_API_KEY, OPENAI_API_KEY)가 설정되어 있다면, 해당 키가 CC-Switch의 설정을 덮어씁니다.
해결 방법:
- 충돌 확인:
cc-switch env check --app claude - 모든 관련 환경 변수 목록 표시:
cc-switch env list --app claude - 충돌이 발견되면 수동으로 제거하십시오:
macOS/Linux: 셸 설정 파일 (~/.bashrc,~/.zshrc등)을 편집합니다. 환경 변수가 포함된 줄을 찾아 삭제하십시오.nano ~/.zshrc또는 선호하는 텍스트 에디터(vim, code 등)를 사용하십시오.
Windows: 시스템 속성 → 환경 변수 (Environment Variables)를 열고 충돌하는 변수를 삭제하십시오. - 변경 사항을 적용하려면 터미널을 재시작하십시오.
어떤 앱들이 지원되나요?
CC-Switch는 현재 다섯 가지 AI 코딩 어시스턴트를 지원합니다:
Claude Code (--app claude, 기본값)
Codex (--app codex)
Gemini (--app gemini)
OpenCode (--app opencode)
OpenClaw (--app openclaw)
어떤 앱을 관리할지 지정하려면 글로벌 --app 플래그를 사용하십시오:
cc-switch --app codex provider list
버그를 보고하거나 기능을 요청하려면 어떻게 해야 하나요?
다음 내용을 포함하여 GitHub Issues 페이지에 이슈를 생성해 주세요:
- 문제 또는 기능 요청에 대한 상세한 설명
- 재현 단계 (버그의 경우)
- 시스템 정보 (OS, 버전)
- 관련 로그 또는 에러 메시지
Rust: 1.85+ (rustup)
Cargo: Rust에 포함됨
cd src-tauri
cargo run # 개발 모드 (Development mode)
cargo run -- provider list # 특정 명령 실행
...
src-tauri/src/
├── cli/
│ ├── commands/ # CLI 서브커맨드 (provider, mcp, prompts, skills, proxy, env, ...)
...
기여를 환영합니다! 이 포크(Fork) 버전은 CLI 기능에 집중하고 있습니다.
PR(Pull Request)을 제출하기 전에:
-
✅ 포맷 체크 통과:
cargo fmt --check -
✅ 린터 (Linter) 통과:
cargo clippy -
✅ 테스트 통과:
cargo test -
💡 먼저 이슈를 생성하여 논의해 주세요
-
MIT © 원작자: Jason Young
-
CLI 포크 유지 관리자: saladday
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기