Plugin directory / Developer / dsh-file-changes
dsh-file-changes
Verified · install-tested on dsh mixin-ai
What it does
DeepSeek Harness web plugin: per-turn file-change panel with diff viewing and filesystem reveal
Works — verified, early-stage project
DeepSeek Harness web plugin: per-turn file-change panel with diff viewing and filesystem reveal It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-file-changes
A DeepSeek Harness Web plugin that
shows a file-change panel at the end of every answer. When a turn creates or
modifies files, the panel lists each one under the closing message with three actions:
- Open 锟斤拷 click the file name to open it with the OS default application;
- View diff 锟斤拷 a modal renders the turn's actual applied changes (whole-file
content for new files) using the harness DiffBlock primitive; - Reveal 锟斤拷 locate and select the file in the OS file manager
(macOSopen -R, Windowsexplorer /select,, desktop Linux opens the
containing directory). The action appears only on loopback access with a
native opener available.
The panel complements the built-in "Produced" row: it adds created/modified
badges, per-file diffs, and per-file filesystem reveal.
Install
# from GitHub
dsh plugin --profile web add git+https://github.com/mixin-ai/dsh-file-changes
# from a local checkout
dsh plugin --profile web add link:/path/to/dsh-file-changes
Restart dsh web, then refresh the browser page.
How it works
- Native mode 锟斤拷 the client half registers a conversation definition (like
@deepseek-ai/dsh-client-ui-deliverables) that accumulates successful mutation
tool calls from their presentation views (card: 'diff'hunks, or generickind: 'edit'locations) into turn-scoped data published under thefileChangeskey, and renders it through the chat view'sconversation.chat.turnTailslot chain. - Code Mode (
run_code) 锟斤拷 nested dispatches carry no presentation views
on the wire, so the host half listens totools/execute/tools/result
for executions with aparent(Code Mode sub-calls), rebuilds change
records from thewrite/edit/str_replace_editorarguments, and
serves them over/api/file-changes/changes. The panel merges both
sources, deduplicated by path. - Reveal 锟斤拷
POST /api/file-changes/revealvalidates a JSON payload,
loopback origin, and an absolute existing path before handing it to the
platform opener.
Structure
| File | Role |
|---|---|
lib/index.js |
Host half: nested-dispatch tap + the two HTTP routes |
lib/client.js |
Browser bundle: turn accumulator + panel/diff/reveal UI |
cordis.patch.yml |
Bundle patch mounting the dual-half row |
smoke.test.mjs / client.test.mjs |
Host and client logic tests |
Run the tests with:
node smoke.test.mjs && node client.test.mjs
Limitations
- Files created indirectly by terminal commands (e.g.
bash) are not
detected 锟斤拷 the same vocabulary limit as the official produced-files row. - Host-side Code Mode records live in memory (2-hour / 2000-per-session ring);
a server restart clears them. - The reveal endpoint trusts loopback same-origin JSON requests only.
License
MIT
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-file-changes for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:mixin-ai/dsh-file-changes Headless (CLI) profile:
dsh plugin --profile headless add github:mixin-ai/dsh-file-changes Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.
When to use it
Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.
Who it's for
Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.
For developers — extending it
The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.