入門
-p フラグでワンショット実行を行う
claude -p を使った非対話モードの活用方法。パイプライン処理やCI/CDとの連携に役立つ
解決の目安約3分
最終確認
確認済みバージョン
Claude Code 2.1.220
Claude Code
必須: Claude Code
cliautomationpipeline
症状・対象
対話画面を開かず、差分レビューやログ分析の結果だけをシェルへ返したい人が対象です。-p / --print は一度の入力を処理して終了するため、スクリプトや CI の入出力を固定できます。
最短解決
- 標準入力へ解析対象を渡す。
--output-format textで人が読む結果に固定する。--max-turnsで実行上限を設け、終了コードと出力を確認する。
コピペ例
ステージ済み差分を読み取り専用でレビューします。
git diff --staged | claude -p \
--output-format text \
--max-turns 1 \
"この差分をレビューして。重大度、ファイルパス、理由を日本語で返して。ファイルは変更しないで。"
ログ分析では、標準エラーも入力へ含めます。
npm test 2>&1 | claude -p \
--output-format text \
--max-turns 1 \
"最初に失敗したテストの根本原因と、次に確認する箇所を返して。"
機械処理する場合は JSON を選べます。
claude -p "このプロジェクトの主要ディレクトリを説明して" \
--output-format json \
--max-turns 1
期待結果
- 対話プロンプトを開かず、結果が標準出力へ返る。
textはレビュー本文、jsonは実行情報を含む JSON になる。- 指定ターン数へ達した場合は、それ以上処理を継続しない。
検証
まず小さな入力で終了コードと出力の両方を確認します。
claude -p "OK のみ返して" --output-format text --max-turns 1
echo $?
OK が出力され、直後の終了コードが 0 なら基本動作は成功です。自動化へ組み込む前に、空入力・認証エラー・API 制限時も job が失敗として扱われることを確認します。
落とし穴
cat secret.env | claude -p ...のように秘密情報を標準入力へ流しません。- 「修正して」と依頼するとツール実行が必要になります。レビューだけなら「ファイルは変更しない」と明記します。
stream-jsonは行単位のイベント列です。単一 JSON として処理しないでください。- パイプの前段が失敗しても後段が成功すると見逃すシェルがあります。CI スクリプトでは
set -o pipefailを使います。
次の一手
- GitHub Actions で Claude Code を CI/CD に組み込む — Secret と権限を含む CI 設定へ進む
- パーミッションモードを使い分ける — 書き込みを伴う headless 実行の境界を決める
関連コンテンツ
コマンド
CLIコマンドパターン
Claude Codeの非対話的CLI使用パターン。パイプライン処理、CI/CD統合、設定管理を網羅。
ワークフロー
リリース
検証済みのコードを本番環境に届けるフェーズ。ブランチ戦略、コミット、PR作成、マージ、デプロイを安全かつ効率的に実行する手法を解説。
Tips
カスタムスラッシュコマンドを作成する
.claude/commands/ に Markdown ファイルを置いて、よく使うプロンプトをコマンド化する方法
Tips
GitHub Actions で Claude Code を CI/CD に組み込む
anthropics/claude-code-action を使って、PRレビュー、自動修正、テスト生成をCIパイプラインに組み込む方法