gfds2005/dsh-remote-dir-picker
DSH Web 插件:通过锁定应用内浏览交互,使远程浏览器(nginx/反向代理)也能使用工作区目录选择器。
Project Overview项目介绍
This repository hosts a native plugin built exclusively for DeepSeek Harness (DSH) Web. It addresses a common usability issue that occurs when accessing a locally hosted DSH Web instance through a reverse proxy, public domain, or LAN IP address. By default, DSH’s auto directory picker checks the bind address once at startup, and if the instance is bound to localhost, it will trigger a native system file picker on the host machine’s screen, leaving remote users with no visible response when they click “Add Workspace”. This plugin replaces the default logic to ensure consistent behavior for both local and remote access.
The plugin disables DSH’s default directory-picker-auto component entirely, and mounts a persistent browser-based directory picker instead. After installation, every time a user clicks the “Add Workspace” button in DSH Web, regardless of whether they are connecting from localhost or a remote address, a directory browser will render inside the user’s browser window. It supports core navigation features like breadcrumb trail browsing, jumping directly to an absolute path, editing the current path, toggling hidden files, and creating new folders directly from the dialog. This consistent experience eliminates the broken behavior that plagues remote reverse proxy setups, and is useful for anyone who hosts DSH Web for remote access.
To install the plugin, you first need to have the DSH CLI installed and available on your system path, and know the name of your target DSH profile (the default is web). You can install the latest stable version directly from npm by running the one-line command dsh plugin --profile web add dsh-remote-dirpicker, and uninstall it just as easily with the remove subcommand. After any installation or uninstallation change, you must restart your DSH Web service for the bundle configuration change to take effect. The plugin is released under the open MIT license, does not modify DSH core code, and works across all DSH-supported desktop platforms including macOS, Linux, and Windows.
这是一个专为 DeepSeek Harness Web 开发的原生插件,用于解决远程访问场景下「新增工作区」目录选择失效的问题。当用户通过 nginx 反向代理、公网域名或者局域网 IP 访问部署在本地主机的 DSH Web 时,默认的目录选择逻辑会在宿主屏幕弹出原生对话框,导致远程浏览器点击新增工作区后没有任何反应,本插件专门修复这个问题。
本插件停用了 DSH 默认根据绑定地址选择交互方式的 directory-picker-auto 插件,统一采用浏览器内目录选择交互。无论本地回环地址访问还是远程公网、局域网访问,都在浏览器内弹出目录选择对话框,支持面包屑导航逐级浏览、绝对路径输入跳转、路径编辑、显示隐藏文件和新建文件夹,操作体验完全一致,不需要依赖宿主显示器弹出原生对话框。
插件遵循 DSH 官方插件标准,支持一行命令安装和卸载,安装命令为 dsh plugin --profile web add dsh-remote-dirpicker,卸载对应使用 remove 命令,安装或卸载后都需要重启 DSH Web 服务生效。插件不修改 DSH 核心代码,采用纯 overlay patch 方式集成,遵循 MIT 开源许可协议,兼容全平台 DSH Web 宿主。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-remote-dir-picker(gfds2005/dsh-remote-dir-picker)
仓库:https://github.com/gfds2005/dsh-remote-dir-picker
本站详情页:https://www.yhbd.top/plugins/gfds2005-dsh-remote-dir-picker/
本站登记:类型 collection · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 2 · 最近提交 2026-08-16 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add dsh-remote-dirpicker
把 gfds2005/dsh-remote-dir-picker 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-remote-dirpicker
Make the "Add Workspace" directory picker work from remote browsers (nginx / reverse proxy / any non-loopback access) in DeepSeek Harness Web.
让 DSH Web 的"新增工作区"目录选择,在远程浏览器(nginx 反代 / 公网域名 / 局域网 IP)访问时也能正常使用——不再出现"远程点击新增工作区没反应,而宿主机屏幕上却弹出访达对话框"的问题。
目录
功能
本插件固定使用浏览器内目录浏览器(browse)这一种交互——本地与远程完全一致,不再依赖宿主显示器的原生对话框(详见工作原理)。
- ✅ 远程(公网 / 反代 / 局域网)访问时,点"新增工作区"弹出浏览器内目录浏览器,可直接:
- 浏览宿主文件系统(面包屑导航、逐级进入)
- 输入绝对路径跳转
- 编辑路径
- 显示 / 隐藏隐藏文件
- 新建文件夹后立即进入
- ✅ 本机(
127.0.0.1/localhost)访问时同样使用浏览器内目录浏览器,功能一致、体验统一(不会再弹出访达等原生对话框) - ✅ 一行安装、一行卸载,与 dsh 官方插件同样的安装/卸载方式
- ✅ 不修改 dsh 核心代码,纯组合层 patch + 官方目录选择能力
解决的问题
DeepSeek Harness Web 默认挂载 directory-picker-auto 来决定目录选择交互,它在启动时按宿主绑定地址只采样一次:
下表描述的是 DSH 默认(未安装本插件时) 的选择逻辑——它正是问题所在,不是本插件的功能。本插件只有一种交互(browse,见工作原理),本地与远程表现一致。
| 绑定地址 | auto 解析结果 | 交互方式 |
|---|---|---|
127.0.0.1 / localhost |
native |
在宿主显示器上弹出操作系统选择器(macOS 为访达 Finder) |
| 非回环地址 | browse |
浏览器内目录浏览器 |
当通过 nginx 把 127.0.0.1:3080 反代到公网域名(如 dsh.example.com)时:
- dsh 的绑定地址依然是
127.0.0.1→ auto 解析为native - 访达对话框在宿主机(macmini)屏幕上弹出
- 远程浏览器什么都看不到,点"新增工作区"看起来毫无反应
这正是 DSH 官方 README 建议的 "Mount -browse directly in an overlay to pin the interaction" 场景。
工作原理
本插件是一个标准的 DSH 插件包(bundle patch + 宿主半边),通过 cordis.patch.yml 调整组合:
- 停用
directory-picker-auto(disabled: true)——它的一次性采样无法同时服务本地和远程; - 挂载 browse 宿主能力
@deepseek-ai/dsh-host-directory-picker-browse——注册directoryPicker服务的browse能力,通过host.listDirectory/host.createDirectoryRPC 提供目录列表与新建文件夹; - 挂载 browse 浏览器界面
@deepseek-ai/dsh-client-ui-directory-picker-browse——在浏览器内渲染目录浏览器对话框。
browse 交互完全运行在浏览器内,数据只通过 HTTP RPC 访问宿主文件系统,不需要宿主显示器,因此本地、局域网、公网反代访问表现完全一致。
插件宿主半边(lib/index.js)仅做启动健康检查:确认 directoryPicker 能力为 browse,并在启动日志打印一行确认信息。
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
bruc3van/awesome-dsh-plugin
leenkcool/Blue-Whale-Harness
awesome-dsh-plugin/dsh-find-plugin
hyqibot/A-share-Ai
Sanqi-normal/dsh-webui-market-plugin
bruc3van/dsh-desktop