프로젝트 소개

# routatic-proxy Claude Code 요청을 여러 업스트림 제공업체로 라우팅하고 자동 모델 선택 및 형식 변환을 지원하는 Go CLI 프록시입니다. `routatic-proxy`는 Claude Code와 선택한 제공업체 사이에 위치하여 Anthropic API 요청을 가로채고, 이를 적절한 형식(OpenAI, Anthropic, Responses, Gemini)으로 변환한 후 업스트림으로 전달합니다. Claude Code는 Anthropic과 통신한다고 생각하지만, 실제 요청은 사용자가 구성한 모델과 제공업체로 전송됩니다. `oc-go-cc`는 호환성 별칭으로 계속 사용할 수 있으며, 기존 `OC_GO_CC_*` 환경 변수 및 `~/.config/oc-go-cc/config.json` 파일도 계속 인식됩니다. ## 지원 제공업체 | 제공업체 | 설명 | 최적 용도 | |----------|-------------|----------| | **OpenCode Go** | 고정 요금제의 고성능 오픈소스 코딩 모델 | 일상 코딩, 복잡한 추론, 비용 효율적인 워크로드 | | **OpenCode Zen** | 종량제 요금의 선별 및 테스트된 모델 | 여러 API 키 없이 Claude/GPT/Gemini 액세스 | | **AWS Bedrock** | 자체 AWS 인프라의 엔터프라이즈급 모델 | 데이터 주권 및 규정 준수가 필요한 기업 | | **OpenRouter** | 자동 장애 조치 기능을 갖춘 100개 이상의 LLM 통합 API | 여러 제공업체의 모델 실험 | | **Anthropic** | Anthropic 우선 장애 조치 모드의 네이티브 Claude 모델 | OpenCode 폴백이 있는 Claude 중심 워크플로 | ## 기능 - **다중 제공업체** — 단일 구성에서 OpenCode Go, OpenCode Zen, AWS Bedrock 또는 OpenRouter를 통해 라우팅 - **투명 프록시** — Claude Code는 Anthropic 형식 요청을 보내고, 프록시는 제공업체 네이티브 형식으로 변환 후 다시 변환 - **모델 라우팅** — 컨텍스트(기본, 추론, 긴 컨텍스트, 백그라운드)에 따라 다른 모델로 자동 라우팅 - **스트리밍 시나리오 라우팅** — 스트리밍 요청에 대한 구성 가능한 라우팅 - **폴백 체인** — 모델 실패 시 구성된 체인의 다음 모델을 자동으로 시도 - **Anthropic 우선 장애 조치** — Claude를 Anthropic에 유지하고 요금 제한 또는 중단 시에만 OpenCode 사용 - **회로 차단기** — 모델 상태를 추적하고 실패 모델을 건너뛰어 지연 시간 급증 방지 - **실시간 스트리밍** — 실시간 형식 변환이 포함된 전체 SSE 스트리밍 - **도구 호출** — Anthropic tool_use/tool_result ↔ OpenAI/Gemini 함수 호출 변환 - **핫 리로드** — 구성 파일 변경을 감시하고 자동으로 다시 로드 - **자체 업데이트** — 한 번의 명령으로 최신 릴리스 확인 및 설치 ## GUI 버전 이 저장소는 `routatic-proxy`용 크로스 플랫폼 GUI를 제공합니다: - **macOS** — 시스템 트레이 통합이 포함된 네이티브 Cocoa 창(CGO 필요). **Releases** 페이지에서 `.dmg` 다운로드. - **Linux** — `xdg-open` 기반 브라우저 GUI(기본값, CGO 불필요). 시스템 트레이의 경우: `CGO_ENABLED=1`로 빌드하고 `libappindicator-gtk3-devel`(Fedora) 또는 `libayatana-appindicator3-dev`(Ubuntu/Debian) 설치. - **Windows** — GUI 미지원(CLI 전용). **대시보드 탭:** 개요(실시간 메트릭 및 모델 분포), 기록(필터가 있는 최근 1000개 요청), 설정(핫 리로드로 구성 편집). 대시보드는 `serve`(아닌 `start`) 사용 시 `http://127.0.0.1:3445`에서 사용할 수 있습니다. ## 빠른 시작 ```bash # 1. 설치 brew tap routatic/tap && brew install routatic-proxy # 2. 구성 초기화 routatic-proxy init # 3. API 키 설정 export ROUTATIC_PROXY_API_KEY=sk-opencode-your-key-here # 4. 프록시 시작 routatic-proxy serve # 5. Claude Code 구성 export ANTHROPIC_BASE_URL=http://127.0.0.1:3456 export ANTHROPIC_AUTH_TOKEN=unused # 6. Claude Code 실행 claude ``` **Fedora / RHEL:** 각 릴리스는 `x86_64` 및 `aarch64` RPM을 제공합니다 — `sudo dnf install https://github.com/routatic/proxy/releases/download/vX.Y.Z/routatic-proxy-X.Y.Z-1.x86_64.rpm`. Homebrew, Scoop, Docker 및 소스 빌드 옵션은 [INSTALLATION.md](INSTALLATION.md)를 참조하세요. 제공업체 전환용 GUI를 선호하시나요? routatic-proxy는 [CC-Switch](https://github.com/farion1231/cc-switch)와 함께 작동합니다. ## CLI 명령 ``` routatic-proxy start 프록시 + 대시보드 시작 (http://127.0.0.1:3445) routatic-proxy start -b 백그라운드에서 프록시 + 대시보드 시작 routatic-proxy serve 프록시 서버만 시작 (헤드리스, 대시보드 없음) routatic-proxy serve -b 백그라운드에서 프록시만 시작 (터미널에서 분리) routatic-proxy stop 실행 중인 프록시 서버 중지 routatic-proxy status 프록시 실행 여부 확인 routatic-proxy init 기본 구성 파일 생성 routatic-proxy validate 구성 파일 검증 routatic-proxy models 사용 가능한 모든 모델 나열 routatic-proxy autostart enable 로그인 시 자동 시작 활성화 routatic-proxy update 채널의 최신 릴리스로 업데이트 routatic-proxy update check 설치 없이 최신 릴리스 확인 routatic-proxy update-channel 릴리스 채널 표시 또는 전환 (stable|beta) routatic-proxy --version 버전 표시 ``` ## 문서 | 문서 | 설명 | |----------|-------------| | [MODELS.md](MODELS.md) | 모든 제공업체의 모델 참조 — 기능, 비용, 엔드포인트, 라우팅 권장 사항 | | [docs/openrouter.md](docs/openrouter.md) | OpenRouter 제공업체 설정 및 구성 | | [CONFIGURATION.md](CONFIGURATION.md) | 구성 파일 참조, 환경 변수, 모델 라우팅, 폴백 체인 | | [INSTALLATION.md](INSTALLATION.md) | Homebrew, Scoop, 소스 빌드, Docker | | [CONTRIBUTING.md](CONTRIBUTING.md) | 개발 설정, 아키텍처 | | [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | 일반적인 문제 및 디버그 모드 | | [docs/architecture.md](docs/architecture.md) | 시스템 설계 및 요청 흐름 | | [docs/fedora-setup.md](docs/fedora-setup.md) | Fedora 44 설정 (systemd, SELinux) | | [docs/reference-api.md](docs/reference-api.md) | HTTP API 참조 | | [docs/howto-add-model.md](docs/howto-add-model.md) | 새 모델 추가 (코드 변경 없음) | | [docs/howto-custom-routing.md](docs/howto-custom-routing.md) | 시나리오 감지 및 라우팅 사용자 정의 | | [docs/howto-debug-routing.md](docs/howto-debug-routing.md) | 라우팅 문제 디버깅 | ## 릴리스 채널 이 프로젝트는 두 채널로 제공됩니다. Stable이 기본이며, beta는 최신 기능을 조기에 제공합니다. ```bash routatic-proxy update-channel beta # 베타 옵트인 routatic-proxy update # 최신 베타 설치 routatic-proxy update-channel stable # 안정 릴리스로 복귀 ``` ### 베타 채널 (자동) - **트리거:** `main` 브랜치에 대한 모든 푸시 - **버전 형식:** `v{UPCOMING}-beta.{N}` (예: `v0.6.4-beta.1`), 여기서 `{N}`은 해당 버전이 안정 버전으로 출시되면 재설정되는 순차 카운터입니다. - **GitHub 릴리스:** 사전 릴리스로 표시 - **Docker 태그:** `beta` (롤링), 정확한 `v{UPCOMING}-beta.{N}` - **사용 사례:** 최신 기능 및 버그 수정을 즉시 받기; 테스트에 이상적 ### 프로덕션 채널 (수동) - **트리거:** `releases` 브랜치에서 수동 `workflow_dispatch` - **버전 형식:** `vX.Y.Z` (시맨틱 버전 관리) - **GitHub 릴리스:** 안정 버전으로 표시 - **Docker 태그:** `vX.Y.Z`, `vX.Y`, `vX`, `latest` - **사용 사례:** 프로덕션 사용을 위한 안정적이고 테스트된 릴리스 ## 기여 기여를 환영합니다! 개발 설정, 아키텍처 개요 및 풀 리퀘스트 제출 방법은 [CONTRIBUTING.md](CONTRIBUTING.md)를 참조하세요. ## 라이선스 [AGPL-3.0](LICENSE)