Boliban/dsh-enter-customizer
一个允许自定义输入模式的DSH插件
Project Overview项目介绍
This is a native web plugin built exclusively for DeepSeek Harness (DSH) that overrides the default behavior of chat input shortcuts. It lets users assign custom behaviors to each of the following inputs: Enter, Ctrl+Enter, Shift+Enter, Alt+Enter, and the send button in the lower right corner of the input dock. All configuration changes are saved directly to the DSH user settings page and persisted to the local settings file ~/.dsh/settings.yaml, so configurations survive restarts. To install the plugin, users can run a single CLI command dsh plugin --profile web add github:Boliban/dsh-enter-customizer through the DSH command line interface. Updates and uninstalls are also handled via simple DSH CLI commands, making maintenance straightforward.
Users can choose from four available behaviors for each shortcut: send message immediately, insert message when the model is busy, insert a newline without sending, or disable the shortcut entirely. The default configuration matches common user habits: Enter sends, Shift+Enter inserts a newline, and Ctrl+Enter inserts when busy. The plugin automatically falls back to system default behavior in specific scenarios, including IME composition, open command palettes, when the model is processing a request, and for empty or unsaved drafts, so it does not interfere with core DSH functions. If a send request fails, the plugin shows a floating error notification above the input bar that auto-closes after 3.2 seconds.
The plugin is split into two parts: a host side that registers the persistent settings namespace, and a client side that handles shortcut interception, settings UI, and error notifications. The client bundle is pure JavaScript that only depends on React, so no extra build step is required after installation. It uses the same queue API as DSH’s built-in busy insertion feature, so queued messages appear in the system queue bar where users can edit or reorder them before they are sent. The plugin follows DSH’s native plugin specification with a valid bundle manifest and cordis patch configuration for seamless integration with the DSH web client.
这是一个专为 DeepSeek Harness(DSH)开发的原生 Web 插件,核心功能是接管 DSH 聊天输入框的系统输入快捷键,支持为 Enter、Ctrl+Enter、Shift+Enter、Alt+Enter 以及右下角发送按钮分别配置独立行为。用户可以在 DSH 的系统设置页直接编辑配置,所有配置会持久化保存在用户设置文件中,重启 DSH 也不会丢失配置信息。
该插件支持四种可配置的快捷键行为,分别是发送消息、繁忙时插入消息、换行、无作用,可满足不同用户的输入习惯。比如习惯用 Enter 发送消息的用户可以将 Enter 设为发送,Shift+Enter 设为换行,贴合日常输入节奏。中文输入法组合输入、斜杠命令菜单打开等特殊场景下,插件会自动放行交给系统默认处理,避免干扰正常操作。
安装可通过 DSH CLI 执行命令 dsh plugin --profile web add github:Boliban/dsh-enter-customizer 完成,更新和卸载也可通过对应 CLI 命令操作。插件客户端部分为纯 JavaScript,仅依赖 React,无需额外打包步骤,直接以工厂格式发布就能运行。插件会在发送失败时在输入栏上方显示自动消失的错误提示,提升使用体验。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-enter-customizer(Boliban/dsh-enter-customizer)
仓库:https://github.com/Boliban/dsh-enter-customizer
本站详情页:https://www.yhbd.top/plugins/boliban-dsh-enter-customizer/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证未声明 · ⭐ 4 · 最近提交 2026-08-15 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- No license declared - all rights reserved by default; ask the author before commercial use or redistribution未声明开源许可证 —— 默认「保留所有权利」,商用或再分发前先问作者
- Only 4 stars - very few users, little community feedback星标只有 4,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:Boliban/dsh-enter-customizer
把 Boliban/dsh-enter-customizer 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
DSH Enter Customizer
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__工厂格式发布
Small-tailqwq/dsh-deep-whale
d-dev0101/open-sea-skin
kingOfSoySauce/dsh-liang-skin
RevolutionLA/dsh-dream-skin
Fishquito7/dsh-skill-mcp-panel
01Virex/dsh-status-rotator
ymh0000123/dsh-theme-endfield
SLin-code/dsh-custom-skin