dsh-approval-enter
Manifest valid★ 1Press Enter to approve a pending permission request in DeepSeek Harness (dsh) - no mouse.
dsh-approval-enter
Press Enter to approve a pending permission request in DeepSeek Harness (DSH). Press Esc to reject. No mouse needed.
The problem
DSH's approval card already answers to Enter and Escape — but only while keyboard focus is inside the card. The card replaces the composer when a request arrives, so focus falls back to body, and Enter does nothing. The only way through is to click the card first (or click a button), which defeats the point of a keyboard-driven workflow.
What this plugin does
- When an approval card appears, it moves focus onto the card's own focusable region, so the shipped
Enter= Allow once /Esc= Reject handler takes effect immediately. - If focus later wanders (you clicked the transcript,
Tabmoved away), a capture-phase listener forwardsEnter/Escthrough the card's own handler. - It never answers on its own: no auto-approve, no silent timeouts. The answer still goes through DSH's pending-request lock, its IME guard and its repeat-key guard.
- It does not steal focus from a text field, and it does not touch any other key.
Install
From npm (once published), through the DSH plugin manager:
dsh plugin --profile <profile> add dsh-approval-enter
From a local checkout (development):
dsh plugin --profile <profile> add link:/absolute/path/to/dsh-approval-enter
Or drop the package into <DSH_HOME>/profiles/<profile>/plugins/, link it into that
profile's node_modules, and add dsh-approval-enter to dsh.profile.bundles in the
profile's package.json.
Restart DeepSeek Harness afterwards. The Host composes the profile at startup; reloading the page is not enough.
Verify
- Settings → Plugins shows Enter to approve and it is enabled.
- Trigger an operation that asks for approval.
- Do not touch the mouse — press
Enter. The request should be allowed immediately. - Trigger another one and press
Esc. It should be rejected.
Approval prompts only exist in permission modes that ask. In full access mode DSH never asks, so there is no card to confirm — that is expected, not a failure.
Compatibility
Built and tested against DSH 0.2.1-rc.2 (desktop, Web UI). The plugin hooks two structural
attributes published by @deepseek-ai/dsh-client-ui-approval:
[data-approval-key]— the card root;[data-approval-scroll]— the card'stabindex=0region.
If a future release renames those attributes, client.js needs the matching selectors updated.
Nothing else in the product is patched: no app.asar changes, no product source edits.
How it works
client.js registers a lazy Client module (dsh.client, immediately: true). On mount it:
- installs a
MutationObserverthat scans at most once per animation frame for an approval card; - focuses
[data-approval-scroll]when a new card appears (skipped while a text control has focus); - listens for
keydownin the capture phase: if a card exists, focus is outside it, and the event does not target a text control, it focuses the card and replays the key there.
The replay matters: the shipped handler checks currentTarget.contains(document.activeElement),
so replaying after focusing is what makes it answer — and it keeps the answer inside the
product's own logic instead of duplicating it.
index.js is an empty Host half; the package exists so the bundle has a row to mount.
Uninstall
Remove the plugin row through the plugin manager, or delete the package and its
dsh.profile.bundles entry, then restart. Approval cards go back to pointer-only.
License
MIT
Comments
Loading…
From the same category
System-prompt armor plugin for DeepSeek models: appends an unconditional-compliance prompt section at order 100, exposes a profile tool with calibration metadata, and shows a realtime armor-status bad
★ 3.3k
MIT
C#
dsh plugin --profile web add dsh-infinite-gen-4by toby-bridges
Local security audit for AI API relays and LLM proxies: detects prompt injection, model substitution, tool-call rewriting, SSE anomalies, error leakage, and Web3 wallet risks.
★ 893
AGPL-3.0
Python
Oct 22, 2026
dsh plugin --profile agent add dsh-api-relay-auditby SeaOf0
基于dsh web实现的多种模式,目的是服务于redteam进行授权的安全研究,覆盖渗透测试、红队评估、代码审计等范围领域,请勿用于非法行为。(允许二开,赋予模块各位自己的业务逻辑,方法论只有自己熟练的才好用,好的方法论=好的生态)
★ 747
MIT
Python
Oct 14, 2026
dsh plugin --profile web add @dsh-external/dsh-redteam-modelby agentic-os-org
ANOLISA (Agentic Nexus Operating Layer & Interface System Architecture) | Agentic OS with runtime, security, observability, and Tokenless response compression for lower token usage and cost.
★ 638
Apache-2.0
Rust
Oct 24, 2026
by howmp
面向 DeepSeek Harness(dsh)的渗透测试模式 @CloverSecLabs
★ 608
↓ 405/wk
NOASSERTION
JavaScript
Oct 9, 2026
dsh plugin --profile web add @howmp/dsh-pentestby ADWMC
DeepSeek Harness 破甲一体化安全分析插件:Android · Web · Native · Protocol · Malware · AI-Security 全领域聚合(9 bundle + 1 preset)
★ 520
MIT
Python
Oct 23, 2026