DSH Right:在 DSH Web 界面为文件与链接提供 Codex 风格右键菜单

前言

在 DeepSeek Harness(DSH)里处理代码时,文件路径会出现在聊天链接、文件提及、右侧文件树和正文行内代码里。浏览器默认右键只能复制文字或走页面自带操作,无法像桌面 IDE 那样「用 VS Code 打开」「在资源管理器中定位」「复制相对路径」或「另存为到指定目录」。社区里已有参考实现的右键菜单思路;DSH Right(维护者 iMankoppai,仓库 imankoppai/dsh-right)在 DSH Web 端独立实现一套菜单,结构和文案对照本机 Codex 的文件引用菜单,并配合宿主半边路由完成复制内容与防覆盖另存为。

下面介绍它是什么、能做什么,以及如何安装与日常使用。

这是什么

DSH Right 是 DSH 的客户端 + 宿主组合插件(dsh.client.platform: web,宿主通过 cordis.patch.yml 挂载 /dsh-right 路由)。当前版本 0.2.3,许可证 MIT。在 DeepSeek Harness 44.7.0(Windows) 上开发与测试;README 说明 DSH 大版本升级后若菜单不出现,应对照仓库文档中的「DSH 内部接口」一节。

一句话:在聊天里的文件路径、文件提及、右侧「文件」树一行、以及任意超链接上右键,弹出 Codex 风格的上下文菜单;非文件、非链接区域仍使用浏览器原生菜单(Shift + 右键 可在文件/链接上强制原生菜单)。

核心功能

识别范围

右键位置 识别方式
右侧栏「文件」树的一行 data-files-path / data-files-entry
聊天里的文件链接 锚点 href(dsh-resource://file/…、file://、api/file?path=… 等)
聊天里的文件提及按钮 按钮的 title
正文 / 行内代码里的路径 指针下 token,经宿主确认文件是否存在
任意超链接 锚点 href

路径支持工作区相对路径、Windows/Linux 绝对路径、仅文件名(走 @file 搜索)、带空格且加引号的路径;支持 src/app.ts:42:8、src/app.ts#L42C8 等形式,可复制路径和行号,并在探测到 VS Code / Insiders 时通过宿主定位到行列。找不到文件时会在底部提示,不会静默吞掉右键。

文件与文件夹菜单

  • 打开文件 / 在文件树中展开:DSH 内预览;文件夹则展开树。
  • 在 VS Code 中打开:走 session.openWorkspacePath;设置里可改「首选打开程序」。
  • 打开方式 ▸:宿主返回的关联程序列表(带图标,默认项标注「(默认)」)。
  • 在编辑器中定位到第 N 行:路径带行号时出现。
  • 在资源管理器中打开(macOS 为 Finder,Linux 为文件管理器)。
  • 复制路径 / 相对路径 / 文件名 / 路径和行号:写入剪贴板,分隔符可在设置里统一。
  • 复制文件内容:文本进剪贴板(上限 1 MiB;二进制拒绝)。
  • 另存为…:目录选择器 + 宿主拷贝;重名时可自动改名、替换或取消;大文件拷贝超时已放宽至 30 秒(0.2.3)。

链接菜单

  • 在侧边栏 Browser 中打开、在外部浏览器中打开。
  • 复制链接地址、链接文字、Markdown 链接。

链接指向文件时,同一菜单中会同时出现链接项与文件项。菜单顺序参考 Codex:打开 → 在应用里打开 → 打开方式 → 分隔线 → 另存为 → 复制 → 在资源管理器中显示。

设置 → 右键管理

自 0.2.2 起,「DSH Right 设置…」「功能诊断…」不再出现在右键菜单里,统一放在 设置 → 右键管理:

  • 勾选/取消各功能,同组内 ↑/↓ 调整顺序;
  • 紧凑菜单、复制路径分隔符、首选打开程序;
  • 配置保存在当前浏览器 localStorage,改完立即生效;
  • 功能诊断在设置页内检测宿主路由、防覆盖保存、编辑器定位、桌面程序、会话文件、目录选择器、侧栏浏览器,可重新检测。

菜单字号跟随 DSH「设置 → 通用 → 字号大小」(相对内容字号 -2px),而非 primitives 的 compact 模式。

安装与启用

插件以本地目录形式安装,需将路径换成你机器上 clone 或解压后的实际位置。安装前请自行查看源码与 MIT 许可证;插件宿主半边以当前 DSH 进程权限访问工作区文件。

方式一:Web 界面(推荐)

  1. 左侧栏 Plugins → Add plugin。
  2. 粘贴插件目录的绝对路径,例如:
   C:\path\to\DSH Right
  1. 点 Install,按提示刷新页面。
  2. 重启一次 DSH:宿主半边(复制文件内容、另存为所走的 /dsh-right 路由)需重启才会加载;只刷新页面时,文件树/链接菜单仍可用,但「复制文件内容」可能回退到 Session Remote,「另存为」可能只剩浏览器下载。

方式二:命令行

先完全退出 DSH,再执行(desktop 为当前桌面端 profile 名,若不同请替换):

dsh plugin --profile desktop add "link:C:/path/to/DSH Right"

装完后启动 DSH。升级插件后 README 建议重启 DSH 并刷新页面。

典型用法

  1. 在右侧文件树某文件行上右键,选「在 VS Code 中打开」或「打开方式 ▸」中的关联程序。
  2. 在聊天里对 src/index.ts:42 右键,选「在编辑器中定位到第 42 行」或「复制路径和行号」。
  3. 对仅出现文件名的提及右键,若有多处匹配,菜单会列出完整相对路径供选择。
  4. 需要精简菜单时,打开 设置 → 右键管理,关闭不用的项并调整顺序;若菜单异常,在同一页运行功能诊断并对照 README 的 DSH 内部接口列表。

开发构建(维护者流程):在插件目录执行 pnpm install、pnpm build;改 src/ 后重新 build 并刷新页面;改宿主半边需重启 DSH。Node 引擎要求 ^22.15.0 || >=24.0.0。

适用场景与注意

适合:主要在 DSH Web GUI(尤其 Windows 桌面端)里写代码、查文件、从聊天跳转到本地编辑器或资源管理器的用户。

注意:

  • 依赖 DSH 当前版本的 DOM 属性、Remote 命名空间(如 session.openWorkspacePath、workspaceFiles.read)和 settings.section 等槽位;DSH 升级后接口变化可能导致菜单失效,需对照仓库文档排查。
  • 本插件为独立实现,设计参考 AL1ghtm3ter/dsh-right-click-menu(MIT),未直接复用其安装包。
  • 社区插件目录 SkillHub 上的 DSH Right 条目 与 GitHub 仓库便于检索;该目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

DSH Right 把 Codex 风格的文件/链接右键能力接到 DSH Web 界面:预览、多程序打开、资源管理器定位、路径与内容复制、防覆盖另存为,并在设置里集中管理菜单与诊断。需要详情与更新说明见 GitHub:iMankoppai/dsh-right,目录页见 SkillHub。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye