DeepSeek Harness Hub
← 返回列表

目录树 Diff 插件musclePatrickStar/fdtree

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

侧栏展示文件树并实时高亮红绿代码差异

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/27 · 已提供中文文档
综合分
28.7
GitHub 分
28.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add musclePatrickStar/fdtree
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH 文件目录+diff 插件
如果你和我一样不想为了一个目录树就安装大而全的 UI,这个插件或许可以帮到你

简述

在界面最右侧显示工作区文件目录树,点开文件后以真嵌入布局(四列占位:原生侧边栏|对话区|文件内容|文件树)展示内容与实时红绿 Diff(git 模式对比 HEAD,无 git 时对比会话基线,会话基线支持自定义),文件 Diff 支持 22 种语言的语法高亮。

功能

- 布局:始终占列的四列形态(原生侧边栏|对话区|文件内容|文件树),非浮动;内容列默认收起,仅显示文件树
- 文件树:点文件展开内容区,多标签打开,内容/Diff 整合为单一视图:🟥 删除行、🟩 新增行、行号、+N −N 统计
- 模式自动切换:工作区位于 git 仓库内(含父目录仓库)自动启用 git 模式;非仓库目录自动用基线模式;git init 后 15 秒内自动检测生效
- git 模式:与 HEAD 对比(git 原生 xdiff),目录树徽标实时显示改动/未跟踪/删除;git commit 后差异自动归零
- 基线模式(无 git 仓库):与打开时快照对比,支持「📌 设基线」
- 打开终端:右键目录树节点弹出菜单,可在宿主系统打开终端并自动定位(Windows:PowerShell / cmd;macOS:Terminal.app;Linux:桌面终端,无图形环境时明确报错),支持一键 cd 到选中目录,成功/失败均有横幅反馈
- 语法高亮:JS/TS、Python、JSON、Markdown、HTML、CSS、YAML、Shell、C/C++/C#/Java、Go、Rust、PHP、Ruby、Swift、Kotlin、SQL、PowerShell、Lua、Dockerfile、Makefile、.env
- 大文件优化:FsVersion 变更检测免重复读盘、大文件自动降载渲染

安装

方式一:dsh plugin 命令安装

在目标机器的 DSH web profile 中安装(自动 pnpm 安装 + 注册)
dsh plugin --profile web add "https://github.com/musclePatrickStar/fdtree.git"

或 SSH 方式(注意:必须用 git+ssh:// 完整格式,pnpm 不支持 git@github.com:xxx 简写)
dsh plugin --profile web add "git+ssh://git@github.com/musclePatrickStar/fdtree.git"

或本地路径
dsh plugin --profile web add "file:/path/to/fdtree"

如果是 fork 或自建镜像,把上面的仓库地址替换成你自己的即可。

更新

拉取仓库最新提交并重新解析安装(git 依赖按提交哈希锁定,必须 update 才会升级)
dsh plugin --profile web update fdtree

然后重启 dsh web(dsh web)。

为什么不是 pnpm install? git 依赖的版本由锁文件中的提交哈希固定,普通 install 不会检测新提交;update 会重新解析到最新提交。
想固定到某个版本时,可手动把依赖改为 "fdtree": "github:musclePatrickStar/fdtree#v0.1.3"。
Windows 上若遇到证书报错(schannel),先执行 $env:GIT_SSL_NO_VERIFY='1' 再运行 update。

方式二:手动编辑

1. 在 $DSH_HOME/profiles/web/package.json 的 dependencies 加一行:"fdtree": "github:musclePatrickStar/fdtree"(可锁定版本:"fdtree": "github:musclePatrickStar/fdtree#v0.1.0");
2. 在 dsh.profile.bundles 数组末尾追加 "fdtree";
3. 在 $DSH_HOME/profiles/web 下执行 pnpm install;
4. 重启 dsh web(dsh web)。左侧栏底部出现「文件树」按钮,右侧自动显示文件树面板。

插件包结构遵循 DSH 插件规范:package.json 的 dsh.bundle.patch + dsh.client、cordis.patch.yml 补丁插入、lib/index.js 宿主端、client/client.js 客户端 bundle(__ModuleLoader__ 格式)。

卸载

dsh plugin --profile web remove fdtree

开发说明

- 宿主端:lib/index.js(ESM,Cordis 插件,经 webServer 注册 /fdtree/rpc HTTP JSON-RPC)
- 客户端:client/client.js(手写 __ModuleLoader__ bundle,同源 fetch 调用宿主 RPC)
- 仓库根目录即插件包根目录:lib/index.js 宿主端、client/client.js 客户端 bundle、cordis.patch.yml 补丁、package.json 包定义(不含演示文件)。

安全说明

- 无外部网络请求:客户端只通过同源 fetch('/fdtree/rpc') 与本机 DSH web 服务器通信,不连接任何外部域名;无遥测、无上报。
- 只读工作区:插件只读取当前会话工作区内的文件(带路径越界检查),git 命令(status/diff/branch)仅在本地运行并受 DSH 沙箱策略约束,从不执行 fetch/pull/push。
- 会话隔离:未绑定会话前,所有 RPC 一律拒绝(NO_SESSION),不会暴露任何路径或文件内容。
- 终端功能:仅在用户显式右键点击时触发,目标目录被限制在工作区内。
- 数据本地化:所有内容都在你自己的浏览器中渲染展示,不会发送到任何服务器。
- 安装即信任:与所有包管理器一样,安装插件等同于执行插件作者代码。请仅从可信来源安装。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群