Claude Code 상태 표시줄 생성기
작성 Claude Resets · 업데이트
Claude Code는 프롬프트 아래에 커스텀 상태줄을 띄울 수 있고, 여기에 5시간·주간 사용량이 실시간으로 들어와요. 아래에서 원하는 항목을 체크하고 스니펫 두 개를 복사하세요. 그러면 화면에 사용량과 리셋 카운트다운이 항상 떠 있어서 한도에 갑자기 막힐 일이 없어요.
상태줄에 띄울 항목
상태줄 미리보기 (예시 데이터)
1. 터미널에 붙여 넣고 상태줄 설치하기
~/.claude/statusline.sh 파일을 만들고 실행 권한까지 줘요.
mkdir -p ~/.claude && cat > ~/.claude/statusline.sh <<'CLAUDE_RESETS_EOF'
#!/bin/bash
# Claude Code status line: generated at https://claude-resets.net/claude-code-statusline
# Needs jq. Rate limit fields only exist for claude.ai Pro/Max, after the first reply.
input=$(cat)
now=$(date +%s)
get() { echo "$input" | jq -r "$1 // empty"; }
left() {
local s=$(( ${1%.*} - now )); [ "$s" -lt 0 ] && s=0
if [ "$s" -ge 86400 ]; then printf '%dd%dh' $((s/86400)) $((s%86400/3600))
else printf '%dh%02dm' $((s/3600)) $((s%3600/60)); fi
}
paint() {
local p=${1%.*}
if [ "$p" -ge 80 ]; then printf '\033[31m%s\033[0m' "$2"
elif [ "$p" -ge 50 ]; then printf '\033[33m%s\033[0m' "$2"
else printf '\033[32m%s\033[0m' "$2"; fi
}
parts=()
m=$(get .model.display_name); [ -n "$m" ] && parts+=("[$m]")
p=$(get .rate_limits.five_hour.used_percentage); r=$(get .rate_limits.five_hour.resets_at)
if [ -n "$p" ]; then
seg="5h $(printf "%.0f" "$p")%"
[ -n "$r" ] && seg="$seg ↻$(left "$r")"
parts+=("$(paint "$p" "$seg")")
fi
p=$(get .rate_limits.seven_day.used_percentage); r=$(get .rate_limits.seven_day.resets_at)
if [ -n "$p" ]; then
seg="7d $(printf "%.0f" "$p")%"
[ -n "$r" ] && seg="$seg ↻$(left "$r")"
parts+=("$(paint "$p" "$seg")")
fi
out=""; for x in "${parts[@]}"; do out="${out:+$out | }$x"; done
printf '%s\n' "$out"
CLAUDE_RESETS_EOF
chmod +x ~/.claude/statusline.sh2. ~/.claude/settings.json에서 상태줄 켜기
statusLine 블록을 기존 파일에 합친 다음 Claude Code를 다시 시작하세요.
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"refreshInterval": 30
}
}상태줄 스크립트 보기
#!/bin/bash
# Claude Code status line: generated at https://claude-resets.net/claude-code-statusline
# Needs jq. Rate limit fields only exist for claude.ai Pro/Max, after the first reply.
input=$(cat)
now=$(date +%s)
get() { echo "$input" | jq -r "$1 // empty"; }
left() {
local s=$(( ${1%.*} - now )); [ "$s" -lt 0 ] && s=0
if [ "$s" -ge 86400 ]; then printf '%dd%dh' $((s/86400)) $((s%86400/3600))
else printf '%dh%02dm' $((s/3600)) $((s%3600/60)); fi
}
paint() {
local p=${1%.*}
if [ "$p" -ge 80 ]; then printf '\033[31m%s\033[0m' "$2"
elif [ "$p" -ge 50 ]; then printf '\033[33m%s\033[0m' "$2"
else printf '\033[32m%s\033[0m' "$2"; fi
}
parts=()
m=$(get .model.display_name); [ -n "$m" ] && parts+=("[$m]")
p=$(get .rate_limits.five_hour.used_percentage); r=$(get .rate_limits.five_hour.resets_at)
if [ -n "$p" ]; then
seg="5h $(printf "%.0f" "$p")%"
[ -n "$r" ] && seg="$seg ↻$(left "$r")"
parts+=("$(paint "$p" "$seg")")
fi
p=$(get .rate_limits.seven_day.used_percentage); r=$(get .rate_limits.seven_day.resets_at)
if [ -n "$p" ]; then
seg="7d $(printf "%.0f" "$p")%"
[ -n "$r" ] && seg="$seg ↻$(left "$r")"
parts+=("$(paint "$p" "$seg")")
fi
out=""; for x in "${parts[@]}"; do out="${out:+$out | }$x"; done
printf '%s\n' "$out"
bash와 jq가 필요해요 (macOS: brew install jq). 5시간·주간 숫자는 claude.ai Pro와 Max에서만, 그것도 세션에서 첫 답변이 온 뒤에 떠요.
이 Claude Code 상태 표시줄에 뜨는 것
생성된 상태줄은 Claude Code가 스크립트로 넘겨주는 JSON을 읽어요. claude.ai Pro와 Max 구독자라면 여기에 rate_limits.five_hour와 rate_limits.seven_day가 들어 있고, 각각 used_percentage와 resets_at이 있어요. 스크립트는 이 값을 “5h 62% ↻1h48m”, “7d 34% ↻3d5h”로 바꾸고, 구간마다 초록, 노랑, 빨강으로 색을 입혀요.
상태줄 일부가 비어 있어요
한도 필드는 Pro와 Max에서만, 그리고 세션의 첫 답변 뒤에야 들어와요. API 과금이라면 화면에는 나머지 항목만 떠요. 필드가 없어도 스크립트가 알아서 처리해요.
상태 표시줄 설치, 두 단계면 끝
위의 스니펫 두 개로 다 돼요.
- 01첫 번째 스니펫을 터미널에 붙여 넣어요. ~/.claude/statusline.sh를 만들고 실행 권한까지 줘요.
- 02~/.claude/settings.json에 statusLine 블록을 추가하고(이미 설정이 있으면 합쳐 주세요) Claude Code를 다시 시작해요.
- 03이 스크립트는 jq가 필요해요. macOS에서는 brew install jq를 실행하고, Windows에서는 WSL이나 Git Bash를 쓰세요.
상태 표시줄에 refreshInterval을 넣은 이유
상태줄은 원래 세션에서 뭔가 일이 생길 때만 다시 그려져요. 카운트다운이 떠 있으니까 생성기가 refreshInterval: 30을 넣어서, 화면을 보고 있는 동안에도 숫자가 계속 움직이게 해 둬요.
상태 표시줄 바꾸기와 지우기
바꾸고 싶으면 생성기를 다시 돌리고 새 첫 번째 스니펫을 붙여 넣으세요. 기존 스크립트를 덮어써요. 지우고 싶으면 settings.json에서 statusLine 블록을 삭제하거나, Claude Code 안에서 /statusline delete를 실행하세요. 이 도구는 내 컴퓨터에서 돌아가고 토큰을 전혀 쓰지 않아요.
리셋 알림과 같이 쓰세요
상태줄은 얼마나 남았는지 알려 줘요. 하지만 Anthropic이 언제 모두의 한도를 일찍 채워 줄지는 알려 주지 못해요. 그건 저희 리셋 확률과 Claude 리셋 시간 계산기로 확인하세요.
자주 묻는 질문
이거 돌리면 토큰이 드나요?
+
아니요. 스크립트는 내 컴퓨터에서 돌아가고, Claude Code가 이미 가진 데이터만 읽어요.
그냥 /statusline을 써도 되나요?
+
네. /statusline은 설명을 듣고 Claude가 스크립트를 써 주는 기능이에요. 이 생성기는 턴 하나 쓰지 않고도 검증된 스크립트를 몇 초 만에 줘요.
상태줄 숫자는 어디서 오나요?
+
Claude Code가 스크립트로 넘겨주는 rate_limits 필드에서 와요. 「설정 → 사용량」에서 보는 숫자와 같아요.