Evidence snapshot reviewed Sep 16, 2026GitHub checked Aug 21, 2026
Evidence-verifiedPlugin BundleInterface & ExperienceWeb Profile

dsh-inline-diff

Show agent edit and write calls as always-open side-by-side diffs in the DSH web chat.

At a glance

What it does

Show agent edit and write calls as always-open side-by-side diffs in the DSH web chat.

Use cases
Interface & ExperienceUICode ReviewVisualization
Works with
Deepseek HarnessDsh Stylevault
Compatibility

Web Profile
Not declared in supplied evidence

Trust & status

Evidence-verified
Checked Sep 11, 2026, 2:01 PM UTC

Code-evidenced contributions

What it adds to DSH

Web UIAlways-expanded inline diff cards

Replaces collapsed edit and write rows with side-by-side diffs, changed-word highlighting, per-file line summaries, and configurable display settings.

Mechanism evidence

Before you choose it

This web-profile DSH plugin turns collapsed file-edit rows into inline Git-style diff cards. It shows old and new code side by side, additions and deletions, changed-word emphasis, file change counts, optional syntax coloring, line numbers, and indentation controls. Its settings follow the GUI language and theme tokens.

Best for

DeepSeek Harness web GUI users who want to inspect agent file changes directly in the conversation.

Common tasks

  • Review each file change without opening collapsed edit rows.
  • Reduce visual noise by switching from word-level to line-only highlighting.
  • Toggle line numbers, indentation trimming, or syntax highlighting for diff cards.

Permissions and data

The supplied evidence describes a browser-based diff renderer; it does not document a permission model.

Permissions
  • Renders edit and write tool-call content in the DSH web GUI.
Data handling
  • Uses the edit and write content already shown in the conversation to render diffs.
  • Settings choices are described as being saved in DSH settings and surviving restarts.

Limitations

  • No Harness version range is declared in the supplied evidence.
  • A diff hunk that cannot be reliably located can use window-relative line numbering, which may not match the file’s true line number.
  • Unknown file extensions render without syntax coloring.

What DSHub checked

  • Pinned Git source, package manifest, and bundle patch structure were verified.
  • The package declares a web client platform and the README documents its inline-diff behavior.
  • Registry identity for version 1.6.1 was verified, but package contents were not audited.

What DSHub did not check

  • Installation and runtime behavior were not executed from the supplied evidence.
  • Actual compatibility with a particular Harness release was not verified.

Pinned install

Install dsh-inline-diff

This plugin bundle does not have a DSH Plugin install action. Use its source documentation for the delivery method.

Visit the source project

Maintainer source

Project README

View at commit 281abd7
Maintainer-authored contentCaptured from README.md on Sep 11, 2026. The text and repository-relative media are fixed to commit 281abd71f9af with content hash 629d2ce69882; provider-hosted badges may update independently. README commands are upstream documentation; the DSHub copy action above is the verified, version-pinned install.

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. Pairs are matched by similarity, so an insertion placed above an edited line (a comment, a blank line) does not steal the changed line's counterpart — unmatched lines simply render as plain additions or removals:

A diff card of an edit, with changed words 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.

Line numbers

Every row carries a 1-based line number in a muted gutter, on both the old and the new side. The numbers come from the harness itself: when an edit settles, the plugin anchors each served hunk to its true position, and for hunks without an anchor the card reads the file through a fenced workspace route and locates the changed block verbatim. A hunk that cannot be located (a block appearing more than once, a drifted file, no host half) falls back to window-relative numbering from the hunk's first row, so a number always renders — but it may not be the file's true line. Prefer it cleaner? Pick Off under Settings → Plugins → Inline diff → Line numbers and the gutter disappears entirely. Like the other choices, this is saved 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:

A compact diff card with a custom theme

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):

  1. Add the plugin to your profile's package.json:

    "dsh-inline-diff": "github:JanEickholt/dsh-inline-diff"
    

    then run pnpm install in the profile directory.

  2. Add it to your profile's cordis.patch.yml:

    - insert:
        - id: inline-diff
          name: 'dsh-inline-diff'
    
  3. Refresh the GUI page. Done. Every edit and file write now renders as an inline diff.

Manual: copy this repository into <profile>/node_modules/dsh-inline-diff/ and add the same patch row.

Contributing

Contributions of any kind are welcome: code, bug reports, docs, design ideas, screenshots, or just telling us what confused you. Open an issue or a pull request; nothing is too small.

Layout

The client ships as a single self-contained file because DSH loads it as one module. Its source of truth is src/, split per concern (line-diff.js, render.js, style.js, i18n.js, …). pnpm build (or pnpm test, which builds first) concatenates those blocks into lib/client.js. Edit files under src/, never lib/client.js directly. The two-tab indentation on code lines mirrors the module-loader wrapper the generated file is wrapped in; blank-line placement between blocks is added by the build.

About this project

This plugin was written by an AI coding agent (with a human steering it).

License

MIT

Operate deliberately

Install and manage

Prerequisites and target Profile

Target Web Profile

Delivery Dsh Bundle Git — JanEickholt/dsh-inline-diff#281abd71f9afc66b199c7ca7f8828d4ebd002a56

Verify, update, and remove

Show lifecycle commands
Verify
dsh plugin --profile web list

Compatibility and access

Web client bundle; peer dependencies declared Not declared in supplied evidence

Review compatibility evidence

Risk facts

License

MIT licensed; provided without warranty.

Evidence
Dependency

Declares peer dependencies on DSH Settings and Schemastery.

Evidence
Evidence and editorial reviewManifest, Bundle patch, distribution and freshness

Immutable evidence

Review status and source activity

AI reviewed

Use the pinned Git source for a reviewable installation path; assess runtime behavior in your own web profile.

AI reviewed Sep 11, 2026, 2:01 PM UTCGitHub facts last checked Sep 11, 2026, 2:01 PM UTC

No material source change has been recorded since this evidence baseline.

Next step

Follow the Plugin installation workflow

Subscribe to material changes for dsh-inline-diff