DeepSeek Harness plugin

dsh-selection-toolbar

Shows a floating toolbar above text selected in a conversation, with copy, quote, ask, explain, translate, summarize, and custom prompt actions.

Jump to install

Source facts

Repository
suiyideali/dsh-selection-toolbar
Latest update
Aug 19, 2026
Category
UI Enhancements
GitHub stars
0

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/suiyideali/dsh-selection-toolbar
GitHub: https://github.com/suiyideali/dsh-selection-toolbar
Plugin: dsh-selection-toolbar
Author: suiyideali
Install command: dsh plugin --profile web add github:suiyideali/dsh-selection-toolbar

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-selection-toolbar ![awesome · DSH plugin](https://awesome-dsh-plugin.com)

English | [中文](README.zh.md)

Select text inside a DeepSeek Harness conversation and a small floating toolbar appears above the selection: 复制 · 引用 · 询问 · 解释 · 翻译 · 总结 (copy · quote-reply · ask · explain · translate · summarize).

All AI actions reuse the current session — the selected text is sent into the active conversation as a normal user message, so the model has full context.

Features

ActionBehavior
复制 CopyCopy the selected text to the clipboard.
引用 QuoteInsert the selection as a markdown blockquote (> …) at the composer caret.
询问 AskOpens an inline input; Enter sends 你的问题 + selection. Leaving the input empty sends the raw selection as a plain message.
解释 ExplainSend 请解释下面这段内容: + selection.
翻译 TranslateSend 请把下面这段内容翻译成中文: + selection.
总结 SummarizeSend 请用简洁的语言总结下面这段内容: + selection.

The popup hides on Escape, scroll, or clicking elsewhere; the 询问 input stays open while typing (focusing the input collapses the page selection without closing the popup).

Settings

The plugin appears in 设置 → 插件 → 插件列表 as a native-style card — the same collapsible look as the built-in 终端 / 网页搜索 entries — with:

  • 弹窗出现延时 — delay before the toolbar appears after selecting (0–500 ms)
  • 功能开关 — toggle each toolbar entry individually (复制 · 引用 · 询问 ·

解释 · 翻译 · 总结); disabled entries disappear from the popup immediately, and 全部开启 re-enables everything at once

  • 恢复默认 — reset all options

Options persist in the browser (localStorage) and apply to the popup live, no reload needed.

Install

From GitHub:

dsh plugin --profile web add github:suiyideali/dsh-selection-toolbar

or from a local checkout:

dsh plugin --profile web add /path/to/dsh-selection-toolbar

Then restart the web app so the new client bundle is picked up.

Requirements

  • dsh web (v0.1.0-rc.6 tested)
  • The profile must already mount @deepseek-ai/dsh-client-runtime and

@deepseek-ai/dsh-client-ui-slots (standard in the web profile).

Architecture notes

  • Client-only: the plugin has no host half. AI actions prompt the session

through the client sessions service — binding(id).session.prompt(...) — the exact path the composer itself uses, so queueing and error surfaces are native.

  • Quote insert uses the official inputActions.setDraft standard prop from

the conversation.input.dock slot. It deliberately avoids sessions.scope() + event bails, which the dynamic-plugin facade forbids (cross-context guard); the markdown blockquote is the same shape as other quote-reply plugins.

  • Selections are scoped to the message list ([data-chat-flow]) and

exclude the composer, inputs, and contenteditable regions.

  • Fixed actions build fixed prefixes; the 询问 question caps at 2k chars and the

selection at 20k chars to keep injected messages bounded.

License

MIT