Claude Code の --bare フラグとは? スクリプト自動化の新標準
2026年3月20日のアップデートで、Claude Code に --bare フラグ が追加されましました。これは -p(プロンプト)モードでのスクリプト実行時に、不要な初期化処理をすべてスキップして 最小限のオーバーヘッドで Claude Code を起動する ための新しいオプションです。
CI/CDパイプラインやバッチ処理など、対話的な操作が不要な場面で Claude Code を使う際に、起動時間の短縮とセキュリティの強化を同時に実現できます。
従来の -p モードでもスクリプト実行は可能でしたが、hooks、LSP(Language Server Protocol)、プラグイン同期、スキルディレクトリの走査といった処理が毎回実行されていましました。--bare フラグを付けることで、これらをすべてスキップし、純粋なプロンプト処理だけを高速に行えるようになります。
--bare フラグの基本的な使い方
基本構文
--bare フラグは必ず -p(プロンプトモード)と組み合わせて使用します。
# 基本的な使い方
claude -p "このコードのバグを見つけてください" --bare
# API キーを明示的に指定する場合
ANTHROPIC_API_KEY=sk-ant-xxx claude -p "src/utils.ts のユニットテストを生成してください" --bare
# JSON 形式で出力を受け取る
claude -p "package.json の依存関係を分析してください" --bare --output-format json--bare フラグがスキップするもの
--bare を指定すると、以下の初期化処理がすべてスキップされます。
✗ Hooks(pre-tool-use / post-tool-use フック)
✗ LSP(Language Server Protocol)接続
✗ プラグイン同期
✗ スキルディレクトリの走査
✗ OAuth / キーチェーン認証
✗ 自動メモリ機能
これにより、起動時間が大幅に短縮され、外部依存のない純粋な実行環境が得られます。
認証方法の制約
--bare モードでは OAuth やキーチェーン認証が無効化されるため、認証方法が限定されます。
# 方法1: 環境変数で API キーを渡す(推奨)
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
claude -p "コードを分析してください" --bare
# 方法2: --settings で apiKeyHelper を指定する
claude -p "コードを分析してください" --bare \
--settings '{"apiKeyHelper": "op read op://vault/anthropic/api-key"}'実践例1: GitHub Actions での自動コードレビュー
--bare フラグの最も実用的な活用法の一つが、CI/CDパイプラインでの自動コードレビューです。
# .github/workflows/claude-review.yml
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Run Claude Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
# 変更されたファイルの差分を取得
DIFF=$(git diff origin/main...HEAD)
# --bare フラグで高速レビュー実行
claude -p "以下のコード差分をレビューしてください。
バグ、セキュリティ問題、パフォーマンス改善点を指摘してください。
$DIFF" \
--bare \
--output-format json \
--max-turns 3 \
--max-budget-usd 0.50この設定のポイントは以下の通りです。
--bareで不要な初期化をスキップし、CI環境での実行を高速化--max-turns 3で推論ループの回数を制限--max-budget-usd 0.50でコスト上限を設定--output-format jsonで後続の処理がパースしやすい形式で出力
実践例2: バッチテスト生成スクリプト
複数ファイルに対して一括でユニットテストを生成するスクリプトの例です。
#!/bin/bash
# generate-tests.sh — カバレッジ不足のファイルにテストを自動生成
set -euo pipefail
# テストが存在しないソースファイルを検出
find src/ -name "*.ts" -not -name "*.test.ts" -not -name "*.d.ts" | while read -r file; do
test_file="${file%.ts}.test.ts"
if [ ! -f "$test_file" ]; then
echo "📝 テスト生成: $file"
# --bare で高速実行、--max-turns で安全制限
claude -p "以下のファイルのユニットテストを生成してください。
Jest を使用し、主要な関数をカバーしてください。
テストファイルの内容のみを出力してください。
ファイル: $file
$(cat "$file")" \
--bare \
--max-turns 5 \
--output-format text > "$test_file"
echo "✅ 生成完了: $test_file"
fi
done
echo "🎉 バッチテスト生成が完了しました"実践例3: --channels パーミッションリレーとの組み合わせ
同じ3月20日のアップデートで追加された --channels パーミッションリレーを --bare と組み合わせることで、自動化しつつも重要な操作には人間の承認を求めるワークフローを構築できます。
# --channels でツール承認プロンプトをスマートフォンに転送
claude -p "本番データベースのマイグレーションを実行してください" \
--bare \
--channels permission-relay \
--max-turns 10
# 期待される動作:
# 1. --bare で高速起動
# 2. ファイル変更やコマンド実行時に承認リクエストが
# Telegram/Discord に送信される
# 3. スマートフォンで承認/拒否を選択
# 4. 承認後に処理が続行これにより、自動化の効率性 と 人間による監視 を両立させた安全なワークフローを実現できます。
--bare フラグを使う際の安全対策
スクリプト自動化では、予期しない動作を防ぐための安全対策が重要です。
# 推奨: 3つの安全フラグを常にセットで使用
claude -p "$PROMPT" \
--bare \
--max-turns 5 \ # 推論ループの上限
--max-budget-usd 1.00 # コスト上限(USD)
# さらに厳密な制御が必要な場合
claude -p "$PROMPT" \
--bare \
--max-turns 3 \
--max-budget-usd 0.50 \
--output-format json \
--allowedTools "Read,Grep,Glob" # 使用可能なツールを制限安全対策チェックリスト
本番環境で --bare フラグを使用する場合は、以下を確認してください。
--max-turnsを必ず設定 — 無限ループを防止--max-budget-usdを必ず設定 — 想定外のコスト発生を防止- API キーの権限を最小限に — 専用のAPIキーを発行し、必要最小限の権限を付与
- 出力を検証 — Claude の出力をそのまま実行せず、必ずバリデーションを挟む
- ブランチ保護 — 変更はプルリクエスト経由で main にマージ
通常の -p モードとの使い分け
--bare フラグは万能ではありません。用途に応じて使い分けることが大切です。
| シナリオ | 推奨モード | 理由 |
|---|---|---|
| CI/CD パイプライン | -p --bare | 高速起動、外部依存なし |
| バッチスクリプト | -p --bare | 繰り返し実行で起動時間短縮 |
| cron ジョブ | -p --bare | 最小限の環境で安定動作 |
| ローカル開発 | -p(bareなし) | Hooks やプラグインが有用 |
| MCP サーバー連携 | -p(bareなし) | LSP・プラグインが必要 |
| 対話的コーディング | 通常モード | フルUIが必要 |
全体を振り返って — --bare フラグで Claude Code の自動化を加速させよう
Claude Code の --bare フラグは、スクリプト自動化やCI/CDパイプラインでの利用を劇的に改善する重要なアップデートです。不要な初期化処理をスキップすることで高速起動を実現しながら、--max-turns や --max-budget-usd といった安全フラグと組み合わせることで、本番環境でも安心して活用できます。
まずは簡単なバッチスクリプトから --bare フラグを試してみて、慣れてきたら GitHub Actions などのCI/CDパイプラインに組み込んでみてください。自動コードレビュー、テスト生成、定期的なコード品質チェックなど、活用の幅は広がる一方です。
Claude Code のヘッドレス自動化について、さらに詳しく知りたい方は「Claude Code バッチコマンド実践ガイド」や「Claude Code CI/CD インテグレーション」も参考にしてみてください。