#!/bin/bash # statusline: 文脈の実トークン数を表示し、hook が読むファイルにも書き出す # hook(context-bye-reminder.sh ほか)は /tmp/claude-context-tokens- を読んでしきい値を判定する。 # 自分の statusline があるなら、context_tokens を求めてファイルに書く部分だけを足せばよい。jq を使う。 input=$(cat) session_id=$(echo "$input" | jq -r '.session_id // empty') context_tokens=$(echo "$input" | jq -r '.context_window.current_usage | if . then (.input_tokens // 0) + (.cache_creation_input_tokens // 0) + (.cache_read_input_tokens // 0) else empty end' 2>/dev/null) [ -z "$context_tokens" ] && exit 0 [ -n "$session_id" ] && echo "$context_tokens" >"/tmp/claude-context-tokens-${session_id}" reset_at=${CLAUDE_CHECKPOINT_TOKENS:-200000} if [ "$context_tokens" -ge "$reset_at" ]; then printf '\033[33m%dk/%dk → /clear\033[0m' "$((context_tokens / 1000))" "$((reset_at / 1000))" else printf '%dk/%dk' "$((context_tokens / 1000))" "$((reset_at / 1000))" fi