Group of 4 Nothing to try yet Notable
A new bashEditDiffEnabled setting lets the Bash tool surface a diff of files a shell command changed, passed to PostToolUse hooks too
What
- A new
bashEditDiffEnabledsettings.json key (andCLAUDE_CODE_BASH_EDIT_DIFFenvironment variable override) controls whether the Bash tool computes and shows a diff of files changed by a shell command. - Under the hood, this is backed by git-based snapshots taken before and after a Bash command (via a sandboxed git wrapper), with filesystem watchers (inotify on Linux, fs.watch elsewhere) to catch changes made outside the tracked diff.
- The result appears as
bashEditDiffon the Bash tool's result, andPostToolUsehooks for Bash now receive the list of changed files intool_responsetoo. - It's skipped for destructive git operations run via Bash (checkout, switch, stash, pull, merge, rebase, reset, restore, clean, cherry-pick, revert), and reports status through telemetry (
bash_edit_diff, and unavailable/interrupted variants). - Outside auto or bypassPermissions modes, only a user, flag, or policy setting can turn this on; the docs describe it as on by default when the Bash tool handles file edits.
Why This lets Claude Code (and hooks watching its actions) see exactly what a shell command changed on disk, without having to separately diff the repo, making Bash tool calls more transparent and auditable.
Names in the bundleCLAUDE_CODE_BASH_EDIT_DIFF
Documented inclaude-code/env-vars
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed since
Anthropic's documentation has since written up CLAUDE_CODE_BASH_EDIT_DIFF, on All settings.
* **Per-session overrides**: [`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/en/env-vars) takes precedence over this key for one sessionsettings-reference see the edit
Added since
A small documentation edit on Environment variables touched a line naming CLAUDE_CODE_BASH_EDIT_DIFF after this was published.
| `CLAUDE_CODE_BASH_EDIT_DIFF` | Set to `0` to turn off the [diff of the files a Bash command changed](/docs/en/hooks#bash), or `1` to record it in every permission mode. Takes precedence over the [`bashEditDiffEnabled`](/docs/en/settings-…env-vars see the edit
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
The finding doesn't say what this diff information is used for once computed, or what the default behavior is.
Anthropic's documentation agrees
A small documentation edit on Environment variables touched a line naming CLAUDE_CODE_BASH_EDIT_DIFF after this was published.
Anthropic's release notes agree
Improved the /diff panel to open fully rendered in one step instead of showing a loading state first
The name it cites is new in this build
New in this build: CLAUDE_CODE_BASH_EDIT_DIFF