Claude Code ステータスライン生成ツール
作成 Claude Resets · 更新
Claude Code はプロンプトの下に独自の表示行を出せて、そこには5時間と週のリアルタイムの使用量が渡されます。下で表示したい項目にチェックを入れ、2つのコードをコピーしてください。使用量とリセットまでのカウントダウンが常に表示されるので、制限に不意を突かれることがなくなります。
ステータスラインに表示
ステータスラインのプレビュー(サンプルデータ)
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 から渡される 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 課金の場合は、ほかの項目だけが表示されます。項目が欠けていてもスクリプトはきちんと処理します。
ステータスラインを2ステップで導入
上の2つのコードで設定はすべて完了します。
- 011つ目のコードをターミナルに貼り付けます。~/.claude/statusline.sh が作られ、実行可能になります。
- 02statusLine ブロックを ~/.claude/settings.json に追加し(すでに設定があれば統合してください)、Claude Code を再起動します。
- 03スクリプトには jq が必要です。macOS なら brew install jq を実行し、Windows では WSL か Git Bash を使ってください。
refreshInterval を設定している理由
表示行は通常、セッションで何か起きたときにしか再描画されません。カウントダウンを表示するので、生成ツールは refreshInterval: 30 を追加し、読んでいる間も数字が動き続けるようにしています。
ステータスラインの変更と削除
生成ツールをもう一度使い、新しい1つ目のコードを貼り付ければ、古いスクリプトが上書きされます。削除したいときは settings.json から statusLine ブロックを消すか、Claude Code の中で /statusline delete を実行してください。スクリプトはローカルで動くので、トークンは一切消費しません。
リセット通知と組み合わせる
ステータスラインでわかるのは残りの量です。Anthropic が全員の制限をいつ前倒しで回復させるかまではわかりません。それを知りたいときは、リセット確率 と Claude リセット時間計算 をチェックしてください。
よくある質問
この表示はトークンを消費しますか?
+
いいえ。スクリプトはあなたのマシンで動き、Claude Code がすでに持っているデータを読むだけです。
代わりに /statusline を使ってもいいですか?
+
はい。/statusline は、説明をもとに Claude にスクリプトを書かせる機能です。この生成ツールなら、ターンを使わずにテスト済みのスクリプトが数秒で手に入ります。
表示される数字はどこから来ていますか?
+
Claude Code がスクリプトに渡す rate_limits の項目からで、「設定 → 使用状況」で見られる数字と同じです。