A Claude Code mod that
draws the diff of every Edit and Write in two side-by-side columns
instead of one stacked -/+ list. The files a Bash command updates (sed -i,
a formatter, >>) get the same drawing:
- removed lines on the left, added lines on the right
- each side keeps its real line numbers
- a changed line sits next to the line that replaced it, with the words that changed tinted; a pair too long for one row wraps instead (see Limitations)
- long runs between hunks collapse to
⋯ N unchanged lines - colors are Claude Code's own diff colors (
diffRemoved/diffAddedtheme keys), so they follow your/theme - syntax highlighting comes from Claude Code's own highlighter (the
Codeelement), with the language taken from the file's extension
Errors, edits held for review, brand-new files and anything without a diff
keep Claude Code's normal drawing. For Bash, the command's output keeps the
normal drawing too, and each updated file adds an Updated path (+n -n) row
with its split diff under it; created and deleted files stay as Claude Code
draws them.
Reviews all the uncommitted changes in one pane, with every diff in two
columns. It opens a pane titled Split Diff with the changes of the working
directory against HEAD, untracked files included:
- a list of the changed files comes first, each row ending with its
+n -ncounts; click a file, or pressEnteron it, to jump to its diff - under the list, every file is open: its name sits between two lines, with the counts at the end of the row, and its diff follows in two columns
- click a file's name, or press
Enteron it, to fold or unfold that file rreloads the changesEsccloses the pane
Binary files are listed with binary and no diff. The pane reads the diff of
the first 100 files and draws a limited number of rows (at most 500 per file
and about 1200 in all); when a diff is cut it says … N more rows, and
folding other files makes room for it.
- Claude Code v2.1.287 or later (the version that introduced mods;
they are on by default). Check with
claude --version. - Mods must be allowed to load: not started with
--safe-modeor--bare, and not blocked by your organization's managed settings.
The plugin is listed in the neteye-platform marketplace, which lives in
neteye-platform/ai-agents-tools.
From a terminal:
claude plugin marketplace add neteye-platform/ai-agents-tools
claude plugin install cc-split-diff-view@neteye-platformOr from inside a Claude Code session:
/plugin marketplace add neteye-platform/ai-agents-tools
/plugin install cc-split-diff-view@neteye-platform
No download or build step is needed: Claude Code fetches the repository and
loads the TypeScript directly. Start a new session (or run /reload-plugins),
then ask Claude to edit a file.
To check it loaded, run /plugin and look for cc-split-diff-view under
Installed.
Claude Code caches an installed plugin by version, so updates arrive when the
version in .claude-plugin/plugin.json is bumped:
claude plugin marketplace update neteye-platformclaude plugin uninstall cc-split-diff-view@neteye-platformYou can also turn it off without removing it from the Installed tab of
/plugin.
git clone https://github.com/neteye-platform/cc-split-diff-view.git
claude --plugin-dir ./cc-split-diff-viewThe mod hot-reloads when you save a file in that directory.
- Only
Edit,Writeand the file updates ofBashare redrawn. The permission prompt is not a render site, so a mod cannot change it. - The
Bashdiff readsbashEditDiff, an internal field of the Bash result (Claude Code's diff of the working tree before and after the command). It can change in any release. When Claude Code could not tell what changed, the default drawing stays. - A changed line next to its replacement keeps the word tint only when both lines fit on one row of their column. A longer pair wraps over several rows, in the plain red and green of a removed and an added line. The mod estimates the width from the size Claude Code reports for the screen (or the pane); when that size is unknown, every changed pair wraps.
- Each line is highlighted on its own, so something that spans lines (a block comment or a template string) can be colored as plain code when only part of it is in the diff.
- Hooks stay active in the VS Code extension,
claude -pand cloud sessions, but the interface part only draws in the terminal and the Desktop app's Code tab. - Mod events and render-site props can change between Claude Code releases.
If the diff suddenly looks like the default again, run
claude plugin validate .and check the debug log.
Developed by Oscar Zambotti (@oskarnrk) in the NetEye Platform development team, with Claude Code.
Listed on Awesome Claude Code Mods.

