dshbase

Plugin directory / Developer / dsh-client-ui-shortcuts

dsh-client-ui-shortcuts

Unverified hytime

✓ Actively maintained Builds on 12 official DSH packages

View on GitHub ↗ ← Back to plugin directory

2Stars
0Forks
0Open issues
Language
2026-08-24Last push
Cross-platformPlatform

What it does

Profile-aware keyboard shortcuts for the DeepSeek Harness Web Client

Our take
Unverified — not yet verified

Profile-aware keyboard shortcuts for the DeepSeek Harness Web Client Not yet verified — install and test it yourself.

“Unverified” means our automated CI has not yet installed this plugin. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

Plugin author? Get the “Verified” label — submit your own evidence (screenshots, logs, or a short demo) and we'll review and flip the badge.

Submit verification evidence ↗

README

DSH Client UI Shortcuts

npm version npm downloads license

English | 中文

Browser-safe, profile-aware keyboard control for DeepSeek Harness Web.

This plugin runs inside DSH Web, adds predictable keyboard control for question and approval flows, and provides Session and Workspace navigation when the corresponding DSH capabilities are available. It does not modify DSH core, the agent loop, or the model protocol.

Why install it

  • Answer DSH questions and approvals without leaving the keyboard.
  • Choose read-only Standard and Vim profiles, or create and switch between multiple named Custom profiles for interaction cards and global actions.
  • Navigate Sessions and Workspaces with explicit physical Meta, Ctrl, Alt, and Shift modifiers.
  • Automatically expand a collapsed target Workspace before opening an existing eligible Session.
  • Keep unavailable actions out of routing and shortcut lists when DSH does not provide the required capability.
  • Stay within browser and operating-system boundaries: reserved shortcuts may never reach a web page.

Screenshots

Question and approval interaction shortcuts:

Question and approval shortcut settings

Global Session and Workspace shortcuts with platform keycaps:

Global Session and Workspace shortcut settings

Install in 60 seconds

The recommended path is the npm release because it includes prebuilt lib/ artifacts and requires no install-time build. Install it through the DSH CLI, then restart or reload the Web composition:

dsh plugin --profile web add @hytime/[email protected]
dsh --profile web

To install the GitHub source instead, pin a release tag or commit rather than the default branch:

dsh plugin --profile web add github:hytime/dsh-client-ui-shortcuts#v0.1.14

A Git install runs the package's prepare script during installation. pnpm may require the exact package key from its error message to be added to the profile's allowBuilds; grant that permission only for trusted, pinned source. The installation guide has the complete steps.

The plugin is not a standalone React or Vite application. Do not open apps/web directly and do not install it into a DSH profile with npm install, pnpm add, or manual edits to the profile manifest or lockfile.

For upgrades, removal, local tarballs, profile inspection, and troubleshooting, see the installation guide.

What is included

  • Question cards with single-select, multi-select, custom-answer, skip, previous-question, and submit flows.
  • Approval cards with allow once, reject, details, cancel, and keyboard-confirmation flows.
  • Read-only Standard and Vim profiles plus multiple named, editable Custom profiles, with one active profile at a time.
  • New, Import, Export, and Delete controls for managing portable Custom profiles; exports contain one saved profile and no internal ID.
  • Explicit physical Meta, Ctrl, Alt, and Shift modifiers, alternatives, and two-stroke chords.
  • Browser-reserved shortcut denylist and conflict validation.
  • Capability checks for DSH features that are not available in the current composition.
  • Session, Workspace, session-branch, and theme actions when the corresponding DSH capabilities are available.

Shortcut reference

Question and approval cards

Command Question Approval
Focus previous item ArrowUp ArrowUp
Focus next item ArrowDown ArrowDown
Activate current item Enter Enter
Cancel current task Escape Escape

The Vim profile replaces the two focus bindings with k and j; confirmation and cancellation keep Enter and Escape. These bindings are scoped to the active interaction card.

Global actions

The active profile's default global bindings are:

Action Default binding
Create a Session Meta+Alt+Shift+N
Previous Session Meta+Alt+Shift+J
Next Session Meta+Alt+Shift+K
Previous Workspace Meta+Alt+Shift+H
Next Workspace Meta+Alt+Shift+L
Fork current Session Meta+Alt+Shift+B
Toggle light/dark theme Meta+Alt+Shift+T

Global actions are registered only when DSH provides the required capability.

Profiles and Custom bindings

Standard uses arrow keys, Enter, and Escape for question and approval interactions. Vim uses j/k, Enter, and Escape. These built-in profiles are read-only.

Create multiple named Custom profiles and switch the active profile from the settings card. A new profile copies the current profile's bindings; its name and bindings are saved together. Import always creates a new internal profile ID, while duplicate names receive a continuing numeric suffix such as Name 1, Name 2, and so on. Export is available only for the active, saved Custom profile and writes a single-profile JSON v1 document without the internal ID. Delete requires confirmation and returns to Standard before removing the active Custom profile. See the installation guide for the JSON format and limits.

Custom profiles can edit question, approval, and capability-backed global bindings, including explicit modifiers, alternatives, and two-stroke chords.

The resolver matches physical KeyboardEvent.code values, normalizes aliases such as Esc/Escape and Return/Enter, rejects prefix conflicts, and limits chords to two strokes. On macOS, Meta is displayed as Command and Alt as Option; on other platforms, Meta is displayed as Windows key and Ctrl as Control.

Browser and platform boundaries

The router uses capture-phase listeners in the browser. It yields to unmatched text input, IME composition, repeated events, pending question or approval takeover, and host-owned popup focus. A matching global action can run from an input or contenteditable element because it is an explicit global binding.

The browser denylist covers known Chrome, Safari, Firefox, and Edge combinations. It cannot query arbitrary OS or browser shortcut ownership, and capture listeners can prevent only shortcuts the browser has dispatched to the page.

Workspace and Session navigation

Session navigation follows the current Workspace's stored Session order and skips archived, subagent, and blank Sessions. Workspace navigation opens an existing non-blank Session in the target Workspace. When a target Workspace is collapsed, the plugin expands it automatically before opening the eligible Session; navigation does not create a blank Session or call connectWorkspace to manufacture a target.

DSH compatibility

The package is loaded only through a real DSH Web composition and DSH boot/module loader. Installing an update does not replace code already running in an open page; reload the Web composition to load the new Client bundle.

Development and verification

These commands develop this package. They are not profile installation commands:

pnpm install
pnpm run bundle
pnpm run typecheck
pnpm exec vitest run tests

For the full DSH composition workflow, use the installation guide. Browser verification must run through a real DSH Web profile with boot data; the apps/web Vite entry is not a standalone validation target.

FAQ

Does this change model behavior?

No. The plugin changes browser interaction only. It does not add tools, prompt sections, model-visible events, or model request context.

Why does a global action not appear?

Global actions are available only when the current DSH composition provides the required capability. Actions that are unavailable are not registered, and their shortcut rows are not shown.

Why is the settings shortcut hidden?

DSH does not provide a public settings opener, so the retained Meta+, binding stays hidden and is not activated.

Why did installing an update not change the open page?

DSH must reload the Web composition so the new Client bundle is loaded. Installing a package does not replace code already running in the browser.

Can I use it without DSH Web?

No. The browser artifact is a DSH loader factory and depends on DSH boot injection, slots, settings, locale, and runtime services.

Links

License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-client-ui-shortcuts for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:hytime/dsh-client-ui-shortcuts

Headless (CLI) profile:

dsh plugin --profile headless add github:hytime/dsh-client-ui-shortcuts

Test report

Not yet L3-verified — see failure note below if we already ran it.

Status: pending · last test 2026-08-25
Note: 验证: runtime-fail Browse all pending failures →
Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 7789 plugins →