AI 코딩 어시스턴트 로그를 탐색하기 위한 CLI 도구 구축 (Claude Code & Codex CLI)
Source: Dev.to
문제
Claude Code나 OpenAI Codex CLI와 같은 AI 코딩 어시스턴트를 사용하고 있다면 다음과 같은 상황을 겪어봤을 것입니다:
- “클로드가 지난주에 제안한 해결책이 뭐였지?”
- “그때 정말 잘 작동했던 프롬프트를 어떻게 입력했지?”
두 도구 모두 대화 로그를 로컬에 저장하지만, 과거 세션을 찾는 일은 고통스럽습니다:
# Claude Code 로그
~/.claude/projects//*.jsonl
# Codex CLI 로그
~/.codex/sessions/YYYY/MM/DD/*.jsonl
이렇게 중첩된 디렉터리를 직접 탐색해야 하나요? 절대 아니죠.
해결책
fzf를 이용해 인터랙티브하게 로그를 탐색할 수 있는 두 개의 간단한 쉘 스크립트를 만들었습니다:
- claude-logs – Claude Code용
- codex-logs – OpenAI Codex CLI용
각 스크립트는 단일 파일(~200줄)이며 fzf와 jq만 있으면 바로 사용할 수 있습니다.
기능
두 도구는 동일한 명령 구조를 공유합니다:
| 명령 | 설명 |
|---|---|
| (인자 없음) | 인터랙티브 모드 – fzf로 탐색 |
list | 모든 프로젝트/월 보기 |
latest | 가장 최근 세션 보기 |
tail | 실시간으로 현재 세션 감시 |
status | CLI가 실행 중인지 확인 |
간단 시연
인터랙티브 모드
$ claude-logs
# → fzf로 프로젝트 선택
# → fzf로 세션 선택
# → 포맷된 대화 보기
실시간 모니터링
$ claude-logs tail
# → 현재 세션을 실시간으로 감시 (Ctrl+C로 종료)
상태 확인
$ claude-logs status
Claude Code is running (PID: 12345)
Recent sessions:
2025-12-18 15:30 - my-project
2025-12-18 14:00 - another-project
출력 형식
원시 JSONL 로그는 읽기 쉬운 대화 형태로 변환됩니다:
━━━━━━━━━━ USER ━━━━━━━━━━
Fix the bug in this function
━━━━━━━━━━ CLAUDE ━━━━━━━━━━
I found the issue. The problem is...
🔧 [Tool: Edit file]
Codex CLI의 경우 프로젝트 경로와 Git 브랜치 정보도 함께 표시됩니다:
=== rollout-xxx.jsonl ===
Project: /Users/me/my-project | Branch: main
설치
사전 요구 사항
brew install fzf jq
claude-logs 설치
git clone https://github.com/wondercoms/claude-logs.git
chmod +x claude-logs/claude-logs
cp claude-logs/claude-logs ~/.local/bin/
codex-logs 설치
git clone https://github.com/wondercoms/codex-logs.git
chmod +x codex-logs/codex-logs
cp codex-logs/codex-logs ~/.local/bin/
Note:
~/.local/bin이PATH에 포함되어 있는지 확인하세요.
작동 원리
도구들은 매우 직관적입니다:
- 스캔 – 로그 디렉터리 구조를 탐색합니다.
- 파싱 –
jq로 JSONL 파일을 읽어 메시지를 추출합니다. - 표시 –
fzf(프리뷰 포함)로 옵션을 보여줍니다. - 포맷 – ANSI 색상으로 출력합니다.
fzf 프리뷰 기능이 핵심입니다 – 열기 전에 대화 스니펫을 미리 볼 수 있습니다:
fzf --preview 'head -20 {} | jq -r "..."'
활용 사례
- 과거 해결책 참고 – 비슷한 문제를 어떻게 해결했는지 찾기.
- 효과적인 프롬프트 재사용 – 잘 작동했던 프롬프트를 발견하고 적용하기.
- 일일 리뷰 – 오늘 AI 도움으로 무엇을 했는지 검토하기.
- 디버깅 – AI CLI가 예상대로 동작하지 않을 때 로그 확인하기.
현재 제한 사항
- macOS 전용 (
stat -f를 사용해 타임스탬프를 얻음). - Linux 지원은
stat --format을 사용해야 함 – PR 환영!
링크
- claude-logs: https://github.com/wondercoms/claude-logs
- codex-logs: https://github.com/wondercoms/codex-logs
마무리
Claude Code나 Codex CLI를 많이 사용한다면 이 도구들을 한 번 써보세요. 간단하고 의존성이 적으며 실제 불편함을 해결해 줍니다.
버그를 발견했나요? Linux 지원을 원하시나요? 이슈와 PR을 언제든 환영합니다!