Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
界面增强 #composer#deepseek-harness#dsh#dsh-plugin#keyboard-shortcuts#plugin

dsh-enter-lock

DeepSeek Harness 插件:锁定网页聊天输入框的 Enter 发送。可通过锁按钮或 Ctrl+Alt+L 切换,防止输入或编辑长提示词时误发;解锁后可发送。兼容输入法且按会话隔离。

aifireforall @aifireforall ⬇ 1 ★ 4 main

安装

dsh plugin --profile web add github:aifireforall/dsh-enter-lock
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

DeepSeek Harness 插件:锁定网页聊天输入框的 Enter 发送。可通过锁按钮或 Ctrl+Alt+L 切换,防止输入或编辑长提示词时误发;解锁后可发送。兼容输入法且按会话隔离。

该插件未提供要点说明,请参考仓库 README。

composerdeepseek-harnessdshdsh-pluginkeyboard-shortcutsplugin
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/aifireforall/dsh-enter-lock
许可证MIT
主要语言main
下载量1
GitHub 星标4
最近推送2026-08-18
收录日期2026-09-19
分类界面增强

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-enter-lock

中文 | [English](README.en.md)

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 永远放行。

## 状态样式说明

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

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

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

## 可以防止什么行为

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

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

同时保留这些正常行为:

- `Shift+Enter` 仍然插入换行;
- 输入法候选词确认的 Enter 不受影响;
- 输入框内容的编辑、复制、粘贴、附件操作不受影响;
- 鼠标点击官方发送按钮仍然可以发送——锁只防键盘误触。

## 快捷键(后续待开发)

键盘快捷键目前列为**后续待开发工作**。当前版本请使用输入框旁的锁按钮进行锁定和解锁;待快捷键在 Chrome / Edge 等环境完成兼容性验证后,再在后续版本中正式开放。

## 环境要求

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

## 安装

### 方式一:从本仓库 GitHub 安装

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

也可以显式使用 Git URL:

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

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

```sh
dsh plugin --profile web add 'github:AIFireForAll/dsh-enter-lock#'
```

### 方式二:从本地目录安装

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

### 验证安装

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

应能看到类似输出:

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

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

## 使用方法

1. 启动 DeepSeek Harness Web:

   ```sh
   dsh web
   ```

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

3. 锁定 / 解锁方式:

   - 点击输入框右下角的锁形按钮。

4. 锁定状态下:

   - 普通 `Enter`:不发送。
   - `Ctrl+Enter` / `Cmd+Enter`:不发送。
   - `Shift+Enter`:仍然插入换行。
   - 输入法组合期间的 Enter:正常用于候选词确认,不受影响。
   - 点击官方发送按钮:仍可发送,锁只防键盘误触。

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

## 配置

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

## 功能与限制

- 锁定状态只保存在浏览器内存中,不写 `settings.yaml`,不发起网络请求。
- 插件使用官方 `conversation.input.right` 槽位,不替换官方 composer。
- 不干扰其他输入框、按钮、浏览器快捷键或全局快捷键。

## 疑难排查

### 输入框旁边看不到锁按钮

1. 确认插件已挂载:

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

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

### 快捷键无法使用

快捷键功能当前尚未开放,属于后续待开发工作。请使用输入框旁的锁按钮操作。锁状态按会话保存:切换到新会话后,新会话默认是解锁状态。

### 锁定后仍然“发送”了

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

## 卸载

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

## 开发与构建

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

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

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

## 目录结构

```text
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)

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。