DeepSeek Harness 的 Codex 风格鼠标右键菜单 插件(纯 dsh 插件,不改官方代码、不依赖桌面壳)。
在 dsh Web 界面中注入全局右键菜单层,右键消息 / 代码块 / 选中文本即可弹出 Codex 风格菜单:
| 场景 | 菜单项 |
|---|---|
| 消息行 | 复制 / 复制为 Markdown / 解释这段内容 / 在此处插入新消息… |
| 代码块 | 复制 / 复制为 Markdown |
| 选中文本 | 复制 / 解释这段内容 |
# 1. 在你的 dsh profile 目录安装(web profile 为例)
cd ~/.dsh/profiles/web
pnpm add dsh-codex-menu
# 2. 在 cordis.patch.yml 追加一行插件注册
# - insert:
# - id: codex-menu
# name: dsh-codex-menu
# 3. 重启 dsh(或刷新插件)- 右键消息:复制 / 复制为 Markdown / 解释(把消息发给模型解释)/ 插入(把消息作为新消息发送)
- 右键代码块:复制 / 复制为 Markdown
- 拖选文本后右键:复制 / 解释
- 浏览器端 bundle(
dsh.client声明 +window.__ModuleLoader__契约) - capture 阶段监听
document.contextmenu,按目标场景(消息行[data-chat-anchor-key]/pre, code/ 选区)分发菜单 - 动作基于公开服务:
writeClipboard(ui-primitives)、ctx.conversation.send(IConversation) - 菜单原生 DOM 渲染(独立于官方 React 树),自动翻转避免溢出,Esc / 点击外部关闭
- 「插入新消息」为 Codex 语义的近似:dsh 会话表面(SurfaceOp)不支持任意位置插入,当前实现将消息作为新消息发送
- 复制为 Markdown 暂取 DOM 文本(markdown 源不在插件可访问范围内)
pnpm install
pnpm run build # tsc + tsdown → lib/index.js + lib/client.jsMIT