ChatGPT(codex) 로 claude code 이용 시 주의해야할 사항
으아니... Codex가 ChatGPT로 바뀌다니...
Codex는 claude code의 사용 원본 메시지를 기록하지 않는다
codex로 claude code를 호출 할 때, 별다른 언급이 없으면 --no-session-persistence 옵션을 붙인 채로 실행한다. 이 옵션은 로컬에 JSONL을 남기지 않기 때문에, claude code 사용 원본이 남지 않는다.
참고로 claude code의 사용관련 JSONL은 다음과 같다.
{"type":"user","message":{...}}
{"type":"assistant","message":{"usage":{...}}}
{"type":"tool_result","message":{...}}사용 원본이 남지 않으면 생기는 문제
Codex가 claude로 뭘 어떻게 호출하고, 무슨 프롬프트를 입력했는지 알 길이 없다. 물론 codex의 JSONL을 확인하면, 입력 프롬프트 정도야 확인 가능하겠지만.
토큰 사용량 확인이 어렵다
ccusage같은 명령어로 토큰 사용량 확인이 가능한데, ccusage는 JSONL의 usage를 보고 계산한다. JSONL이 누락되었으니, ccusage에도 트래킹되지 않는다.~/.claude/ 내 캐시를 지우면, ccusage에서도 사용량이 줄어드는 것과 같다.
사용 내역 트래킹 프로그램이 트래킹하지 못한다
ccusage는 주로 사용하는 확인 도구 중 하나에 불과하다. 난 별도로 내가 AI Coding Agents를 잘 활용하는지 인지하기 위해, Dashboard 하나를 만들었다.
주기적으로 사용 기록을 토대로 개선 사항 등을 알려주고는 하는데, 여기서도 codex가 삽질을 하는지 아닌지, claude code를 쓸 때 harness 들은 잘 활용하는지 알 길이 없다.
해결 방법
codex 혹은 claude 에게 해결해달라고 한다
가장 빠르지만... 농담이고, ~/.codex/AGENTS.md에 다음과 같이 적으면 된다.
## Claude CLI logging - Never pass `--no-session-persistence` or set `CLAUDE_CODE_SKIP_PROMPT_HISTORY`. - Never override `HOME` or `CLAUDE_CONFIG_DIR`; keep transcripts in `~/.claude/projects/`. - Preserve Claude transcripts so `ccusage` can read token usage.
한국어로는 아래와 같은 의미다. 영어로 적는 게 토큰 소모량을 낮추는 것에 도움이 된다.
Claude 실행 시 - --no-session-persistence 금지 - CLAUDE_CODE_SKIP_PROMPT_HISTORY 금지 - HOME과 CLAUDE_CONFIG_DIR 변경 금지
Claude code가 codex를 호출할 때는 괜찮다
Claude는 별도로 --no-session-persistence 같은 옵션(codex용은 --ephemeral이고, 서브커맨드에만 있다)을 주지 않는다. 사용량, 사용 내역 트래킹 목적으로는 별 생각없이 사용해도 된다.
응용하기
컴퓨터 하드디스크 압박이 심하고, 토큰 사용량 트래킹이 중요하지 않으며, 중첩호출 내역까지 관리하기는 어렵겠다 싶다면 --ephemeral 을 주는 것도 좋은 방법일 수 있다.