claude-pace
무엇인가
쿼터 소비 속도를 시간 축과 대조해 관리하는 영역을 규율한다. 남은 한도가 얼마인지가 아니라, 현재 소비 속도가 윈도우 리셋 시점까지 유지 가능한지 여부를 상태줄에 상시 노출한다. 사용률 60%라는 숫자만으로는 판단할 수 없는 지속 가능성을, 경과 시간 대비 초과분 또는 여유분으로 환산해 보여주는 것이 이 도구의 역할 범위다.
어떻게 동작하나
구현은 Bash 한 파일과 jq로 끝난다. Claude Code가 약 300ms 주기로 상태줄 명령을 호출하며 stdin으로 넘기는 JSON을 읽고, 2.1.80+에서 제공되는 rate_limits 필드로 5h·7d 사용률과 리셋 시각을 계산한다. 페이스 델타는 각 윈도우의 사용률과 경과 시간 비율을 비교해 산출하며, ⇡는 초과 소비, ⇣는 여유를 뜻한다. git 관련 캐시는 $XDG_RUNTIME_DIR/claude-pace 또는 ~/.cache/claude-pace에 모드 700으로 저장되고 읽기 시 검증되며, 공용 /tmp에는 아무것도 쓰지 않는다. 상태줄 상단에는 모델, effort, 프로젝트(branch), git diff 통계가 함께 표시된다.
무엇과 다른가
일반적인 상태줄 스킨과 구조적으로 다르다. 테마·powerline·TUI 설정을 다루는 ccstatusline 계열과 달리 설정 표면이 없고 파일 하나로 전체 소스가 끝난다. Node.js 런타임과 lockfile을 요구하지 않으며, 계정 단위 스냅샷을 캐시해 재사용하지 않는다. rate_limits가 없으면 오래된 수치를 대신 보여주지 않고 --를 출력하고, 로컬 세션 비용이 있으면 함께 표시한다.
어떻게 쓰나
설치는 세 갈래다. Claude Code 안에서 /plugin marketplace add Astro-Han/claude-pace, /plugin install claude-pace, /reload-plugins, /claude-pace:setup 순으로 실행하는 플러그인 방식이 권장된다. npx claude-pace를 쓰거나, 릴리스 태그에서 스크립트를 내려받아 ~/.claude/statusline.sh로 두고 ~/.claude/settings.json의 statusLine 블록에 command로 등록하는 수동 방식도 있다. 등록 후 Claude Code를 재시작하면 첫 렌더링이 시작된다. 업그레이드는 채널별로 /plugin update, npx claude-pace@latest, curl 재실행이며 모든 채널이 태그된 릴리스만 설치한다.
전제와 한계
전제는 jq 설치와 Claude Code 2.1.80 이상이다. 그보다 낮은 버전이거나 rate_limits를 노출하지 않는 제공자를 쓰면 5h·7d 쿼터 자리는 --로 남고 페이스 계산도 동작하지 않는다. 네트워크 호출은 하지 않으므로 쿼터 데이터는 전적으로 stdin에 의존한다. Claude Code 전용이며 Codex·Cursor·Copilot에는 붙지 않는다. 제거는 settings.json에서 statusLine 블록을 지우는 것으로 끝난다.