在 DSH 环境中调试或阅读长对话时,经常需要针对某个术语或代码片段进行快速解释,同时不希望占用主会话的上下文。传统的侧边栏 fork 会消耗大量 token,而手动复制粘贴效率较低。dsh-loupe 提供了一个基于浮窗的轻量解释方案。
插件定位¶
dsh-loupe 是一个由 Rice00 维护的客户端插件。它不创建新会话,不注册工具,仅通过选中文字唤起浮窗,提供解释、追问和保存功能。
核心能力¶
| 能力 | 说明 |
|---|---|
| 划词即弹 | 选中正文任意文字,选区下方浮出“解释 / 设置”两个入口。 |
| 浮窗回答 | 单实例浮窗,支持流式 markdown、可拖拽和位置记忆。 |
| 不建会话 | 只发一次模型请求,不写会话日志,左侧列表不会变脏。 |
| 自带上下文 | 使用插件独立的 context.md(上限 2200 字符),不拖动 agent 的全量上下文。 |
| 自动累积 | 将“选中什么 → 得出什么”沉淀回 context.md,同一词多次询问更精准。 |
| 全量留档 | 所有问答记录保存在 history.jsonl,支持搜索、分页和复原。 |
| 可存成正式会话 | 支持将解释内容保存为左侧列表中的正式会话。 |
| 中英双语 | 界面与提示词支持中英文切换。 |
| 推理可折叠 | 模型推理过程默认收起。 |
| 跟随主题 | 浮窗界面跟随宿主深浅主题。 |
| 零配置 | 借用宿主的 llm 服务,无需填写 API Key。 |
安装与启用¶
使用官方安装命令添加插件:
dsh plugin --profile <profile> add dsh-loupe
注意:若修改本地代码后生效,需要重启该 profile。
典型用法¶
- 在对话正文中选中一段文字,选区下方会出现浮层。
- 点击“解释”,浮窗直接提交请求,无需再按发送键。
- 浮窗底部会显示耗时统计(如首字 544ms)。
- 点击“保存”,可将该解释存为左侧列表中的正式会话。
- 在设置页的“历史”中,可按关键词搜索并复原对话。
技术细节与限制¶
- 数据存储:问答数据保存在
~/.dsh/loupe/目录下(若存在DSH_HOME则跟随该目录),包括context.md和history.jsonl。 - 上下文上限:
context.md注入长度上限为 2200 字符。 - 推理档:默认为
off。实测off首字响应约 544ms,low约为 2806ms。 - 玻璃质感:需要浏览器支持 CSS
color-mix,不支持时会自动退回实底。 - 接口:宿端提供
/plugins/dsh-loupe/explain等路由,用于诊断和能力探测。
生态背景¶
DSH 理念是“一切皆插件”。dsh-loupe 代码结构清晰,宿端仅依赖 Node 内置模块(fs、os、path、crypto),零第三方依赖。