
JanEickholt/dsh-inline-diff
dsh-inline-diff
Renders edit and write tool calls as always-expanded side-by-side diffs, with optional syntax coloring and word-level highlighting.
Install
npx @deepseek-ai/dsh plugin --profile web add github:JanEickholt/dsh-inline-diffRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-inline-diff)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from JanEickholt/dsh-inline-diff, cleaned of badges and images.
dsh-inline-diff
English | 简体中文
See every file your agent edits, right in the chat. No clicking required.
By default the DeepSeek Harness web GUI collapses each file edit into a tiny one-line row. This plugin replaces those rows with an always-open, side-by-side diff: old code on the left, new code on the right, additions in green, deletions in red, a colored edge bar on every changed row, a hover highlight that tracks the row under your cursor, and a +N −N summary for every file.
| Without | collapsed rows, one click per file to see what changed |
| With | the full diff right there, in the conversation |
What it looks like
A typical edit: changed lines paired side by side, with the exact words that changed highlighted:
Words or whole lines
By default a changed line gets double highlighting: the row is tinted green/red, and on top of that the exact words that changed get a stronger highlight. Prefer it calmer? Open Settings → Plugins → Inline diff and pick Lines only. You keep the row tint but lose the word chips. The choice is saved in your DSH settings and survives restarts.
Indentation
Edits often arrive indented with their surrounding code, which pushes the actual change toward the middle of the card. By default the diff strips the leading whitespace every non-empty line shares, so changes sit closer to the gutter; a small ⇤ N badge on the file header shows how many characters were removed. Prefer seeing the code as written? Pick Keep under Settings → Plugins → Inline diff and the original indentation stays. Like the highlighting choice, this is saved and survives restarts.
Syntax highlighting
Code rows are colored by a bundled highlight.js (the same language set the Solution Explorer sidebar uses), so edits read like an editor: keywords in your accent color, strings green, comments muted, and so on. The tokens read the same --shiki-token-* variables your GUI's code blocks render with, and the language is detected from the file's extension; unknown extensions stay plain. Prefer plain text? Pick Off under Settings → Plugins → Inline diff → Syntax highlighting. Like the other choices, this is saved and survives restarts.
dsh-stylevault compatible: its Colors panel overrides exactly those --shiki-token-* variables, so restyling your theme there restyles the diff cards too.
Themes
Every color on the card, from surfaces and text to borders and the green/red diff tints, is derived from your GUI's theme tokens (Settings → Appearance). The card follows light mode, dark mode, and any custom accent colors instead of a fixed palette. The syntax token colors ride the same system (the GUI's shiki code palette); before any theme variables exist they simply render as the card's plain text color.
The same compact edit under a custom theme — dsh-stylevault overrides exactly those token variables, so a restyle there restyles every diff card:
Language
The settings card comes with English and Simplified Chinese text. It follows the GUI language picked under Settings → General → Language; when nothing is stored it follows your browser. A missing translation falls back to English.
Install
With the dsh CLI (easiest):
dsh plugin --profile web add github:JanEickholt/dsh-inline-diff
From GitHub (manual, same result):
…

