Claude Code를 쓰다 보면 이런 생각이 들 때가 있다. 기본은 Claude로 가되, 어떤 작업은 Codex가 더 잘하고, 어떤 작업은 Gemini가 더 빠르다. 그렇다면 익숙한 Claude Code CLI는 그대로 쓰면서, 뒤쪽 모델만 유연하게 바꿔 쓸 수 없을까?
최근 커뮤니티에서 빠르게 퍼진 방법 중 하나가 DroidProxy다. macOS 메뉴바 앱 형태로 동작하면서 Claude Code, Codex, Gemini 쪽 인증과 프록시를 묶어준다. 덕분에 Claude Code를 그대로 쓰면서도 실제 모델은 gpt-5.4, gemini-3.1-pro-preview, gemini-3-flash-preview 같은 조합으로 매핑해 운용할 수 있다.
DroidProxy란?
DroidProxy는 Claude Code, Codex, Gemini 인증을 로컬에서 프록시해 주는 macOS 네이티브 메뉴바 앱이다. 핵심은 복잡한 API 라우팅을 직접 짜는 게 아니라, 로컬 엔드포인트 하나로 여러 모델 계열을 연결해 준다는 점이다.
- Claude 계열 엔드포인트:
http://localhost:8317 - OpenAI/Gemini 호환 엔드포인트:
http://localhost:8317/v1 - 지원 예시: Claude Opus 4.7, Claude Sonnet 4.6,
gpt-5.4,gemini-3.1-pro-preview,gemini-3-flash-preview - 요구사항: Apple Silicon + macOS 13 이상
DroidProxy 설정 화면. 모델별 effort와 연결 상태를 메뉴바 앱에서 관리할 수 있다. (이미지 출처: anand-92/droidproxy)
이 구조의 장점은 명확하다. 개발자가 매번 다른 CLI로 갈아타지 않아도 된다. 계속 Claude Code를 쓰면서도, Opus/Sonnet/Haiku 슬롯에 다른 모델을 배치하는 식으로 워크플로우를 유지할 수 있다.
왜 이 방식이 편한가
Claude Code 자체의 사용감은 상당히 좋다. 문제는 모델 선택지가 고정되면 작업 성격에 따라 아쉬울 때가 있다는 점이다.
예를 들어:
- 깊은 코드 수정이나 장문 reasoning은
gpt-5.4가 더 잘 맞을 수 있고 - 속도와 품질 균형은
gemini-3.1-pro-preview가 괜찮을 수 있고 - 가벼운 응답이나 빠른 반복 작업은
gemini-3-flash-preview가 유리할 수 있다
즉, 인터페이스는 Claude Code 하나로 통일하고, 실제 모델만 작업 성격에 맞게 교체하는 전략이다.
내가 쓰려는 매핑
아래처럼 매핑해 두면 체감이 꽤 좋다.
export ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-5.4
export ANTHROPIC_DEFAULT_SONNET_MODEL=gemini-3.1-pro-preview
export ANTHROPIC_DEFAULT_HAIKU_MODEL=gemini-3-flash-preview
이 조합의 의미는 다음과 같다.
| 환경 변수 | 실제 모델 | 용도 |
|---|---|---|
ANTHROPIC_DEFAULT_OPUS_MODEL |
gpt-5.4 |
가장 무거운 작업, 긴 수정, 깊은 reasoning |
ANTHROPIC_DEFAULT_SONNET_MODEL |
gemini-3.1-pro-preview |
기본 작업용 메인 모델 |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
gemini-3-flash-preview |
빠른 확인, 가벼운 질의, 반복 작업 |
이렇게 설정하면 Claude Code 안에서 모델 등급 감각은 유지하면서, 실제 호출 모델은 훨씬 유연해진다.
alias로 설정 전환하기
여러 설정을 오가려면 매번 파일을 편집하는 것보다 프로필 파일을 미리 나눠두고 alias로 전환하는 편이 훨씬 편하다.
사용 예시는 이런 식이다.
# 오리지널 설정으로 전환
alias co='cp ~/.claude/settings.original.json ~/.claude/settings.json && echo "Claude Code → ORIGINAL (restart required)"'
# Z.AI 설정으로 전환
alias cz='cp ~/.claude/settings.zai.json ~/.claude/settings.json && echo "Claude Code → Z.AI (restart required)"'
# DroidProxy / Gemini / Codex 설정으로 전환
alias cg='cp ~/.claude/settings.gemini.json ~/.claude/settings.json && echo "Claude Code → GEMINI/CODEX (restart required)"'
저는 이 방식이 가장 깔끔하다고 본다. 이유는 단순하다.
settings.json을 직접 수정하다가 꼬일 일이 적다.- 어떤 프로필로 작업 중인지 alias 이름만 봐도 바로 알 수 있다.
- 실험용 설정과 안정적인 설정을 분리하기 쉽다.
예를 들어 ~/.claude/settings.gemini.json 안에는 아래처럼 env를 넣어둘 수 있다.
{
"env": {
"ANTHROPIC_DEFAULT_OPUS_MODEL": "gpt-5.4",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "gemini-3.1-pro-preview",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-3-flash-preview"
}
}
이렇게 해두면 cg 한 번으로 DroidProxy용 설정 세트를 바꿔 끼울 수 있다.
설치와 사용 흐름
실제 흐름은 생각보다 단순하다.
1. DroidProxy 설치
GitHub Releases에서 앱을 내려받아 설치한다. 현재는 Apple Silicon 기반 macOS가 필요하다.
2. 메뉴바 앱에서 인증
DroidProxy를 실행한 뒤 Claude, Codex/OpenAI, Gemini 계열 연결을 활성화한다.
3. Claude Code 설정 준비
settings.gemini.json 같은 별도 프로필 파일에 모델 매핑을 넣는다.
4. alias로 전환
cg
5. Claude Code 재시작
alias 메시지 그대로 restart required다. 기존 세션이 있으면 종료 후 다시 띄우는 편이 안전하다.
Max Budget Mode 같은 기능도 있다
DroidProxy README를 보면 단순 프록시를 넘어서 모델별 thinking/effort를 주입하거나 조절하는 기능도 강조하고 있다. 특히 Sonnet 계열에 대해 reasoning budget을 공격적으로 주는 기능이 눈에 띈다.
DroidProxy의 Max Budget Mode 예시. reasoning 예산을 더 크게 가져가는 설정을 제공한다. (이미지 출처: anand-92/droidproxy)
이런 기능은 분명 매력적이지만, 한 가지는 기억해야 한다. reasoning을 세게 걸수록 quota 소모도 빨라질 수 있다. 그래서 기본 프로필과 실험용 프로필을 분리해 두는 게 좋다.
이런 분들에게 특히 잘 맞는다
- Claude Code의 UX는 유지하고 싶다
- 작업별로 Codex와 Gemini를 섞어 쓰고 싶다
settings.json을 매번 손으로 바꾸기 싫다- macOS에서 메뉴바 앱 기반으로 단순하게 운용하고 싶다
반대로 Windows나 Linux 중심 환경이라면 지금 시점에서는 제약이 있다. DroidProxy 자체가 macOS 네이티브 앱 중심이기 때문이다.
마무리
정리하면, DroidProxy는 Claude Code를 버리지 않고도 멀티 모델 워크플로우를 구성하게 해 주는 꽤 실용적인 도구다. 특히 co, cz, cg 같은 alias 전환 패턴과 같이 쓰면 설정 실험이 훨씬 편해진다.
Claude Code를 메인 인터페이스로 쓰면서도 뒤쪽 모델은 gpt-5.4, gemini-3.1-pro-preview, gemini-3-flash-preview로 나눠 쓰고 싶다면 한 번 시도해볼 만하다.
참고 자료