Skip to content

--safe-mode フラグ:すべてのカスタマイズを無効化してトラブルシューティング

原文(日本語に翻訳)

トラブルシューティング用に、すべてのカスタマイズ(CLAUDE.md、プラグイン、スキル、フック、MCPサーバー)を無効化してClaude Codeを起動する --safe-mode フラグ(および CLAUDE_CODE_SAFE_MODE 環境変数)を追加

原文(英語)

Added --safe-mode flag (and CLAUDE_CODE_SAFE_MODE) to start Claude Code with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled for troubleshooting

概要

--safe-mode フラグは、Claude Codeのすべてのカスタマイズを無効にした状態でセッションを起動するためのフラグです。CLAUDE.md、プラグイン、スキル、フック、MCPサーバーがすべて読み込まれない「クリーン」な状態で動作するため、問題の原因がカスタマイズにあるかどうかを切り分けるのに役立ちます。環境変数 CLAUDE_CODE_SAFE_MODE を使えば、CI/CDなどの自動化環境でも同様の効果を得られます。

基本的な使い方

CLIフラグとして使用

bash
claude --safe-mode

環境変数として使用

bash
CLAUDE_CODE_SAFE_MODE=1 claude

特定のコマンドに適用

bash
claude --safe-mode -p "このコードをレビューしてください"

実践例

カスタムフックが原因の問題を切り分ける

PreToolUseフックやPostToolUseフックが意図しない動作を引き起こしている場合、safe-modeで動作確認できます。

bash
# 通常モードで問題が発生する場合
claude

# safe-modeで試してフックが原因か確認
claude --safe-mode

safe-modeで問題が解消された場合、フックやCLAUDE.mdの設定を見直す必要があります。

MCPサーバーの接続問題をデバッグする

MCPサーバーの設定ミスや接続失敗でClaude Codeが起動しない場合:

bash
# MCPサーバーなしで起動してデバッグ
claude --safe-mode

# 問題を確認したら通常モードで設定修正後に再起動
claude

CI/CD環境でのクリーン実行

本番の自動化パイプラインで、プロジェクト固有の設定を除外したい場合:

bash
# CI環境変数として設定
export CLAUDE_CODE_SAFE_MODE=1
claude -p "テストを実行して結果をレポートしてください"

新しいプロジェクトでの初回セットアップ

既存のグローバル設定が干渉しないようにしたい場合:

bash
cd /new-project
claude --safe-mode
# > ここでプロジェクト固有の設定を構築する

注意点

  • --safe-mode を使用すると、CLAUDE.md、スキル、フック、MCPサーバーがすべて無効になります
  • セッション内でsafe-modeを解除することはできません。通常モードに戻るには新しいセッションを起動してください
  • CLAUDE_CODE_SAFE_MODE=1(または任意のtruthy値)を設定すると環境変数として機能します
  • safe-modeはトラブルシューティング専用であり、通常の作業には通常モードを使用してください
  • プラグイン自体は無効になりますが、インストール済みのプラグインは削除されません

関連情報