Skip to content

claude agents --json に waitingFor フィールド追加:待機中セッションのブロック要因を確認

原文(日本語に翻訳)

claude agents --json コマンドに waitingFor フィールドが追加され、待機中セッションが何にブロックされているか(例: パーミッションプロンプト)を表示するようになりました。

原文(英語)

claude agents --json now includes waitingFor showing what a waiting session is blocked on (e.g. permission prompt)

概要

バックグラウンドで実行中のセッションが待機状態になっている場合、その原因を --json オプションで確認できるようになりました。waitingFor フィールドが新たに追加され、パーミッションプロンプト待ちや他の待機状態を JSON 形式で取得できます。自動化スクリプトやモニタリングツールと組み合わせることで、セッションの状態監視が効率化されます。

基本的な使い方

bash
# JSON形式でエージェント一覧を取得
claude agents --json

# 出力例
[
  {
    "id": "session-abc123",
    "status": "waiting",
    "waitingFor": "permission prompt",
    "name": "リファクタリングタスク"
  },
  {
    "id": "session-def456",
    "status": "running",
    "waitingFor": null,
    "name": "テスト実行"
  }
]

実践例

パーミッションプロンプト待ちセッションを特定する

bash
# waitingForがnullでないセッションを抽出
claude agents --json | jq '[.[] | select(.waitingFor != null)]'

待機中セッションに自動で応答する

bash
#!/bin/bash
# 待機中セッションを確認して通知する
WAITING=$(claude agents --json | jq -r '.[] | select(.waitingFor != null) | "\(.name): \(.waitingFor)"')
if [ -n "$WAITING" ]; then
  echo "待機中のセッションがあります:"
  echo "$WAITING"
fi

モニタリングスクリプトでの活用

bash
#!/bin/bash
# セッション状態を継続的に監視
while true; do
  STATUS=$(claude agents --json | jq -r '.[] | "\(.id) \(.status) \(.waitingFor // "なし")"')
  echo "=== セッション状態 ==="
  echo "$STATUS"
  sleep 10
done

注意点

  • waitingFor フィールドはセッションが待機状態でない場合は null になります
  • パーミッションプロンプトが待機原因の場合、claude agents attach <id> でセッションにアタッチして対応できます
  • JSON 出力は jq などのツールと組み合わせると効果的です
  • バックグラウンドサービスが起動していない場合、このコマンドは正常に動作しない場合があります

関連情報