接管聊天输入框的回车等快捷键,每个快捷键的行为都能单独配置。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Boliban/dsh-enter-customizer
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH(DeepSeek Harness)Web 插件:接管聊天输入框的系统输入快捷键,为每个快捷键独立配置行为。配置通过 DSH 用户设置持久化保存。
功能
- 接管系统输入快捷键:
Enter、Ctrl+Enter、Shift+Enter、Alt+Enter和右下角发送按钮 - 每个快捷键可独立选择行为:
- 发送消息:空闲立即发送;忙碌时自动排队,回合结束后发送
- 繁忙时插入消息:空闲立即发送;忙碌时进入系统队列(与系统内置的"在繁忙时插入消息"机制完全一致,可在输入框上方的队列栏查看、编辑、引导入回合)
- 换行:插入换行,不发送
- 无作用:按键无任何效果(也不触发系统默认行为)
- 设置持久化:配置写入用户设置文档(
~/.dsh/settings.yaml的dsh-enter-customizer段),重启不丢失;系统设置页「输入快捷键」直接编辑 - 发送失败提示:失败时在输入栏正上方浮动显示错误提示(3.2 秒后自动消失)
- 安全护栏:中文输入法组合输入(IME)、斜杠命令菜单/弹层打开、机器忙碌(提交中)、含 @引用/图片的草稿、空草稿、停止按钮等场景自动放行给系统默认处理
截图
设置界面
设置 → 输入快捷键,每个快捷键独立配置行为:

默认配置
| 快捷键 | 默认行为 |
|---|---|
| Enter | 发送消息 |
| Ctrl + Enter | 繁忙时插入消息 |
| Shift + Enter | 换行 |
| Alt + Enter | 发送消息 |
| 发送按钮 | 发送消息 |
安装
dsh plugin --profile web add github:Boliban/dsh-enter-customizer
卸载与更新
dsh plugin --profile web update dsh-enter-customizer # 更新到最新
dsh plugin --profile web remove dsh-enter-customizer # 卸载
文件结构
├── package.json # dsh.client(Web 插件)+ dsh.bundle(profile patch)声明;deepseek-ai/* 为 peerDependencies
├── cordis.patch.yml # bundle patch:插入插件行
├── pnpm-lock.yaml # 插件依赖快照(link 安装时 Node 从项目目录解析)
├── lib/
│ ├── index.js # Host 半部:注册持久化 settings 命名空间
│ └── client.js # Client 半部:快捷键拦截 + 设置页 + 失败提示
└── assets/
└── settings.png # 设置界面截图
实现要点
- 快捷键拦截:在
conversation.input.dock挂载组件,使用 document 级 capture 监听keydown/click,仅当事件目标位于[data-composer-card]内时按配置处理;preventDefault+stopPropagation覆盖系统默认行为 - 发送/繁忙时插入均通过
session.prompt(content, 'queue')提交——与系统内置队列完全同一通道,消息显示在系统队列栏 - 换行通过 DOM 写入 +
inputActions.setDraft()立即同步,文本区即时刷新 - 持久化:Host 半部
settings.register注册dsh-enter-customizer命名空间(schemastery schema),Client 半部经settingsScope.bind读写(scope.set逐字段写入,scope.subscribe同步外部变更) - Client bundle 为纯 JS(仅依赖
react),无需打包步骤,直接以__ModuleLoader__工厂格式发布
链接
同类插件
Minglink/dsh-infinite-gen-4★ 2121
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
liangmianya/dsh-synapse★ 447
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
ranxianglei/billion-context★ 361
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
Nwflower/dsh-chat-import★ 205
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Totoro-qaq/dsh-plugin-bridge★ 165
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
Anionex/dsh-turn-rewind★ 120
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。