프로젝트 소개
# 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)
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.