claude agents --json の改善:ブロック中セッションの追加と --all フラグ
原文(日本語に翻訳)
claude agents --json がブロック中および直前にディスパッチされたバックグラウンドセッションを含むように修正。完了済みセッションを含める --all フラグを追加。また id と state フィールドを新規追加。
原文(英語)
Fixed claude agents --json omitting blocked and just-dispatched background sessions; added --all to include completed sessions, plus new id and state fields
概要
claude agents --json コマンドの出力が改善されました。これまでは、権限確認待ちでブロックされているセッションや直前にディスパッチされたセッションが出力から欠落することがありました。今回の修正でこれらのセッションも正しく含まれるようになります。また --all フラグで完了済みセッションも取得でき、新たに追加された id と state フィールドでスクリプトからセッションを識別・管理しやすくなりました。
基本的な使い方
アクティブなエージェント一覧をJSON形式で取得
bash
claude agents --json完了済みを含むすべてのエージェントを取得
bash
claude agents --all --json特定のエージェントをIDで操作
bash
# エージェント一覧からIDを取得
AGENT_ID=$(claude agents --json | jq -r '.[0].id')
# そのエージェントに送信
claude agents send $AGENT_ID "タスクを続けてください"実践例
jqでエージェントの状態をフィルタリング
新しい state フィールドを使って状態別にフィルタリング:
bash
# 実行中のエージェントのみ取得
claude agents --json | jq '[.[] | select(.state == "running")]'
# ブロック中(権限確認待ち)のエージェントを取得
claude agents --json | jq '[.[] | select(.state == "blocked")]'
# 完了済みのエージェントを取得(--all が必要)
claude agents --all --json | jq '[.[] | select(.state == "completed")]'エージェント監視スクリプト
バックグラウンドエージェントを定期監視するシェルスクリプト:
bash
#!/bin/bash
while true; do
# 全エージェントの状態を確認
AGENTS=$(claude agents --json)
BLOCKED=$(echo "$AGENTS" | jq '[.[] | select(.state == "blocked")] | length')
RUNNING=$(echo "$AGENTS" | jq '[.[] | select(.state == "running")] | length')
echo "実行中: $RUNNING, ブロック中: $BLOCKED"
# ブロック中のエージェントがあれば通知
if [ "$BLOCKED" -gt 0 ]; then
echo "警告: $BLOCKED 個のエージェントが権限確認待ちです"
claude agents --json | jq '[.[] | select(.state == "blocked") | {id, state}]'
fi
sleep 30
done完了ログの集計
bash
# 本日完了したエージェントの作業サマリーを取得
claude agents --all --json | \
jq '[.[] | select(.state == "completed") | {id, summary: .lastMessage}]'特定IDのエージェントへの応答
ブロック中のエージェントに権限を付与:
bash
# ブロック中のエージェントIDを取得
BLOCKED_ID=$(claude agents --json | jq -r '[.[] | select(.state == "blocked")][0].id')
# エージェントに応答
claude agents send $BLOCKED_ID "はい、実行してください"注意点
--jsonオプションは人間向けの表示ではなく、スクリプト処理向けの機械可読JSONを返しますstateフィールドの値:running(実行中)、blocked(権限確認待ち)、completed(完了)、dispatched(ディスパッチ直後)など--allフラグを使用しない場合、完了済みセッションは一覧に表示されませんidフィールドはセッション間でユニークであり、claude agents send <id>での識別に使用できます- 大量のエージェントを管理している場合、
--allの出力はセッション履歴を含むため大きくなる可能性があります