DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
R

dsh-rightclick-paste

Rightclick Paste

右键粘贴:在 DSH 输入框内右键,直接把剪贴板文本追加进当前会话草稿,像 cmd / PowerShell 一样。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:Eureka-KK/dsh-rightclick-paste#020d6434484a28ecb00e3dff730468e5134b5140
README兼容性版本

兼容性与来源证明

Rightclick Paste 以 dsh-rightclick-paste 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.1.0stable
2026/10/23

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-rightclick-paste

DeepSeek Harness 插件:在输入框区域内右键,直接把剪贴板文本追加进当前会话草稿——像 cmd / PowerShell 的「粘贴」那样,不弹菜单。

行为

操作结果
在输入框区域内右键不弹任何菜单,剪贴板文本直接追加到草稿末尾
在输入框以外右键完全不接管,DSH 原生菜单照旧(复制、检查元素等)
Shift + 右键(输入框内)放行原生菜单,作为逃生口
点在内层节点 / 卡片空白处同样算「输入框区域内」
点在输入卡片里的按钮上不接管,走原生菜单
  • 剪贴板来源不限:DSH 里复制的、别的软件复制的、纯文本,都能粘。
  • 追加规则:草稿为空或以换行结尾时直接拼;否则先补一个换行再拼。剪贴板内容一字不改。
  • 超长保护:单次最多粘 200 KB,超出部分截断并在控制台提示。
  • 与 dsh-quote-to-input 正交:那个插件负责「选中 → 引用」,本插件负责「右键 → 粘贴」,两者互不干预,本插件对前者零改动。

安装 / 卸载

# 安装:<插件目录> = 本仓库在你机器上的绝对路径(link 方式,改代码即时生效)
dsh plugin --profile desktop add link:<插件目录>

# 卸载
dsh plugin --profile desktop remove dsh-rightclick-paste

DSH 开着 HMR:改 profile 清单即热重组,不必重启 App,但需要刷新一次 GUI 才能加载新增的客户端模块。

验证

1. 无头验证(自动)

node verify-client.mjs

用假 DOM / 假 window / 假 navigator / 假 ctx 跑完整行为矩阵:bundle 协议、框内接管并写入正确文本、框外不接管、Shift 放行、剪贴板缺失或抛错不崩、超长截断、HMR 反复加载不叠监听器,以及一批内存纪律静态断言。退出码 0 = 全绿。

2. 真机验证(手动,一次)

  1. 安装后刷新 GUI(Ctrl+R)。
  2. 在别处复制一段文字,在输入框里右键 —— 应立即出现在草稿末尾,且不弹菜单。
  3. 在消息列表区域右键 —— 原生菜单照常弹出。
  4. Shift + 右键输入框 —— 原生菜单照常弹出。

内存设计

本插件按「零常驻」写:加载后除了一个 contextmenu 监听器之外,不占任何常驻内存。

  • 零 UI:不注册槽位、不 require('react')、不建任何 DOM,反馈只走 console。
  • 零定时器 / 零观察器:没有 setInterval、setTimeout、requestAnimationFrame、MutationObserver。
  • 单监听器 + 可卸载:唯一的全局监听器经 ctx.effect(...) 注册并返回 disposer。DSH 开启 HMR,缺 disposer 会导致每次热重载叠加一份监听器——这是真正会涨内存的地方,泄漏测试覆盖了它。
  • 零常驻状态:剪贴板文本与草稿快照只活在单次事件调用栈里,模块级没有任何可变变量。
  • 日志不含正文:只打长度({ chars: 1234 }),避免 DevTools 控制台历史强引用正文。
  • 200 KB 截断:草稿会经 setDraft → 状态机 → contenteditable → React state 复制多份,故设上限。

实现要点

  • 命中判定靠 DSH 自己的 DOM 锚点:[data-composer-input](Lexical 的 contenteditable 宿主)与 [data-composer-card](输入卡片)。命中不了就退让,绝不误接管。
  • 读剪贴板用 navigator.clipboard.readText()。桌面端 inside main.js 的 setPermissionCheckHandler / setPermissionRequestHandler 对非 media 权限一律放行,因此不会被权限拦;右键前必有 mousedown,transient activation 也在。
  • 写输入框复用官方唯一写路径 ctx.conversation.input.for(binding.ctx).setDraft(text)(全文替换语义,所以先读草稿再拼接)。
  • 压掉原生菜单靠渲染进程 preventDefault():Blink 只在 DOM contextmenu 未被取消时才向浏览器进程请求菜单,而 DSH 的菜单是主进程硬编码的(app.asar 内 lib/main.js 的 webContents.on('context-menu')),插件无法扩展它。
  • 监听器挂在冒泡阶段并先查 event.defaultPrevented,页面上别的组件仍有机会先消费事件。

边界与风险

  • 若 DSH 将来改掉 data-composer-input / data-composer-card 锚点,插件会静默失效(既不接管也不报错),不会干扰原生菜单。用 verify-client.mjs 与新 GUI 一起回归即可。
  • 只处理文本(readText),不处理图片或富文本。