Claude Code: CI やスクリプトの claude -p には --bare を付ける(信頼していないリポジトリの hook・MCP を動かさない)
--bare なしの claude -p は、初めて開くフォルダでも、そのリポジトリの .claude/settings.json の hook を実行し、.mcp.json の MCP サーバーにつなぐ。信頼確認のダイアログもサーバーごとの承認も出ない。他人のリポジトリや PR を CI で読ませるときは --bare で自動読み込みを止め、必要なものだけフラグで渡す。
どんな場面で使う?
- CI で外部からの PR のブランチに対して
claude -pでレビューや要約をさせる - 手元のスクリプトで、クローンしたばかりのリポジトリに
claude -pを走らせる - マシンによって結果が変わる(誰かの
~/.claudeの hook が効いている)のを避けたい
手順
bash
export ANTHROPIC_API_KEY=... # bare モードは購読ログイン(OAuth)やキーチェーンを読まない
claude --bare -p "README.md を要約して" --allowedTools "Read"- 必要なものは明示して渡す: システムプロンプトの追加は
--append-system-prompt/--append-system-prompt-file、MCP は--mcp-config(コマンドラインで渡したサーバーだけつながる)、設定は--settings - 使えるツールは Bash・ファイルの読み取り・編集のみ
--bare で読み込まれなくなるもの
hook、スキル、カスタムコマンド、サブエージェント、インストール済みプラグイン、MCP サーバー、自動メモリ、CLAUDE.md。実行中も、システムリマインダー(ファイルが変わった通知など)は送られず、バックグラウンドのコマンドやサブエージェントも使えない(タイムアウトしたコマンドは裏に回らず止まる)。
注意点
--add-dirで渡したフォルダの.claude/skills/だけは読み込まれる(commands・agents は読まれない)- Bedrock/Google Cloud/Foundry はそれぞれの認証情報を通常どおり読む
- 公式ドキュメントでは、
--bareはスクリプト・SDK 呼び出しの推奨モードで、将来-pの既定になる予定とされている - v2.1.286 より前は制限が一部しか効いていなかった。古い版のまま CI で使っていないか確認する
- 対話セッションでカスタマイズを一時的に全部外して原因を探るなら、別物の
--safe-modeを使う(認証やモデル選択は通常どおり) - 関連: 料金: claude -p・Agent SDK はサブスク枠ではなく「プログラム利用クレジット」で動く / セキュリティ: clone したリポジトリの .claude/settings.json と .vscode/tasks.json を開く前に確認する / ガイド: Claude Code の機能・設定
出典
- @oswrav 2026-10-22(Claude Code 小技 No.8): @oswrav · 2026-10-22
- 公式ドキュメント: code.claude.com (Start faster with bare mode)/ code.claude.com