DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
F

dsh-file-tracker

File Tracker

文件活动监视器:宿主半边聚合 agent 动过的文件/目录(write/edit/shell 工具调用),客户端半边在右上角 ··· 菜单里提供"动过的目录"与时间线面板 / A DSH plugin that shows which files and directories the agent touched

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Mys12word/dsh-file-tracker#c8b161ef3cfd8c2a113b084ba3c553b8411dc5d7
README兼容性版本

兼容性与来源证明

File Tracker 以 dsh-file-tracker 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/25

版本

0.3.0stable
2026/10/25
0.2.0stable
2026/10/24

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/10/25
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-file-tracker · 文件活动监视器

一个 DSH 双端插件:让 agent 动过的文件,你当场就能看见。

agent 说"我改好了",到底改了哪几个文件?dsh-file-tracker 把每一轮里 write / edit / shell 调用碰过的路径抓出来,按「目录」和「时间线」两种视角摊开在 web GUI 里。不用翻日志,不用问它。

···  →  文件活动
        ┌──────────────────────────────┐
        │ 动过的目录 │ 时间线           │
        │ 📁 nvidia-driver/x64   2 次   │
        │    7za.exe          14:03:11 │
        │ 📁 src                  5 次   │
        │    client.js        14:05:02 │
        └──────────────────────────────┘

它做什么

宿主半边(Cordis host)监听 session/event 的 tool/call,把工具参数里的路径解析出来,按「会话 → 目录 → 文件」聚合,并逐行落盘。

识别方式工具置信度
精确参数解析write edit read read_image move copy delete glob grep ops_glob ops_grep1.0
命令串启发式pwsh powershell shell bash sh cmd terminal0.6(半透明徽章)

客户端半边在 web GUI 里挂一个面板,两个视图:

  • 动过的目录 — 每个被碰过的目录一行,带改动次数、最近一次动的文件与时间;点开看该目录下的文件明细。
  • 时间线 — 逐条事件倒序,失败的调用标红点;点开看工具名与 turn/step 号。

徽章含义:

写改读看移删壳
writeeditreadglob/grepmovedeletepwsh 等命令

右键跳转文件夹

在面板的任意一行上点右键,会弹出上下文菜单:

  • 在文件夹中显示 — 文件条目:打开系统文件管理器并选中该文件;目录条目:直接打开该目录。
  • 复制路径 — 把该条记录对应的绝对路径复制到剪贴板。

打开动作由宿主执行(POST /ft/open),客户端只上报事件的 fseq:

  • 路径不由客户端指定。宿主从自己的事件簿里按 fseq 反查真实路径,客户端无法借此打开任意路径。
  • 沿用与 DSH 官方相同的 Explorer 调用约定(file:// URI + 非 ASCII 还原 + 逗号/等号转义)。
  • 文件若已被移动或删除,自动退回打开它所在的目录。
  • 结果以轻提示反馈(成功 / 路径不存在 / 找不到系统文件管理器)。

需要系统 PATH 里存在 C:\Windows(explorer.exe 所在目录)。缺失时菜单会提示「找不到系统文件管理器」。

安装

前置:DSH Desktop,Node ≥ 22。

git clone https://github.com/Mys12word/dsh-file-tracker "$HOME\.dsh\plugins\dsh-file-tracker"
powershell -NoProfile -ExecutionPolicy Bypass -File "$HOME\.dsh\plugins\dsh-file-tracker\install-profile.ps1"

脚本只做三件事,都可手动完成:

  1. 往 profile package.json 的 dependencies 写 "dsh-file-tracker": "link:<插件绝对路径>"
  2. 往 dsh.profile.bundles 数组里加 dsh-file-tracker
  3. 在 ~/.dsh/profiles/<profile>/node_modules/ 建 junction

完全退出并重启 DSH Desktop 后生效。 只刷新页面不够——bundle 列表在启动时读取。

数据面 API

同源 HTTP,loopback 信任栅栏:非 127.0.0.1 Host 或跨站 Origin 一律 403。

端点说明
GET /ft/events?sessionId=<id>&after=<fseq>增量拉事件,after 为游标
GET /ft/summary?sessionId=<id>目录聚合视图
GET /ft/sessions会话列表(含 cwd、标题)

数据文件

~/.dsh/file-tracker/events.jsonl — 追加式 JSONL,单行一条:

{"fseq":387,"sid":"session-…","cwd":"C:\\…","tool":"pwsh","turn":13,"step":1,"kind":"shell","file":"nvidia-driver/x64","dir":"nvidia-driver","conf":0.6}

超过 8 MB 自动截断,保留最近 1000 行。删掉整个 ~/.dsh/file-tracker/ 目录即可重置,不影响任何其他功能。

设计要点

  • fail-open:每条事件的解析、每个客户端 DOM 副作用都包在 try/catch 里。插件自身出问题绝不打断宿主 turn,也绝不弄白你的界面。
  • 壳类是启发式:它只回答"大概动了哪个目录",别拿它当审计证据。要精确就让工具用 file_path 参数。
  • 配色自持:不依赖宿主的语义令牌(那些令牌在浮层里对比度很低),面板自带 --ftt-* 调色板,按当前界面背景亮度自动选亮/暗,并用 MutationObserver 跟随主题切换。
  • 零配置:没有设置项,装完就有。

已知限制

  • 面板锚定当前对话的会话。从侧边栏其他会话行打开,看到的仍是当前会话的事件(v1 行为)。
  • 目录/路径是从命令原文里抠出来的,所以注册表键(HKLM:\…)、URL 之类偶尔也会入列——那是 agent 敲过的字面串,不代表真的碰了文件系统。
  • 只记录当前进程生命周期内新发生的事件,不回溯历史会话的事件流(历史 JSONL 仍在磁盘上)。

FAQ

「壳」是什么意思? shell 类事件的缩写徽章——这次操作是执行命令,不是读写文件,所以它带的路径是启发式猜出来的(0.6 置信度,半透明显示)。

为什么面板里出现了 HKLM:\SYSTEM\…? 同上:那是命令文本里的字面路径,被"壳类"启发式抓到了。它可能只是 Get-ItemProperty 在读注册表。

面板为什么不刷新? 宿主侧 webServer 不可用时会退化为"只收集不路由",重启后自动补齐。客户端每 1.2 s 轮询一次,失败退避到 4 s。

开发

node --check lib/index.js
node --check lib/client.js
node test/client.test.mjs    # 19 项断言
node test/host.test.mjs      # 24 项断言

客户端是 vanilla DOM(不引 React),打包契约:window.__ModuleLoader__.load({ id, factory }) 的 factory 返回值本身就是模块体,apply / inject 必须在顶层,文件以 return module.exports; 结尾。

License

MIT