Codex 프로필 전환을 위한 Bash CLI 도구
여러 Codex 계정(직장용, 개인용, 백업용 등)을 오가다 보면 기본 ~/.codex/auth.json 파일이 큰 걸림돌이 됩니다. 수동으로 auth 파일을 복사하면 어떤 프로필이 활성화됐는지, 쿼터가 얼마나 남았는지 헷갈리고 중요한 데이터가 덮어써질 위험이 큽니다. codex-auth라는 간단한 bash 스크립트가 이를 해결해줍니다. 프로필 저장, 전환, API를 통한 사용량 모니터링 명령어를 추가한 도구죠.
이 스크립트는 프로필을 별도로 저장하고, 사용량 데이터를 캐싱하며, 프록시를 지원하고 지문(fingerprint)으로 중복 계정을 감지합니다.
auth.json 위치와 플랫폼별 주의사항
주요 인증 파일:
- Linux/macOS:
~/.codex/auth.json - Windows:
%USERPROFILE%\.codex\auth.json
access_token, id_token, account_id를 포함합니다. 구조가 변경될 수 있어 jq와 대체 방식을 사용해 파싱합니다.
수동 cp의 문제점:
- 활성 프로필 표시 없음
- 데이터 손실 위험
- 쿼터나 리셋 시간 정보 없음
스크립트 명령어
깔끔한 CLI 인터페이스를 제공합니다:
codex-auth— 사용량과 함께 프로필 목록codex-auth usage— 현재 auth.json의 쿼터codex-auth save <name>— 현재 프로필 저장codex-auth use <name>— 프로필 전환 (또는codex-auth <name>)codex-auth list-fast— API 호출 없이 로컬 목록codex-auth backup— 현재 프로필 백업
프록시 지원:
codex-auth proxy set <url>codex-auth proxy showcodex-auth proxy unset
캐싱:
codex-auth cache-time [seconds](기본 15초, 0으로 캐시 비활성)
사용 예시
- 직장 계정 로그인:
codex-auth save work - 개인 계정 로그인:
codex-auth save personal - 전환:
codex-auth work또는codex-auth personal - 출력 예:
📊 5h: 100% ⏱5h 7️⃣ 15% ⏱4d 9h work <[email protected]>
📊 5h: 100% ⏱5h 7️⃣ 84% ⏱3d 18h *personal <[email protected]>
API를 통한 사용량 모니터링
https://chatgpt.com/backend-api/wham/usage에 Authorization: Bearer $token과 account_id 헤더로 쿼리:
curl -s \
-H "Authorization: Bearer $token" \
-H "Accept: application/json" \
-H "User-Agent: CodexCLI" \
"https://chatgpt.com/backend-api/wham/usage" | jq
파싱 결과:
- 계정 이메일
- 플랜 유형
- 남은 쿼터 (5시간, 주간)
- 리셋 시간
- 코드 리뷰 제한
속도를 위한 캐싱
~/.codex-auth-profiles/.usage-cache에 토큰 + account_id + 프록시로 키링. TTL 설정으로 불필요한 API 호출 피함. TTL=0이면 매번 최신 데이터 가져옴.
프록시 지원
기업 네트워크나 방화벽용:
codex-auth proxy set http://127.0.0.1:8888
curl은 모든 요청에 --proxy 사용. ~/.codex-auth-profiles/proxy에 저장.
중복 감지
프로필 지문:
account_idid_token의sub- 이메일
- 전체 파일의 SHA256
다른 이름으로 중복 저장 방지하고 활성 auth.json과 일치 확인.
플랫폼 간 적응
- base64: Linux
base64 -d, macOSbase64 -D - stat: Linux
stat -c %Y, macOSstat -f %m - SHA256: Linux
sha256sum, macOSshasum -a 256
mktemp + mv로 원자적 쓰기.
프로필은 ~/.codex-auth-profiles에 JSON 파일로 저장: 프로필, 현재 선택, 설정, 캐시.
제한사항
- auth.json 구조 의존
- 백엔드 API 변경 가능
- Bash 한정, 복잡 로직 미지원
의존성: bash, jq, curl, awk, sort, base64, stat.
주요 장점
- auth.json 덮어쓰기 위험 없이 프로필 전환
- 시각적 쿼터와 리셋으로 사용량 모니터링
- TTL 캐싱으로 속도 향상, 네트워크용 프록시 지원
- 지문으로 중복 방지
- 원자적 쓰기, 완전 크로스플랫폼
— Editorial Team
아직 댓글이 없습니다.