Skip to content

原文(日本語に翻訳)

ステータスライン: stdin JSONに effort.levelthinking.enabled が含まれるようになった

原文(英語)

Status line: stdin JSON now includes effort.level and thinking.enabled

概要

Claude Codeのステータスライン機能でstdin経由で受け取るJSONデータに effort.level(作業量レベル)と thinking.enabled(拡張思考の有効状態)が追加された。外部ツールやスクリプトがClaudeの現在の設定状態をより正確に把握できるようになる。

基本的な使い方

ステータスラインスクリプトは stdin からJSONを受け取り、ステータス表示を生成する。新しいフィールドを含む入力例:

json
{
  "session_id": "abc123",
  "model": "claude-opus-4-7",
  "effort": {
    "level": "high"
  },
  "thinking": {
    "enabled": true
  },
  "tools": ["Read", "Write", "Bash"],
  "cost": {
    "total_usd": 0.05
  }
}

実践例

effort.levelを表示するステータスライン

python
#!/usr/bin/env python3
# .claude/statusline.py
import json
import sys

data = json.load(sys.stdin)

effort_level = data.get("effort", {}).get("level", "unknown")
thinking_enabled = data.get("thinking", {}).get("enabled", False)

# effort レベルの絵文字マッピング
effort_icons = {
    "low": "🔸",
    "medium": "🔶",
    "high": "🔴",
    "unknown": "⚪"
}

thinking_icon = "🧠" if thinking_enabled else "💭"

status = f"{effort_icons[effort_level]} {effort_level.upper()} | {thinking_icon}"
print(status)

tmuxのステータスバーに表示する

bash
#!/bin/bash
# tmux のステータスバー更新スクリプト
claude_status=$(claude --print --status-json 2>/dev/null | python3 -c "
import json, sys
data = json.load(sys.stdin)
effort = data.get('effort', {}).get('level', '?')
thinking = '🧠' if data.get('thinking', {}).get('enabled') else ''
print(f'{effort} {thinking}')
")

tmux set-option -g status-right "$claude_status"

effortレベルに応じた処理分岐

python
#!/usr/bin/env python3
import json
import sys

data = json.load(sys.stdin)

effort_level = data.get("effort", {}).get("level", "medium")
thinking_enabled = data.get("thinking", {}).get("enabled", False)

# 高effortかつthinkingが有効な場合に警告
if effort_level == "high" and thinking_enabled:
    print("⚠️  高コストモードで実行中", file=sys.stderr)
elif effort_level == "low":
    print("⚡ 低コストモードで実行中", file=sys.stderr)

effortレベルの値

意味
low低い作業量(高速・低コスト)
medium標準的な作業量
high高い作業量(詳細・高コスト)

注意点

  • effort.level はClaude Codeの --effort フラグまたは設定で指定した値を反映する
  • thinking.enabled は拡張思考(Extended Thinking)が有効かどうかを示す
  • これらのフィールドはステータスラインを設定している場合にのみ利用できる
  • ステータスラインの設定方法は statusline-setup スキルを参照

関連情報