dsh-file-changes
by mixin-ai
DeepSeek Harness web 插件:逐轮文件变更面板,支持 diff 查看与文件过滤
DeepSeek Harness web plugin: per-turn file-change panel with diff viewing and fi
安装
dsh plugin --profile web add github:mixin-ai/dsh-file-changesGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
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
(macOS
open -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/resultfor 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
原始 README: https://github.com/mixin-ai/dsh-file-changes/blob/main/README.md ↗
同类插件
查看全部 →
dsh-anchored-standard
两阶段 DeepSeek Harness 预设:先 Minimal 对齐的 bootstrap,再切完整 Standard 工具(Project2 98/99)

PicGo-Core
极致的图片上传引擎,CLI 与 API 双支持

awesome-deepseek-harness
DeepSeek Harness(DSH)及其优秀社区插件的精选指南。

awesome-deepseek-harness
DeepSeek Harness (DSH)生态系统:来自dsh-external/hub和公共dsh-plugin主题的精选插件、工具和基础设施。

AI-Novel-Writer
本地优先 AI 小说创作工作台,提供 Windows/macOS 桌面版与 DeepSeek Harness 插件开发预览,支持角色、大纲、章节蓝图、审稿修稿和本地模型。

mcp-for-stata
MCP-for-Stata:把 Stata 集成进你的 agent