CLAUDE_CODE_FORK_SUBAGENT=1 が非インタラクティブセッションで動作
原文(日本語に翻訳)
SDK および claude -p: CLAUDE_CODE_FORK_SUBAGENT=1 が非インタラクティブセッションで動作するようになりました。
原文(英語)
SDK and claude -p: CLAUDE_CODE_FORK_SUBAGENT=1 now works in non-interactive sessions
概要
Claude Code v2.1.121 では、CLAUDE_CODE_FORK_SUBAGENT=1 環境変数が SDK および claude -p(パイプモード)の非インタラクティブセッションでも機能するようになりました。この変数を設定すると、Claude がサブエージェントを呼び出す際に新しいプロセスをフォークして並列実行できるようになります。CI/CD パイプラインやバッチ処理など、ユーザーの介入なしに Claude Code を実行する環境で、サブエージェントのフォーク機能を活用できます。
基本的な使い方
bash
# 非インタラクティブモードでサブエージェントフォークを有効化
export CLAUDE_CODE_FORK_SUBAGENT=1
# -p フラグでパイプモードで実行
echo "複数のファイルを並列で分析してください" | claude -p
# または SDK から呼び出す場合も同様に環境変数を設定実践例
CI/CD パイプラインでの並列処理
yaml
# .github/workflows/analyze.yml
name: Code Analysis
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Parallel code analysis
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CLAUDE_CODE_FORK_SUBAGENT: "1" # サブエージェント並列実行を有効化
run: |
echo "src/ ディレクトリ全体のコード品質を分析して報告してください" | claude -pバッチ処理スクリプト
bash
#!/bin/bash
# batch-review.sh
export CLAUDE_CODE_FORK_SUBAGENT=1
for repo in repo1 repo2 repo3; do
cd "/workspace/$repo"
echo "このリポジトリのセキュリティ問題を特定してください" | claude -p > "/reports/${repo}-security.md"
donePython SDK での活用
python
import os
import subprocess
os.environ["CLAUDE_CODE_FORK_SUBAGENT"] = "1"
# SDK 経由で非インタラクティブに Claude Code を呼び出す
result = subprocess.run(
["claude", "-p", "--output-format", "json"],
input="プロジェクトの依存関係を分析してセキュリティリスクを報告してください",
capture_output=True,
text=True
)注意点
CLAUDE_CODE_FORK_SUBAGENT=1はサブエージェントをフォークする動作を制御します- 非インタラクティブセッション(
-pフラグ、SDK 経由)での実行時に有効になります - フォークによって並列実行が可能になりますが、リソース消費(メモリ・API コスト)が増加します
- CI 環境では API レート制限に注意してください