Claude Resets

Claude Code ステータスライン生成ツール

作成 Claude Resets · 更新

Claude Code はプロンプトの下に独自の表示行を出せて、そこには5時間と週のリアルタイムの使用量が渡されます。下で表示したい項目にチェックを入れ、2つのコードをコピーしてください。使用量とリセットまでのカウントダウンが常に表示されるので、制限に不意を突かれることがなくなります。

ステータスラインに表示

ステータスラインのプレビュー(サンプルデータ)

[Opus 5.5] | 5h 62% ↻1h48m | 7d 34% ↻3d5h

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.sh

2. ~/.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つのコードで設定はすべて完了します。

  1. 011つ目のコードをターミナルに貼り付けます。~/.claude/statusline.sh が作られ、実行可能になります。
  2. 02statusLine ブロックを ~/.claude/settings.json に追加し(すでに設定があれば統合してください)、Claude Code を再起動します。
  3. 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 の項目からで、「設定 → 使用状況」で見られる数字と同じです。

メール通知

次の Claude リセットを メールでお知らせ。

Anthropic が Claude の制限をリセットするたびに、短いメールを 1 通だけ送ります。何がリセットされたか、対象プラン、出典リンクつき。

Claude のリセット時だけメールします。いつでも解除できます · プライバシー