Sprag

Gateways, pricing, FAQ and environment (한국어)

게이트웨이를 거치면 응답이 캐시 쓰기 합계만 내려보내고 5분·1시간 버킷별 분해 값은 채우지 않습니다. 그래서 이 도구가 "캐시 쓰기가 아직 없다"와 "이 제공자는 알려 주지 않는다"를 구별하지 못했고, 판정 불가일 때 1시간을 기본값으로 잡았습니다. Bedrock 은 5분…

🌐 Bedrock·Vertex 경유 환경

게이트웨이를 거치면 응답이 캐시 쓰기 합계만 내려보내고 5분·1시간 버킷별 분해 값은 채우지 않습니다. 그래서 이 도구가 "캐시 쓰기가 아직 없다"와 "이 제공자는 알려 주지 않는다"를 구별하지 못했고, 판정 불가일 때 1시간을 기본값으로 잡았습니다. Bedrock 은 5분 버킷만 제공하므로 남은 시간이 최대 12배로 부풀어 보였습니다.

v3.26.0부터 트랜스크립트의 모델 ID로 게이트웨이를 감지해 다음을 바로잡습니다.

감지가 틀리면 sprag mode ttl=5m(또는 ttl=1h)로 직접 지정할 수 있습니다. 지정값이 실측값보다 우선합니다.

LiteLLM: 5h/7d cap 대신 키 예산을 보여 줍니다 (v3.35.0)

LiteLLM 프록시로 Bedrock 등을 쓰면 Claude Code stdin 에 rate_limits 가 오지 않아 ✦ current·📅 weekly 게이지가 아예 없습니다. 대신 LiteLLM 은 키별 max_budgetspend 를 관리하므로, 그 값을 가져와 같은 지점에 예산 게이지를 그립니다.

세션 기본 모델이 sonnet 이면 sonnet 위임 규칙(T1)은 구조적으로 절감이 0입니다. 같은 급으로 내려보내 봐야 차액이 없기 때문이며 이는 정상 동작입니다. 다만 route-scan rules 가 이 경우를 "아직 위임 없음"과 같은 문구로 표시해 고장처럼 보였으므로, 이제 현재 기본 모델 기준으로 적용되지 않는다는 사실을 따로 적습니다.

FAQ

claude-token-saver와 같은 도구인가요? 네. Sprag가 새 이름이고 npm 패키지는 sprag-cli입니다. claude-token-saver 패키지도 같은 릴리스를 계속 받으므로 기존 설치는 그대로 동작합니다.

LLM을 호출하거나 API 키가 필요한가요? 아니요. Claude Code가 이미 내 컴퓨터에 남기는 세션 로그를 사후 분석할 뿐입니다. 추가 모델 호출도, 키도 없고, 데이터가 밖으로 나가지 않습니다.

프롬프트 습관을 바꿔야 하나요? 아니요. 설치 때 hook과 statusline을 한 번 등록하면, 지금 하던 방식 그대로 쓰는 동안 규칙과 위임, 경고가 세션 안에 나타납니다.

절감액 수치는 어디서 나오나요? 위임 실행마다 실제 가격 차이가 장부에 한 줄씩 기록됩니다. 라우팅 기준은 공개 데이터로 벤치마크했고, 방법은 docs/BENCHMARK.md에 있습니다.

동작 원리 · 환경

Claude Code는 모든 API 응답을 ~/.claude/projects/<dir>/<session>.jsonl에 기록합니다. 이 도구는 cache_read_input_tokens, cache_creation.ephemeral_5m/1h_input_tokens 등을 requestId 기준으로 중복 제거 후 집계합니다.

Node.js ≥ 18 · macOS / Linux / Windows / WSL · 의존성 0.

알려진 환경 이슈 · 마이그레이션

IntelliJ Claude Code plugin: statusline 위젯이 프레임을 잘못 합성해 59:548 같은 잔재가 보이는 버그가 있습니다(이모지 출력에서만). v2.8.5+는 TERMINAL_EMULATOR=JetBrains-JediTerm 감지 시 자동으로 text 모드 폴백합니다.

TTL 카운트다운이 멈춰 보일 때: 카운트다운이 입력 없이도 초 단위로 줄어들려면 Claude Code 가 statusline 명령을 주기적으로 다시 실행해야 하고, 그 주기는 ~/.claude/settings.jsonstatusLine.refreshInterval(초 단위, v2.1.97 이상)이 정합니다. 이 값이 없으면 대화가 갱신될 때만 다시 그려져서 멈춘 것처럼 보입니다. 터미널마다 동작이 다르면 세 가지를 확인하십시오. ① 그 머신의 Claude Code 버전이 2.1.97 이상인지, ② 프로젝트 .claude/settings.json 이나 settings.local.jsonstatusLine 을 refreshInterval 없이 덮어쓰고 있지 않은지, ③ statusline 래퍼가 PATH 에서 sprag 를 찾지 못해 매 렌더마다 npx 폴백으로 수 초씩 걸리고 있지 않은지 (비로그인 셸에서 nvm 이 로드되지 않는 터미널이 여기에 해당합니다). sprag install 을 다시 실행하면 refreshInterval 을 5초로 복구합니다.

claude-cache-monitor에서 마이그레이션:

npm uninstall -g claude-cache-monitor && npm i -g sprag-cli

~/.claude/settings.jsonstatusLine.commandsprag …로 교체하세요.

다른 문서