DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

File Menu — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
F

@z1995418/dsh-file-menu

File Menu

适用于 DeepSeek Harness Web UI 的 Codex 风格右键菜单:对文本执行复制/剪切/粘贴/全选,对文件标签复制路径并在文件管理器中显示,对链接进行复制或打开。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:dreammaker2016/dsh-file-menu#f9a2872ad4b3018ac249da40e2b208d507131be6
README兼容性版本

兼容性与来源证明

File Menu 以 @z1995418/dsh-file-menu 发布,当前版本为 0.8.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/21

版本

0.8.1stable
2026/9/21

相关插件

正在加载相关插件…

最新版
0.8.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/21
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包

README

dsh-file-menu

Right-click menus for the DeepSeek Harness (DSH) Web UI.

The DSH Web client ships no contextmenu handler, so right-clicking inside the app does nothing useful — no copy, no paste, no "open file location". This plugin adds a Codex-style menu that fits whatever you clicked.

English | 简体中文

Features

The menu is built from the element under the cursor:

Right-click targetMenu rows
Selected textCopy
A paragraph (no selection)Copy this paragraph
Input box / editable areaCut · Copy · Paste · Select all
A file reference (delivered-file card, produced-file chip, inline file mention)Copy path · Reveal in file manager · Open with default app
A linkCopy link address · Open in browser
Alt + right-clickDiagnostics: copy element info
  • Copy goes through the host route /file-menu/clipboard (Electron main-process clipboard, falling back to PowerShell Set-Clipboard) instead of relying on the renderer's clipboard permission. If the host route is unavailable, the client falls back to document.execCommand('copy').
  • Reveal in file manager selects the file where the OS supports it — Windows Explorer /select, macOS Finder open -R. On Linux xdg-open has no "select" concept, so the containing directory is opened instead. If the host route is missing entirely, the client falls back to DSH's own /open-in-app/open.
  • File paths are read from the element's title, data-path, data-file-path, dataset.*path, the element's own text (DSH's tool-row file links carry no attribute at all — the path is only in the text), or a selected absolute path. DSH renders in-workspace references relative to the session workspace (dsh-plugins/x/README.md, @docs/plan.md), so relative candidates are resolved against the current session's workspace root, which the client half reads from DSH's sessions service (list.getSnapshot() → byId[current].cwd). ~/... is expanded by the host half. When no root is available the file rows are simply not shown rather than guessed.

Install

From npm:

dsh plugin --profile web add @z1995418/dsh-file-menu

From source:

dsh plugin --profile web add github:dreammaker2016/dsh-file-menu

Every release also carries a prebuilt tarball (dsh-file-menu.tgz), installable with dsh plugin --profile web add <tarball-url>.

Use the profile you actually run (web for the Web client, your own profile name for DSH Desktop). Restart DSH after installing.

Uninstall

dsh plugin --profile web remove dsh-file-menu

Limits

  • A relative path that appears inside running prose is recognized only when it is a single token (no whitespace), contains a path separator, and its last segment carries a file extension. Paths with spaces, bare basenames, and extension-less directories are skipped — that is what keeps ordinary sentences ("copy/paste this") from growing file actions.
  • Relative candidates need the session workspace root. If DSH's sessions service is unavailable, the file rows are hidden instead of guessed.
  • The two halves version independently: the client (lib/client.js) is versioned with the package, while the host half reports its own version from GET /file-menu/status.

How it works

  • Host half lib/index.js — a webServer prefix route /file-menu serving ping, status, hello, menu, diag, clipboard, reveal and open. reveal/open take { path, base }, resolve absolute paths directly, ~/... against the home directory and relative paths against base (the session workspace root), then act only on paths that exist.
  • Client half lib/client.js — a capture-phase contextmenu handler plus a plain-DOM menu (no React dependency), with pointerdown + elementFromPoint activation so an upstream stopPropagation cannot swallow the click.
  • cordis.patch.yml — the single bundle row that registers the host half. The client bundle is served automatically because the host entry declares dsh.client.

Maintainer notes — HMR pitfalls, event-swallowing, debugging without a browser console — are in docs/DEVELOPMENT.md.

License

MIT