DeepSeek Harness 插件

dsh-enter-lock

DeepSeek Harness plugin that locks the web chat composer Enter-send. Toggle with a lock button or Ctrl+Alt+L to prevent accidental sends while typing or editing long prompts; unlock to send. IME-safe(英文原文)

跳到安装方式

来源信息

GitHub 仓库
AIFireForAll/dsh-enter-lock
最近更新
2026年8月20日
分类
安全与权限
GitHub stars
4
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/AIFireForAll/dsh-enter-lock
插件名:dsh-enter-lock
作者:AIFireForAll

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

dsh-enter-lock

中文 | English

A DeepSeek Harness plugin that adds an Enter-send lock to the web chat composer.

DeepSeek Harness Web 插件:给聊天输入框增加一个 Enter 发送锁

  • 点击输入框旁的锁形按钮,即可锁定/解锁。
  • 锁定后仍然可以正常编辑输入框中的内容,但按 Enter 不会发送消息。
  • 再次点击按钮即可解锁,恢复 Enter 发送。

功能起因

DeepSeek Harness Web 的输入框默认在按下 Enter 时立即发送消息。以下场景很容易误触:

  • 使用中文输入法时,按 Enter 只是为了确认候选词,但消息被直接发送;
  • 编辑长提示词、代码或结构化文本时,想继续编辑,却误按 Enter;
  • 输入框中的内容还没有编辑完,就意外进入了发送流程。

该插件补上了“发送前先解锁”这一层保护。

聚焦的功能

  • 锁形按钮:注册在官方 conversation.input.right 槽位,显示在输入框右下角、发送按钮附近;锁定状态为醒目的红色填充。
  • 按会话隔离:每个会话独立保存锁状态,切换会话互不影响。
  • 不替换官方输入框:只拦截键盘提交路径,保留官方输入状态机、命令菜单、队列、附件等能力。
  • 中文输入法友好:IME 组合期间的 Enter 永远放行。
  • 快捷键Ctrl+Shift+K(Windows / Linux)/ Cmd+Shift+K(macOS)锁定/解锁,焦点需位于输入框卡片内。
  • 与 at file(@ 文件候选)兼容:锁定状态下打开 @ 文件/Session 候选菜单时,按 Enter 仍可正常确认选中的文件/会话——锁只拦截真正会发送的 Enter,不干扰候选选择。

状态样式说明

状态锁图标样式含义
解锁(普通状态)灰色描边图标当前 Enter 可正常发送消息
锁定(关锁状态)红色填充 + 白色锁图标当前 Enter 无法发送消息

鼠标悬浮到锁图标上时,tooltip 会显示当前状态的提示:

  • 解锁:已解锁,当前 Enter 可正常发送消息
  • 锁定:已锁定,当前 Enter 无法发送消息

可以防止什么行为

锁定状态下,以下键盘发送行为都会被阻止:

  • 普通 Enter 发送;
  • Ctrl+Enter / Cmd+Enter 发送;
  • 其他会触发官方提交路径的 Enter 组合;
  • 尚未编辑完成的输入内容被意外提交。

同时保留这些正常行为:

  • Shift+Enter 仍然插入换行;
  • 输入法候选词确认的 Enter 不受影响;
  • @ 文件/Session 候选菜单(at file)、/ 命令菜单打开时,Enter 确认候选不受影响;
  • 输入框内容的编辑、复制、粘贴、附件操作不受影响;
  • 鼠标点击官方发送按钮仍然可以发送——锁只防键盘误触。

快捷键

  • Windows / LinuxCtrl+Shift+K
  • macOSCmd+Shift+K

仅在焦点位于聊天输入框卡片内时生效:处理器需要从当前焦点元素所在的输入框卡片解析会话 id,焦点在聊天区或侧边栏时不会切换。IME 组合期间不触发,长按的自动重复(key repeat)被忽略。

环境要求

  • DeepSeek Harness 0.1.0-rc.6 或更新版本;
  • web profile;
  • 基于 Chromium 的现代浏览器(Chrome / Edge 均可)。

安装

方式一:从本仓库 GitHub 安装

dsh plugin --profile web add github:AIFireForAll/dsh-enter-lock

也可以显式使用 Git URL:

dsh plugin --profile web add https://github.com/AIFireForAll/dsh-enter-lock.git

建议锁定到某个 commit 以保证可重复安装:

dsh plugin --profile web add 'github:AIFireForAll/dsh-enter-lock#<commit-sha>'

方式二:从本地目录安装

git clone https://github.com/AIFireForAll/dsh-enter-lock.git
dsh plugin --profile web add ./dsh-enter-lock

验证安装

dsh --profile web --dump-config | grep dsh-enter-lock

应能看到类似输出:

# == dsh-enter-lock
- id: dsh-enter-lock
  name: dsh-enter-lock

安装完成后重启 dsh web 并刷新页面。

使用方法

1. 启动 DeepSeek Harness Web:

``sh dsh web ``

2. 在聊天输入框右下角、模型选择器和发送按钮附近找到锁形按钮。

3. 锁定 / 解锁方式:

- 点击输入框右下角的锁形按钮。 - 快捷键:Ctrl+Shift+K(Windows / Linux)或 Cmd+Shift+K(macOS),焦点需位于输入框卡片内。

4. 锁定状态下:

- 普通 Enter:不发送。 - Ctrl+Enter / Cmd+Enter:不发送。 - Shift+Enter:仍然插入换行。 - 输入法组合期间的 Enter:正常用于候选词确认,不受影响。 - @ 文件/Session 候选菜单(at file)、/ 命令菜单打开时:Enter 确认候选,不受影响。 - 点击官方发送按钮:仍可发送,锁只防键盘误触。

5. 锁状态按会话独立保存,刷新页面或重启后自动清除。

配置

插件默认零配置,不需要填写 API Key、设置项或 settings.yaml。锁状态仅保存在浏览器内存中。

功能与限制

  • 锁定状态只保存在浏览器内存中,不写 settings.yaml,不发起网络请求。
  • 插件使用官方 conversation.input.right 槽位,不替换官方 composer。
  • 锁定只拦截「真正会发送」的 Enter:候选菜单打开且已有高亮项时,Enter 归菜单用于确认候选,不做拦截。
  • 不干扰其他输入框、按钮、浏览器快捷键或全局快捷键。

疑难排查

输入框旁边看不到锁按钮

1. 确认插件已挂载:

```sh

dsh --profile web --dump-config | grep dsh-enter-lock

```

2. 重启 dsh web 并强制刷新页面(Ctrl+F5)。 3. 确认当前使用的是 web profile。

快捷键不生效

1. 确认焦点在聊天输入框卡片内(先点击输入框):处理器需要从焦点元素解析会话 id,焦点在聊天区或侧边栏时不会切换。 2. 确认使用的是 Ctrl+Shift+K(macOS 为 Cmd+Shift+K):旧版本的 Ctrl+Alt+L 组合在 Windows 输入法环境下会被系统消费,已不再使用。 3. IME 组合期间快捷键被有意忽略,先完成候选词确认再试。 4. 确认安装版本为 0.4.0 及以上(0.3.x 中快捷键被刻意禁用)。

锁定后仍然“发送”了

  • Shift+Enter 是换行,不是发送。
  • 鼠标点击官方发送按钮是刻意操作,锁不会阻止。
  • 如果输入框中的内容意外发送,请检查锁按钮是否显示为红色填充的锁定状态,以及是否使用了其他 Enter 组合键。

卸载

dsh plugin --profile web remove dsh-enter-lock

开发与构建

安装本仓库不需要构建:lib/ 已提交预构建产物,且没有 prepare / postinstall 脚本。

如需修改源码后重新生成构建产物:

npm run build   # 生成 lib/index.js 与 lib/client.js
npm run check   # 结构检查

目录结构

dsh-enter-lock/
├── package.json          # dsh.bundle + dsh.client 插件声明
├── cordis.patch.yml      # profile bundle patch
├── src/
│   ├── index.js          # Host 半部(无依赖 no-op)
│   └── client.js         # Web 半部:按钮与 Enter 拦截
├── lib/                  # 构建产物
├── scripts/
│   ├── build.mjs
│   └── check.mjs
├── README.md
├── README.en.md
└── LICENSE

License

[MIT](./LICENSE)