DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Keyboard Manager — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
K

dsh-keyboard-manager

Keyboard Manager

DSH Web UI 的键盘快捷键:Ctrl+Q 左侧边栏,Ctrl+E 右侧边栏(dsh-better-sidebar 插件或原生 details 回退),Ctrl+S 设置模态框。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Aafff623/dsh-keyboard-manager#6e4d700ca56445a11d6c185efe9332c3680ad4d7
README兼容性版本

兼容性与来源证明

Keyboard Manager 以 dsh-keyboard-manager 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/9

版本

0.2.0stable
2026/9/9

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Pet@linxin666/dsh-pet适用于 dsh Web GUI 的多宠物伴侣插件:由注册表驱动的浮动宠物,可响应模型活动,支持为每只宠物命名、抚摸/喂食互动以及亲密度评分

README

English · 简体中文

dsh-keyboard-manager pixel-art control room routing Ctrl+Q, Ctrl+E, and Ctrl+S to native or plugin surfaces.

Keyboard shortcuts for the DeepSeek Harness (dsh) Web UI — three focused chords behind one listener, wired to whichever right-side surface is actually present.

Shortcuts

ChordAction
Ctrl+Qtoggle the built-in left sidebar
Ctrl+Etoggle the RIGHT sidebar — the dsh-better-sidebar panel (Files / git / terminal / browser…) when that plugin is loaded, otherwise the native conversation details panel
Ctrl+Sopen / close the Settings modal

Rules that keep the bindings predictable:

  • Strict chords only. Plain Ctrl with no Cmd / Shift / Alt riders; Cmd variants stay with the browser or OS.
  • Never fights the page. IME composition, key auto-repeat, and events another listener already consumed are left alone.
  • Ctrl+S yields inside dsh-better-sidebar. Its editor binds Ctrl/Cmd+S to save, so with focus inside that plugin's panel the chord passes through.
  • Ctrl+E needs an active session. Both the plugin panel and the native details column are session-scoped surfaces.

Three keyboard chords route through one capture-phase listener to the native layout service, the optional plugin panel or native details fallback, and the Settings affordance.

Install

Defaults are Ctrl+Q / Ctrl+E / Ctrl+S. Physical key codes can be overridden in the profile patch; see Keymap configuration below.

dsh plugin --profile web add github:Aafff623/dsh-keyboard-manager

Then hard-refresh the browser (Ctrl+Shift+R). dsh.bundle.patch adds the plugin to the profile bundle — no profile file edits.

lib/ is committed on purpose: a git install works with zero build step. If you change src/, run npm run build and commit the refreshed lib/ together — CI fails on drift.

How it works

DSH's layout service exposes actions but no state reads, and the settings modal's open state is component-local. So the bindings ride on stable DOM markers and the shell's own affordances instead of React internals or hashed CSS classes. Every path degrades to a silent no-op when its marker is missing — it never misfires.

One capture-phase keydown listener validates a strict Ctrl chord, detects the available surface, and invokes the native service or the plugin's own button.

  • Ctrl+Q — pure service call (ctx.layout.toggleSidebar()).
  • Ctrl+E — with dsh-better-sidebar loaded, clicks the right-panel switch in [data-dsh-toggle-cluster] (prefers a button whose aria-label or data-panel mentions right, otherwise the last button); otherwise calls ctx.layout.openDetails()/closeDetails(), deciding direction from the frame root's data-details-collapsed located via [data-shell-overlay].
  • Ctrl+S — clicks the sidebar settings trigger (button[aria-haspopup="dialog"], the first one in frame document order) to open; dispatches a document-level Escape — exactly what the panel's close logic listens for — to close.

Keymap configuration

The defaults are KeyQ, KeyE, and KeyS. All three physical key codes are overridable through plugin config:

# ~/.dsh/profiles/web/cordis.patch.yml (the profile's own patch layer)
- id: dsh-keyboard-manager
  config:
    sidebar: KeyQ
    rightPanel: KeyE
    settings: KeyS

Key codes are validated against /^[A-Z][A-Za-z0-9]+$/, duplicate codes are rejected, and invalid input falls back to the defaults. Restart dsh and refresh the page to apply.

How the config reaches the browser: DSH's web boot mounts client halves without plugin config (loader.create({ name })), so the browser half's apply second argument is always undefined. The node half therefore serves the config as JSON on /plugin-config/dsh-keyboard-manager, and the browser half pulls it once at activation and hot-swaps the bindings. If the pull fails — or on headless profiles, where there is no web server — the defaults stay in effect.

DOM contract

The bindings rely only on the following stable, centrally-declared markers (verified against the dsh-client-ui-layout and dsh-better-sidebar sources):

MarkerSourcePurpose
[data-dsh-toggle-cluster]dsh-better-sidebarright-panel button cluster
[data-dsh-panel-host]dsh-better-sidebarscope where Ctrl+S yields to the editor
[data-shell-overlay]dsh-client-ui-layoutnative AppFrame anchor
data-details-collapseddsh-client-ui-layoutnative details panel collapsed state
button[aria-haspopup="dialog"]dsh-client-ui-settings-generalthe settings trigger

Development

npm install
npm run typecheck   # tsc --noEmit
npm run build       # esbuild → lib/index.js + lib/client.js (ModuleLoader-wrapped)
npm test            # node:test, vm-isolated fake-DOM suite

Plugin layout follows the standard DSH dual-half shape:

  • src/index.ts — node / host half (serves the plugin config as a JSON route for the browser half to pull)
  • src/client/index.ts — browser half (all keymap behavior)
  • lib/client.js — the browser bundle wrapped in the window.__ModuleLoader__.load() factory shape
  • cordis.patch.yml — the bundle insert that mounts the plugin

Dev overlay against a running web profile, without installing:

dsh web --patch D:/code/dsh-plugin/dsh-keyboard-manager/cordis.dev.yml

Compatibility

  • Requires @deepseek-ai/cordis ^4.0.2 and the DSH Web UI.
  • dsh-better-sidebar is optional: the right-panel chord falls back to the native details column when it is absent.
  • The Ctrl+S save hand-off depends on dsh-better-sidebar's editor; the chord behaves globally everywhere else.

License

MIT