여러 Max 계정 간에 Claude Code 사용량을 분산하고, 제한 도달 전 계정을 전환하며, 모든 요청을 로깅하는 로컬 프록시를 만들었습니다
I built a local proxy that spreads Claude Code across multiple Max accounts, switches before a limit hits, and logs every request (system prompt, tool calls, tokens, cost)
핵심 요약
Claude Code 사용 시 여러 계정을 자동으로 전환하고 사용량을 관리하며 요청을 로깅하는 로컬 프록시 도구 공개.
- 계정 관리 — 여러 Max 계정 간 사용량 분산 및 제한 도달 전 자동 전환 지원함.
- 요청 로깅 — 시스템 프롬프트, 도구 호출, 토큰 및 비용 등을 로컬 SQLite에 기록함.
- 운영 효율 — 5시간 제한 및 모델별 사용량을 모니터링하여 세션 끊김 방지함.
- 사용자 주의 — Anthropic 서비스 약관 위반 가능성이 있어 사용 시 주의가 필요함.
난 Claude Code를 밤새 루프 돌릴 정도로 엄청나게 굴리는데, Max 구독도 여러 개 쓰고 있거든. 근데 매번 내 일주일을 망치는 게 뭐냐면, 새벽 2시에 5시간 제한 걸려서 아침까지 멍하니 노는 꼴이야. 정작 돈 내고 있는 다른 계정은 널널한데 말이지. 그래서 그냥 프록시 하나 만들어서 몇 주 동안 돌려보고 이번 주말에 오픈소스로 풀었어. MIT 라이선스고, macOS랑 Linux 지원함.
이게 하는 일:
-
로컬 데몬 방식으로 돌아감. Claude Code에서 ANTHROPIC_BASE_URL을 이쪽으로 지정하면 돼 (cm route on으로 settings.json 설정하고, cm route off 하면 원래대로 돌아옴). 요청 보낼 때 Authorization 헤더만 딱 바꿔치기함.
-
각 응답에 붙어오는 rate-limit 헤더를 보고 계정별 5시간, 주간, 모델별 제한을 다 감시해. 그러고는 여유가 제일 많은 계정으로 세션을 알아서 꽂아줌. 세션은 한 계정에 딱 붙어있으니까 프롬프트 캐시도 계속 따끈따끈하게 유지되고.
-
제한 걸리기 전에 미리미리 계정 갈아타고 (임계값은 네 맘대로 설정 가능), 절대 멈추는 일 없음. 다들 한계치 넘었어도 그나마 제일 나은 놈 골라잡고, 최후의 수단으로는 그냥 네 원래 로그인 정보로 쏴버림.
-
cm status랑 대시보드 보면 계정 상태 한눈에 다 보이고, "runway"라고 지금 속도로 굴리면 언제 다 털리는지도 계산해줌.
-
모든 요청이 여기를 거치니까 로컬에 다 기록됨. 시스템 프롬프트, 툴 정의, 툴 호출이랑 결과, 토큰, 비용까지 세션별로 싹 다. 디스크에 SQLite로 저장되고 일반 텍스트임. log.bodies none 하면 끄는 것도 가능. Claude Code가 도대체 뭘 보내는지 궁금했던 놈들한테는 개꿀임.
-
계정당 한 번씩 주는 무료 세션 초기화(10월 22일 전에 언제 쓸지)도 계획해주고, 쓰면 자동으로 체크해줌.
계정 없이도 써볼 수 있음: npx @asifjahmed/claudemanager demo 치면 가짜 계정으로 대시보드 바로 띄워줌.
이거 안 깔더라도 알아두면 도움 될 만한 것들:
-
리프레시 토큰은 일회용이고 유예 기간 따위 없음. 응답 하나라도 놓치면(리프레시 중에 노트북 잠들거나 하면) 그 로그인 세션은 그냥 뒤진 거임. 나 하룻밤 사이에 세 개나 날려 먹음.
-
anthropic-ratelimit-unified-* 헤더 없는 429 에러는 그냥 일시적인 스로틀링이지 네 제한 걸린 게 아님. 이걸 제한 걸린 줄 알고 쫄면 다른 계정 놀고 있는데 세션만 멈추는 꼴 나는 거임.
-
토큰의 88% 정도는 캐시 읽기임. 모델 선택이나 캐시 TTL보다 컨텍스트 길이가 핵심임.
Anthropic이랑은 아무 상관 없음. Claude Code의 비공식 내부 구조를 건드리는 거라(업데이트할 때마다 cm doctor로 체크함), 이런 식으로 구독 여러 개 돌리는 게 약관 위반인지 아닌지는 네가 알아서 판단해. README에도 똑같이 적어놨음.
