DeepSeek Harness plugin

dsh-remote-picker

Remote-access directory-picker fix for DeepSeek Harness: forces the in-browser browse interaction when the web GUI is served to remote browsers (tailscale serve, cloudflared, reverse proxy with

Jump to install

Source facts

Repository
Yuuichu/dsh-remote-picker
Latest update
Aug 17, 2026
Category
Models & Providers
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Yuuichu/dsh-remote-picker
Plugin: dsh-remote-picker
Author: Yuuichu

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-remote-picker

![npm version](https://www.npmjs.com/package/dsh-remote-picker) ![npm downloads](https://www.npmjs.com/package/dsh-remote-picker) ![License](LICENSE) ![dsh plugin](https://github.com/topics/dsh-plugin)

远程访问场景下 DeepSeek Harness 目录选择器的修复插件:当 Web GUI 服务于远程浏览器(tailscale serve / cloudflared / 反向代理 + --trusted-host)时,强制使用浏览器内 browse 交互,而不是会在无人值守主机上弹出、远程浏览器无法驱动的 native OS 对话框

> 关联上游讨论:deepseek-ai/deepseek-harness#discussions/2713 > 官方 directory-picker-auto 组件自身也承认该缺陷(Playwright smoke 用 overlay 绕过:apps/web/tests/pin-browse-picker.overlay.yml)。

本插件服务的远程流程

这个插件只在一个特定的远程访问流程中有意义。先看清这条链路,再决定是否需要安装:

手机 / 笔记本浏览器(任意网络:4G、公司网、家里 WiFi)
        │  https://<你的主机名>.ts.net  (或 cloudflared 公网域名)
        ▼
tailscale serve / cloudflared  ──  HTTPS 反向代理(TLS 终结,仅网内可达)
        │  转发到本机
        ▼
dsh web  ──  绑定 127.0.0.1:3080,启动参数带 --trusted-host <你的主机名>

流程各环节与责任

环节做什么与本插件的关系
dsh web --trusted-host <主机名>保持回环绑定(安全),并把远程域名加入 /api 白名单(防 DNS rebinding 围栏)前提:没有它远程页面能开但 API 全 403
tailscale serve --bg 3080(或 cloudflared)https://<主机名>.ts.net 反代到本机 3080;HTTPS 是必须的(明文 HTTP 下浏览器没有 crypto.randomUUID,DSH 的 RPC 全挂)前提:提供远程入口
③ 手机浏览器打开远程地址日常对话、查看任务、发消息正常,无需本插件
④ 设置 → 工作区 → 选择目录远程用户挑选/创建工作区文件夹本插件接管的位置:原生对话框在电脑上弹出,手机看不到;插件强制浏览器内目录树
⑤ 设置页/API Key 管理官方设计仅回环可用(403)与本插件无关,请在本机浏览器操作

一句话:如果你的使用方式符合"①+②+③"(通过 tailscale serve 或 cloudflared 从手机/远程浏览器使用 DSH),那你一定会在④遇到目录选择器故障——这个插件就是为④准备的。如果只在电脑本机用(http://127.0.0.1:3080),不需要装。

问题

dsh web 默认绑定 127.0.0.1,通过 tailscale serve / cloudflared 等反代对外提供 HTTPS 入口。@deepseek-ai/dsh-host-directory-picker-auto 的启动判定是:回环绑定 + darwin/win32 → native 后端。反代场景下浏览器是远程的(手机/笔记本),native 对话框会弹在电脑屏幕上——远程用户看不到、无法操作,工作区目录选择直接失败。

修复方式

本插件的 bundle patch(dsh.bundle.patch 机制)在启动组合中:

1. 禁用 官方 directory-picker(auto)行; 2. 挂载 browse 后端 + 客户端界面(@deepseek-ai/dsh-host-directory-picker-browse + @deepseek-ai/dsh-client-ui-directory-picker-browse)——即 seam 文档化的切换点; 3. 附带 remote-picker 自检行:启动后验证 browse 能力已装载,异常时输出警告(fail loud)。

浏览器内 browse 选择器通过 /api 目录树浏览工作区文件夹,远程可用、本地可用,全平台一致。

安装

dsh plugin --profile web add dsh-remote-picker

或手动(profile 是 pnpm workspace):

cd ~/.dsh/profiles/web
npx -y pnpm@11 add -w dsh-remote-picker

安装后重启 dsh web 生效。

> ⚠️ 若你的 cordis.patch.yml 已手工加过同款 disable+insert(远程访问排查期的常见做法),先移除那段,避免重复装载。

验证

  • 启动日志出现 dsh-remote-picker: in-browser browse directory picker active
  • 远程浏览器(手机/另一台电脑):设置 → 工作区 → 选择目录 → 出现可浏览的目录树
  • 本地浏览器 http://127.0.0.1:3080 同样可用(browse 是处处可用的交互)

与本包相关的上游补丁

完整的 trustedHosts 信号修复(auto 组件自动判定 browse)已整理为补丁提交到上游讨论区,等待官方采纳;本插件是其插件形态的等价物,无需等待上游。

License

MIT