# dsh-esc-stop [![简体中文](https://img.shields.io/badge/语言-简体中文-57606a)](./README.md) [![English](https://img.shields.io/badge/Language-English-0969da)](./README.en.md) A DeepSeek Harness Web client plugin that lets you press **Escape** while the conversation composer is focused to stop the active turn without clicking “Stop generating.” This is an unofficial community plugin and is not affiliated with, authorized by, or endorsed by DeepSeek. ## Relationship to DeepSeek The plugin runs inside the DeepSeek Harness Web client and stops the current turn through Harness's official `conversation.cancel()` API. It does not modify DeepSeek models, prompts, or session data, and it sends no data to external services. ## Features and behavior - Handles only an unmodified `Escape` key press inside the conversation composer. - Stops only a running ordinary session or a continuable subagent, matching the native Stop button. - Does not stop a task when a dialog, command menu, or another overlay has already consumed Escape. - Ignores idle sessions, one-shot subagents, IME composition, repeated keydown events, and modified Escape shortcuts. - Reuses the official cancellation path, preserving the existing queue and error-reporting behavior. ## Installation and usage Install from GitHub into the Web profile. A Git install runs the `prepare` build. If pnpm blocks the build, follow the DSH message and add `dsh-esc-stop` to the profile's `allowBuilds` list. ```sh dsh plugin --profile web add github:ClausYang/dsh-esc-stop ``` You can also install a local checkout: ```sh dsh plugin --profile web add /path/to/dsh-esc-stop ``` Restart `dsh web` and refresh the page after installation. While a task is running, keep the main conversation composer focused and press `Escape` to stop the turn. ## Compatibility - Target environment: DeepSeek Harness Web `>=0.0.1`. - Build, unit tests, packaging, and profile loading have been verified against the DeepSeek Harness `0.1.0-rc.5` source release. - Uses the `dsh.client` browser-plugin manifest and the current public session and cancellation interfaces. ## Risks and limitations - The shortcut works only while the main conversation composer is focused, preventing accidental cancellation in settings, dialogs, or unrelated text fields. - Key mapping is not configurable yet. - Escape immediately requests cancellation; unfinished model generation will not continue. - A third-party UI plugin that intercepts Escape without calling `preventDefault()` may compete with this shortcut. Native Harness overlays are handled with overlay-first priority. ## Maintenance - Status: Active. - Primary maintainer: [ClausYang](https://github.com/ClausYang). - Support and bug reports: [GitHub Issues](https://github.com/ClausYang/dsh-esc-stop/issues). ## Development verification ```sh pnpm install pnpm test pnpm run typecheck pnpm run build ``` ## License and copyright Copyright © 2026 ClausYang. Released under the [MIT License](./LICENSE). The DeepSeek name, trademarks, official models, and official materials remain the property of DeepSeek and/or their respective rights holders.