settings.json

bashEditDiffEnabled

boolean記述場所ユーザー設定または管理者設定

Claude Code が Git リポジトリ内で Bash コマンドによって変更されたファイルを記録するかどうかを選択します。記録した場合、コマンド実行後にその差分がターミナルに表示され、PostToolUse Bash フックには変更ファイルの一覧が渡されます。

既定値: 未設定の場合、Claude が Bash 経由でファイル編集するよう指示したときに、auto モードと bypassPermissions モードで変更が記録されます。

記述例

{
  "bashEditDiffEnabled": true
}

使い方・用途

  • sed や mv などの Bash コマンドによるファイル変更の差分をターミナルに表示し、PostToolUse Bash フックに変更ファイル一覧を渡す設定 (v2.1.269 以降)
  • スコープは User またはマネージド設定のみ。リポジトリの .claude/settings.json や .claude/settings.local.json の true では記録を有効化できないが、false であればオフにできる
  • デフォルト (未設定) では、auto モードと bypassPermissions モードで、Claude が Bash 経由でファイル編集する場合にのみ記録
  • 同セッション限定の上書きとして環境変数 CLAUDE_CODE_BASH_EDIT_DIFF がこの設定より優先。バックグラウンドコマンドと読み取り専用コマンドには差分は記録されない
英語原文(公式ドキュメントより)

Choose whether Claude Code records the files a Bash command changes in a Git repository. When it records them, you see their diff in the terminal after the command, and your [PostToolUse Bash hooks](/docs/en/hooks#bash) receive the changed-file list.

関連ドキュメント

関連する変更履歴

v2.1.269(1件)

Added
Bash ツールがファイル編集を処理する際に、Bash コマンドによって変更されたファイルの差分を Bash ツールの結果に表示するようになりました(設定 bashEditDiffEnabled)。
英語原文を表示
Added a diff of the files a Bash command changed to the Bash tool result when the Bash tool handles file edits (setting bashEditDiffEnabled)

変更前

以前は、Bash ツールがファイル編集を処理しても、変更されたファイルの差分はツールの結果に表示されませんでした。

変更後

以前は、Bash ツールが sed や mv などのコマンドでファイルを変更しても、その結果には何が変わったかの情報が表示されず、差分を確認するには手動で git diff などを実行する必要がありました。今回の変更により、Bash ツールがファイル編集を処理した際に、変更されたファイルの差分がツール結果に自動的に表示されるようになりました。

ユーザーへの恩恵

Bash コマンドによるファイル変更を目視で確認できるようになり、変更内容をすぐに把握できるようになる。

関連ドキュメント