← Back to home@Smallcarve

dsh-better-keymap

DeepSeek Harness shortcuts on your terms: a later assignment overrides an earlier one, displacements are reported, and even the composer's send/newline/complementary keys are rebindable. 让 DeepSeek Harness 快捷键由你说了算:后设组合覆盖先设、被清空的会告知你,连输入框的发送/换行/互补三键也可改绑。

Stars
1
Language
TypeScript
Created
Oct 10, 2026
Updated
Oct 10, 2026
GitHub repo

Introduction

English · 简体中文

dsh-better-keymap

v1.0.0 · for DeepSeek Harness 0.2.0-rc.2+

GitHub Gitee npm License

The better keyboard-shortcut manager for DeepSeek Harness. One editable table covers the vast majority of commands, a later assignment overrides an earlier one, and anything displaced is reported to you.

Why

Harness refuses any edit that would conflict: try to move Ctrl+N off "new session" and it tells you the combination is taken, then declines to save. This plugin replaces that rule with the later assignment wins — the previous holder is unbound and named in a notice.

It also makes three actions rebindable that Harness ships as fixed keys:

ActionDefault
Send messageEnter
NewlineShift+Enter
Complementary queue/steerCtrl/⌘+Enter

Each can be moved to another key, or cleared so it triggers nothing.

Install

cd ~/.dsh/profiles/desktop
pnpm add dsh-better-keymap

Then restart Harness. The package declares dsh.bundle, so the plugin manager installs it as a profile layer — no configuration file needs editing.

Installing from source instead:

pnpm add "github:Smallcarve/dsh-better-keymap"
pnpm add "git+https://gitee.com/Smallcarve/dsh-better-keymap.git"   # China mirror

lib/ ships prebuilt, so no build step is needed either way. You can also install through Plugins → Install plugin in Harness and restart.

Use

Press Ctrl/⌘+/ to open the reference, then click a row's key to record a new combination. Release the keys to commit.

The reference is the product's own shortcuts page — same structure, copy, and interaction — served as an overlay that takes over the official entry point. Search, per-row reset, and restore-all-defaults all work as before.

Rules

A bare key and two combinations are reserved, because Harness cannot dispatch them to an editable command without shadowing a fixed gesture:

ReservedEditable commandsThe three input actions
Enter Esc / @ ↑ ↓refusedEnter allowed, the rest refused
Shift+Enter, Ctrl+Enterrefusedallowed

Everything else is decided by Harness's own deliverability check. A refused assignment writes nothing — your keys and defaults are untouched, and the notice says why.

Compatibility

DeepSeek Harness0.2.0-rc.2 and later
Node.js22.19+ or 24+ (only to build from source)
Profilesdesktop and web; verified on desktop
Host sourceunmodified — the plugin uses only ctx.shortcuts, ctx.slots, ctx.locale

Repositories

GitHub (primary) · Gitee (China mirror) · npm

Development

pnpm install
pnpm run build        # writes lib/
pnpm run test         # 114 checks

License

MIT