DeepSeek Harness 插件

dsh-custom-enter-key

Standalone composer plugin that configures Enter, Ctrl/Cmd+Enter, and Shift+Enter independently (newline, queue send, or interject send) and replaces the built-in busy-Enter preference(英文原文)

跳到安装方式

来源信息

GitHub 仓库
aberter0x3f/dsh-custom-enter-key
最近更新
2026年8月14日
分类
工具与能力
GitHub stars
1
载体类型
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/aberter0x3f/dsh-custom-enter-key
插件名:dsh-custom-enter-key
作者:aberter0x3f

检查来源文件

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

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

dsh-custom-enter-key

English | 中文

@dsh-external/dsh-custom-enter-key 是 DeepSeek Harness Web GUI 的独立插件.它可以分别配置 Enter、Ctrl/Cmd+Enter、Shift+Enter 三个提交按键的行为(换行 / 排队发送 / 插话发送),取代内置的「繁忙时 Enter 键行为」.

功能

内置的 ui-conversation.busyEnter 偏好只提供二元选择:智能体繁忙时普通 Enter 排队或插话,Ctrl/Cmd+Enter 永远绑定为另一行为.本插件把每个按键独立出来:Enter、Ctrl/Cmd+Enter、Shift+Enter 都可分别选择换行、排队发送、插话发送中的任意一项.

默认值与内置行为一致(Enter 排队、Ctrl/Cmd+Enter 插话、Shift+Enter 换行).启用后不修改任何按键即等效.之后在「设置 → 通用设置 → 提交按键」中逐个修改.配置保存在浏览器 localStorage(键 dsh.customEnterKey).插件不引入新的模型可见输入,只把按键手势映射到输入栏既有的 queue/steer 提交流程.

如何取代内置偏好

插件挂载后,在文档捕获阶段拦截三个 Enter 按键(先于 React 委托处理器),并驱动与内置输入栏同一个公开输入 facade(ctx.conversation.input).因此内置 busyEnter 偏好对这三个按键失效.它的设置行保留,但不再起作用.独立插件无法移除其他插件的行.

  • 换行:只停止事件传播而不阻止默认行为,浏览器原生插入换行、光标不动,输入状态机经正常变更路径收下.Shift+Enter 配置为换行时不拦截(输入栏本就原生换行).
  • 排队发送 / 插话发送:阻止默认行为并停止事件传播后调用 input.submit('queue' | 'steer'):与输入栏相同的机器路径,包含斜杠命令仲裁、引用 chip 与草稿清空.
  • 插话降级:会话空闲或已寻址 subagent(其传输不支持 steering)时,steer 自动降级为 queue,与内置行为一致.
  • 空草稿插话:配置为插话的按键在草稿为空时,经公开的 conversation.updateQueue(itemId, { kind: 'steer' }) 按 FIFO 把仍在排队的消息全部插话进运行中的轮次.
  • 放行场景:IME 组合输入、斜杠菜单([role="listbox"])打开、无会话的 inert 输入框(工作区选择器)都保持原生行为.

安装

插件是独立的 dsh bundle 插件,用 dsh plugin 命令安装到 profile 中.安装前先构建:

1. 构建插件:

# 安装构建工具
pnpm install

# 生成类型检查路径表,DSH_REPO 指向 dsh 仓库
DSH_REPO=/path/to/deepseek-harness node scripts/gen-paths.mjs > tsconfig.paths.json

# 构建 lib/index.js 与 lib/client.js
pnpm build

2. 安装到你的 dsh profile:

dsh plugin --profile web add /path/to/dsh-custom-enter-key

3. 重启 dsh web

插件会出现在「设置 → 插件」面板中,可在此停用或启用.

开发

插件自带独立的 Biome 工具链,不依赖顶层仓库的 lint 规则.

# 安装构建工具
pnpm install

# harness 构建后重新生成类型检查路径表
DSH_REPO=/path/to/deepseek-harness node scripts/gen-paths.mjs > tsconfig.paths.json

# 类型检查(对照 harness 的 lib/types 产物)
pnpm typecheck

# 代码检查与格式
pnpm lint
pnpm format

# 纯逻辑冒烟(配置往返、按键映射、插话降级)
pnpm smoke

# 重新构建
pnpm build

结构

  • src/index.ts:节点侧,内容为空.所有状态与行为都在浏览器侧.
  • src/client/config.ts:配置类型、默认值、localStorage 读写,无运行时依赖,可直接测试.
  • src/client/store.ts:设置行与拦截器共享的响应式配置 store.
  • src/client/keys.ts:文档级按键拦截与投递决策,纯决策函数已导出.
  • src/client/SubmitKeysRow.tsx:通用设置里的「提交按键」行组.
  • src/client/apply.ts:浏览器插件入口,注册设置行、拦截器与词典.
  • cordis.patch.yml:挂载插件行的 bundle patch.
  • pnpm-workspace.yaml:关闭自动安装 peer 依赖.

已知限制

  • 内置行仍显示:独立插件不能移除其他插件注册的设置行.「繁忙时 Enter 键行为」行保留,但不再影响被拦截的三个按键.
  • 默认差异:若在启用本插件前把内置 busyEnter 设为「插话发送」,启用后普通 Enter 回到本插件默认(排队).插件配置始终优先.

许可证

依据 Apache License 2.0 授权,完整文本见 LICENSE 文件.版权声明:Copyright 2026 Aberter0x3F.