KLAX54ix/dsh-explain-selection ↗★ 0
dsh-explain-selection
Select any answer text to get a streaming explanation card; card text stays selectable for further explanation, and nothing enters the main conversation context. 适合阅读回答时需要对特定词汇进行多层追问且不污染主上下文的用户。
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:KLAX54ix/dsh-explain-selection选中解释 / dsh-explain-selection
在 DSH 里读回答时遇到不懂的词:选中它 → 右键「解释」→ 贴着选区弹出一张讲解卡片。 卡片里的文字照样可以选中再解释,可以一层层追下去——而全程不会往你的对话里多写一个字。
解释由宿主直接调用 ctx.llm 流式生成,不写进会话日志、不进入主对话上下文。
所以"追问把上下文刷爆、还得往上翻"这件事从根上不会发生。
安装
dsh plugin add github:KLAX54ix/dsh-explain-selection
DSH Desktop(桌面端):desktop profile 由 Electron 应用独占管理,命令行添加会被拒绝。
请在应用内 设置 → 插件 → 添加插件,填同一个地址:
github:KLAX54ix/dsh-explain-selection
安装后重启一次应用:index.js 是宿主半体,只在启动时加载;client.js 会自动热加载。
怎么用
| 动作 | 操作 |
|---|---|
| 解释 | 选中回答里的文字 → 右键 → 解释 |
| 复制 | 同一个菜单里的 复制 |
| 继续追问 · 点术语 | 解释里带虚线下划线的词可直接点击,在它旁边开一张新卡片 |
| 继续追问 · 再选中 | 卡片正文里任意文字都能选中再解释,层数不限 |
| 移动卡片 | 抓住头部左侧的 ⣿ 手柄拖动,松手即停在那里 |
| 归位 | 拖走后的卡片头部会出现 ⤺;也可以双击手柄 |
| 拖拽时看归属 | 拖动过程中有一条淡虚线,从卡片指回它所解释的那几个字 |
| 拖拽时滚页面 | 按住卡片不放,滚轮照样滚动对话,方便把它放到当前屏幕外的位置 |
| 收起 / 展开 | 头部 – 收成贴着原文的小胶囊;点胶囊展开 |
| 关闭 | 头部 × |
| 关闭右键菜单 | Esc、点击别处、滚动、缩放窗口 |
它会怎么跟你说话
- 会联系上下文:解释顶层选区时带前后各 120 字;在卡片里追问时带父卡片那段解释 + 父术语。
- 不是词就直说:选中跨词边界的片段(例如从「浮动工具条」里只选到「动工」),它会告诉你这不是一个词、原本属于哪个词,不会替你编一个含义。
- 答案短:两句话以内、最多 80 字,宁短勿长。
- 线索不足会承认,不假装确定。
- 重复解释瞬时:同一句话里的同一个词再解释一次,不发请求、不耗 token、立刻显示。
卡片底部有一行浅灰小字,例如 已带上下文(上下文 240 字)——它表示这次解释实际带上了多少消歧信息。没有这一行,说明本次切词没有可用上下文。
卡片跟着谁动
| 情况 | 结果 |
|---|---|
| 页面滚动 / 缩放 | 卡片跟着原文走 |
| 锚定中的卡片,父卡片移动 | 跟着动 |
| 被拖走(停靠)的卡片 | 不跟,停在你自己放的位置 |
| 收起父卡片 | 它的子卡片一起隐藏(锚点在一个看不见的卡片里);展开父卡片后回到原位 |
| 关闭父卡片 | 子卡片一起关闭 |
与主对话上下文的关系
这是这个插件存在的理由,单独说明:
- 解释不进会话日志。 宿主半体在自己的路由里直接调用模型,不经过 agent loop,所以这段问答不是消息。
- 卡片按会话销毁。 切换项目或会话,卡片、原文标记、进行中的请求一起消失——不做归档、不做保留。
- 答案缓存只在内存里。 不落盘、不进日志,刷新页面或重启即失效。
为什么答案又快又短
- 显式关闭推理。 DeepSeek 适配器默认推理强度是
high,而max_tokens同时覆盖推理与答案——不关掉的话预算会被推理吃光,卡片会被截断,而且又慢又贵。本插件显式传reasoningEffort: 'off'。 - 输入输出双向收紧。 选中文本上限 400 字,输出上限 256 token,提示词硬约束 80 字。
- 内存答案缓存。 重复查询 0 请求、0 token。
一次短术语查询是几百输入 token 的量级。
已知限制
- 客户端文案硬编码中文,未接
ctx.locale。 - 使用当前默认模型,不跟随单会话的模型切换。
- 术语是否可点,取决于模型有没有按约定输出
[[术语]]标记;没有标记时用"选中 + 右键"嵌套。 - 缓存不持久化,重启即空。
- 未做整段批量解释。
- 本插件在 DSH 的 developer preview 期间开发(0.2.0-rc.2)。DSH 官方明确表示会有破坏性变更,升级后若失效请提 issue。
开发
设计推演、根因分析、踩坑记录与验证状态都在 NOTES.md。 源码只有四个文件,没有构建步骤。