ストリーミング JSON 出力したい
11. CI/CD・自動化コマンド / 機能
--output-format stream-jsonリアルタイム出力
概要
ストリーミング JSON は、応答を生成しながらリアルタイムで JSON オブジェクトを出力します。長い応答の逐次処理や、プログレス表示に適しています。
設定例
# ストリーミング JSON で出力
claude -p --output-format stream-json "長いドキュメントを生成して"
# 出力例(各行が独立した JSON オブジェクト)
# {"type":"assistant","message":{"content":[{"type":"text","text":"最初の"}]}}
# {"type":"assistant","message":{"content":[{"type":"text","text":"テキスト"}]}}
# {"type":"result","subtype":"success","result":"完全な応答...","cost_usd":0.01}
# リアルタイムでテキストを抽出
claude -p --output-format stream-json "説明して" | while read line; do
echo "$line" | jq -r 'select(.type=="assistant") | .message.content[0].text // empty' 2>/dev/null
doneこんな時に使う
- リアルタイムで結果を処理したい時
- 長い応答を逐次処理したい時
使い方
- 1--output-format stream-json を追加
- 2各行が独立した JSON オブジェクト(NDJSON形式)
- 3type フィールドでイベント種別を判別
- 4最後に result タイプでサマリーが出力される
Tips
- NDJSON(Newline Delimited JSON)形式
- while read で1行ずつ処理可能
- assistant タイプが応答テキスト、result タイプが最終結果
- プログレスバーや逐次表示の実装に使える