DeepSeek Harness 插件

suiyideali/dsh-selection-toolbar

Star 数 ★ 0 分类 UI 增强 收录于 2026-08-19

在对话中选中文本时显示浮动工具栏,提供复制、引用、询问、解释、翻译、总结与自定义提问操作。

安装

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

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

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

English | 中文

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

Action Behavior
复制 Copy Copy the selected text to the clipboard.
引用 Quote Insert the selection as a markdown blockquote (> …) at the composer caret.
询问 Ask Opens an inline input; Enter sends 你的问题 + selection. Leaving the input empty sends the raw selection as a plain message.
解释 Explain Send 请解释下面这段内容: + selection.
翻译 Translate Send 请把下面这段内容翻译成中文: + selection.
总结 Summarize Send 请用简洁的语言总结下面这段内容: + 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

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →