Boliban/dsh-enter-customizer 预览 preview

Boliban/dsh-enter-customizer

Plugin插件 Native原生 ⭐ 4 UI & Themes界面与主题

一个允许自定义输入模式的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,无需额外打包步骤,直接以工厂格式发布就能运行。插件会在发送失败时在输入栏上方显示自动消失的错误提示,提升使用体验。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • 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__ 工厂格式发布
← 上一个 Prev dsh-web-search-searxng 下一个 Next agent-mcp →