DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

DSH-Reflex

X

DSH-Reflex

Identified★ 1

ChatGPT-like right-click menu for links and file references in DeepSeek Harness (DSH) desktop messages.

dsh-link-menu

给 DeepSeek Harness(DSH)桌面版 聊天区里的链接与文件引用加一个类似 ChatGPT 的右键菜单。

A ChatGPT-like right-click menu for links and file references inside DeepSeek Harness (DSH) desktop messages.

仓库 / Repository:https://github.com/Xchcy/DSH-Reflex · 市场条目 / Market entry:ui 分类,awesome-dsh-plugin


装它最快的方式:让 AI 帮你装

不需要懂命令行。把下面这段原样发给一个能操作你电脑的 AI(最推荐:直接发在 DSH 对话里;也可以发给任何能读写文件、执行命令的 AI 助手):

帮我安装一个 DSH 插件,插件叫 dsh-link-menu(给消息里的链接和文件引用加右键菜单)。

安装步骤:
1. 下载 https://github.com/Xchcy/DSH-Reflex/releases/latest/download/dsh-link-menu.tgz
   (下载不下来、或者连不上 GitHub,就先告诉我要装包,不要跳过这一步。)
2. 把它解压/解包到一个固定目录,例如 C:\Users\Xchcy\dsh-plugins\dsh-link-menu。
   注意:解出来的目录里要能直接看到 package.json、index.js、client.js。
3. 用 DSH 的 plugin_manager 工具安装这个本地 bundle:
   plugin_manager install_bundle,target 填上面那个目录的绝对路径。
4. 安装结果显示 application 是 applied、warnings 是空数组,就算成功。
   如果报错,把完整报错发给我,不要自己删文件。
5. 装完提醒我:必须完全退出并重新打开 DSH 桌面应用(客户端半边要重新加载)。
6. 重启后让我验证:在聊天里右键一个文件引用或链接,应该弹出菜单。
   没弹出来就回来告诉你,你再去检查插件有没有加载。

发过去之后你只需要做两件事:等它装完 → 重启 DSH。

没有 AI 可用时,手动装(三种方式,任选一种)

  1. 插件市场(有就最省事):DSH 桌面版 Plugins → Discover 搜 dsh-link-menu 或 Xchcy,点安装,重启应用。

  2. 从 GitHub 装:

    dsh plugin add github:Xchcy/DSH-Reflex
    # 或者钉住版本
    dsh plugin add github:Xchcy/DSH-Reflex#v0.3.1
    

    也可以在 GUI 的 Plugins 页面粘贴仓库地址安装;首次从 git 装会询问是否允许构建,选允许。

  3. 从本地文件装:把 dist/dsh-link-menu-0.3.1.zip 解压到任意目录(例如 D:\dsh-plugins\dsh-link-menu),然后在 DSH 会话里执行:

    plugin_manager install_bundle
    target: D:\dsh-plugins\dsh-link-menu
    

    target 必须是绝对路径;成功时 application 为 applied、warnings 为空数组。

无论哪种方式,装完都要完全退出再重新打开 DSH,右键菜单才会出现。

装完怎么确认它生效了

  1. 在 DSH 聊天里右键一个蓝色链接或文件引用(例如 ocs-config.json、https://…)。

  2. 应该弹出一个菜单,文件引用是 7 行:

    默认打开方式 · 打开方式… · 在文件管理器中打开 · 复制文件地址 · 复制文件名 · 复制文件内容 · 另存为…

  3. 点「默认打开方式」应该能打开文件;点「在文件管理器中打开」应该弹出并选中该文件。

  4. 点完右下角会有轻提示(「已用 VS Code 打开」/「已在资源管理器中显示」/「已复制」等)。

如果右键没有任何反应:多半是没重启,或插件没真正装进当前 profile(application 不是 applied)。把报错发给我或任意 AI,让它按上面的步骤重装。

功能 / Features

对象 / Target菜单项 / Menu items
网页链接(https://…、mailto:)复制链接地址 · 在默认浏览器中打开
文件引用(C:\…\file.txt、file:///…)默认打开方式 · 打开方式… · 在文件管理器中打开 · 复制文件地址 · 复制文件名 · 复制文件内容 · 另存为…
相对文件引用(如 src/main.ts)同上,按 DSH 工作区解析成绝对路径
  • 左键行为保持不变:链接照常在内置浏览器打开,文件引用照常定位。
  • 只在真正命中链接/文件引用时接管右键;普通文本(包括红色报错里的路径)仍是系统默认菜单。
  • 能识别消息里的文件卡片、变更文件列表行、带中文/空格的文件名,以及聊天上传的附件(不在工作区里也能解析)。
  • 菜单跟随主题变量(--dsw-*),浅色/深色主题都能用。

0.3.1 的改动 / What's new in 0.3.1

  • README 重写:新增「让 AI 帮你装」的复制即用提示词、装完自检步骤和常见问题,面向完全没装过插件的新手。
  • 版本号、打包产物和 Release 资产同步到 0.3.1;功能与 0.3.0 相同。

0.3.0 的改动 / What's new in 0.3.0

  • 文件菜单扩展到 7 行:新增 打开方式…(系统「选择应用」对话框)、复制文件内容、另存为…。
  • 「复制文件内容」走 Host 读取 UTF-8 文本:上限 2 MB,二进制文件(前 8 KB 含 NUL 字节)直接拒绝并提示,不会把乱码塞进剪贴板。
  • 「另存为…」弹系统保存对话框,把原文件复制到用户选的位置;取消时提示「已取消另存」。
  • 识别更准:支持文件卡片(data-presented-file 里的预览按钮标题)、变更文件列表行(data-review-file)、fileMention / fileCard 类名 chip,以及 打开 C:\a\b.txt 这种路径藏在标签后的写法。
  • 路径正则放宽到任意 Unicode 文件名(中文、空格、# 等),裸文件名会再到聊天附件目录里找一/两层。
  • /link-menu/resolve 新增 POST 形式({ path }),旧的 GET ?path= 保留。

0.2.0 的改动 / What's new in 0.2.0

  • 文件菜单固定为 4 行:默认打开方式 / 在文件管理器中打开 / 复制文件地址 / 复制文件名。
  • 「默认打开方式」直接打开:系统有关联应用时用关联应用;.json 等没有真实关联、但装了 VS Code 时直接进 VS Code,不再弹「选择打开方式」。
  • 「在文件管理器中打开」提速:Host 侧常驻一个预热好的 PowerShell 辅助进程,文件夹窗口已打开时直接激活(实测约 60–80ms),未打开时用 Shell.Application.Explore 新开窗口(约 1 秒,接近资源管理器本身的开窗耗时)。
  • 打开/定位后会把目标窗口提到前台(Windows 前台锁用 ALT 轻敲绕过)。
  • 所有平台行为:Windows 用 rundll32 / explorer / Shell.Application;macOS 用 open;Linux 用 xdg-open。

常见问题 / FAQ

右键没反应? 没重启,或没装进当前 profile。确认 plugin_manager install_bundle 返回 application: applied,然后完全退出 DSH 再打开。

菜单只有几行、或行的内容和 README 不一样? 装的是旧版本。用上面的「让 AI 帮你装」重装最新版(0.3.1)。

「默认打开方式」弹出了「选择一个应用」? 说明系统里这个扩展名没有真实默认应用。可以在对话框里选一次并勾选「始终使用」,之后就会直接打开;不想每次选,用「打开方式…」或直接装 VS Code(插件会自动用它打开 .json 这类文件)。

「在文件管理器中打开」第一次有点慢? 正常:同文件夹窗口已经开着时约 60–80ms,没开着时要等资源管理器自己建窗口,约 1 秒。

市场里搜不到? 市场 PR 可能还在排队合并(https://github.com/awesome-dsh-plugin/awesome-dsh-plugin/pull/12303)。这不影响使用,按「从 GitHub 装」或「从本地文件装」即可。

配置 / Configuration

消息里的相对路径(src/theme.json、manifest.json、background.js:12)会按 DSH 的所有工作区目录依次尝试解析,所以从其他工作区的对话里右键文件也能正常打开;workspaceRoot 只是额外优先尝试的目录,可留空:

# cordis.patch.yml
- insert:
    - id: link-menu
      name: dsh-link-menu
      config:
        workspaceRoot: 'C:\Users\me\Documents\my-workspace'   # 可选

解析顺序:DSH 工作区列表(新工作区在前)→ workspaceRoot → workingDirectory.defaultDirectory → Host 进程当前目录。

卸载:用 plugin_manager 移除该 bundle,或在 profile 的 cordis.patch.yml 里删掉 link-menu 条目。

安全边界 / Safety

  • 只处理 http(s)、mailto: 链接与真实存在的本地文件;其他目标不弹菜单,也不发给 Host。
  • Host 端用参数数组启动系统打开方式与保存对话框,不经过 shell,不拼接命令字符串。
  • 「复制文件内容」会在 Host 端读取该文本文件(上限 2 MB、二进制拒绝),只用于剪贴板;「另存为…」把文件复制到用户在系统对话框里选的位置。除此之外插件不读取文件内容。

兼容性 / Compatibility

插件依赖 DSH 客户端的两处实现细节:

  1. 消息内链接/文件引用带 fileLink 类名(外链是 <a>,文件引用是 <button>,文件引用的 title 是绝对路径,另有 fileMention / fileCard chip、data-presented-file 卡片、data-review-file 变更行);
  2. Host 侧可用 webServer、workingDirectory 与 workspaceRegistry 服务。

测试于 2026-11 的 DSH 桌面版。DSH 大版本更新后若类名或槽位命名变化,可能需要在 client.js / index.js 中同步调整。

开发 / Development

包结构:

index.js           Host 半边:/link-menu/open(打开/定位)、/link-menu/resolve(跨工作区解析路径)、/link-menu/info(解析根目录与 VS Code 探测)、/link-menu/read(读文本内容)、/link-menu/save-as(系统另存对话框)
client.js          浏览器半边:捕获右键、识别链接/文件、绘制菜单
locale/*.json      插件名称与描述(plugin_manager 展示用)
cordis.patch.yml   挂载配置
build.mjs          打包脚本,生成 dist/dsh-link-menu-<version>.zip
test/host-routes.mjs  Host 路由冒烟测试,只测拒绝路径,不启动任何应用/对话框
market/            插件市场(awesome-dsh-plugin)的收录条目
scripts/publish-market.mjs  提交收录条目并开 PR 的脚本

改动后先查语法:

node --check index.js
node --check client.js
node test/host-routes.mjs

Host 半边改动可在 DSH 里 plugin_manager set_plugin(include:link-menu 关→开)热重载;client 半边改动需要重启应用。

发版:改 package.json 的 version,再打包(dist/ 已被 .gitignore 忽略):

node build.mjs                 # dist/dsh-link-menu-<version>.zip
npm pack --pack-destination dist

Release 上要传的 tarball 资产名固定为 dsh-link-menu.tgz(不带版本号),市场条目用 releases/latest/download/dsh-link-menu.tgz 指向它;换了版本号就重新打一次、覆盖同名资产。

市场收录:market/Xchcy__DSH-Reflex.yml 是提交给 awesome-dsh-plugin 的唯一条目文件;用脚本提交(仓库创建满 1 天后才会过 CI):

node scripts/publish-market.mjs --dry-run   # 先看会做什么
node scripts/publish-market.mjs             # fork + 提交条目 + 开 PR

License

MIT

Comments

Loading…

From the same category

awesome-dsh-plugin

by awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Development & Infrastructure

★ 23.4k

CC0-1.0

Python

Nov 6, 2026

Index only — not installable

by 0xsline

DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.

Development & Infrastructure

★ 1.3k

CC0-1.0

Python

Nov 6, 2026

Index only — not installable

by uumit-ai

Open dsh web from your phone or another computer through a UUMit account, without running your own server or installing another program: a built-in tunnel client connects to UUMit's hosted tunnel, and

Tools & CapabilitiesDevelopment & InfrastructureTerminal & ClientsManifest valid

★ 499

↓ 268/wk

MIT

JavaScript

Oct 21, 2026

dsh plugin --profile web add @uumit-ai/dsh-uumit-remote

by Yuuyuko-uu

DSH 鱼的记忆:给会话一份会淡忘的长期记忆,每条都带时间

Development & InfrastructureMemory & ContextSessions & MessagesManifest valid

★ 491

MIT

JavaScript

Nov 4, 2026

dsh plugin --profile web add dsh-fish-memory

by SAOS-3624

Scene-aware storyboard for DeepSeek Harness: 9-16 numbered cells with timestamps + transcript + an audio envelope, packed into ONE image (384 tokens). Two tools: video_storyboard and video_zoom.

Tools & CapabilitiesVision & MultimodalDevelopment & InfrastructureManifest valid

★ 453

↓ 17k/wk

MIT

JavaScript

Nov 6, 2026

dsh plugin --profile web add dsh-video-storyboard

by woniuniuniu

DeepSeek Harness 自媒体工作台插件:一句话记灵感,一键生成脚本、封面、配图和分镜

Development & InfrastructureManifest valid

★ 367

↓ 1.2k/wk

MIT

JavaScript

Nov 6, 2026

dsh plugin --profile web add dsh-media-desk