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.