dsh-think-translate
by onfire-07
DeepSeek Harness(DSH)Web 插件:点击聊天中的 Think 思考行 时,会在右上角额外弹出一个浮动窗口,把该思考步骤的英文 实时同步翻译成中文 。
DeepSeek Harness (DSH) Web plugin: click a Think row to open a floating window that live-translates the reasoning steps into Simplified Chinese.
安装
dsh plugin --profile web add github:onfire-07/dsh-think-translateGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
DeepSeek Harness(DSH)Web 插件:点击聊天中的 Think 思考行时,会在右上角额外弹出一个浮动窗口,把该思考步骤的英文实时同步翻译成中文。
- 流式输出期间:增量翻译,窗口跟随思考内容持续更新(「同步中…」)
- 思考结束:自动做一次完整润色翻译(「已同步」)
- 支持查看原文对照、关闭、失败重试
- 主题色自适应(浅色/深色)
- 翻译走 DSH 当前配置的模型,不需要额外的翻译 API Key
效果
- 在聊天里点击任意一条消息的 Think 行(标题为 "Think" 的折叠行)
- 右上角弹出「思考翻译」窗口,状态依次为:
等待思考内容… → 翻译中… → 同步中… → 已同步 - 思考还在流式输出时,窗口会持续跟随更新;结束后做一次完整润色
- 顶部按钮:
查看原文 / 只看翻译(底部对照区)、关闭;翻译失败时显示错误并给出重试
安装
本插件是一个 DSH 双面(dual-face)插件包:宿主半在 Node 进程注册翻译路由,浏览器半注入浮动窗口 UI。安装到你的 web profile 即可永久生效(每次启动自动加载)。
1. 安装包到 profile
DSH_HOME/profiles/web/node_modules/
└── dsh-think-translate/ ← 把本仓库(除 .git/README 外)拷到这里
├── package.json
└── lib/
├── index.js ← 宿主半(注册 POST /think-translate)
└── client.js ← 浏览器半(浮动窗口 + 点击拦截)
Windows 下 DSH_HOME 默认为 C:\Users\<你>\.dsh。
2. 在 profile 补丁层注册插件行
编辑 DSH_HOME/profiles/web/cordis.patch.yml(顶层是一个 YAML 数组),追加:
- insert:
- id: think-translator
name: dsh-think-translate
补丁层被 DSH 热监视:保存后插件行立即挂载;客户端 bundle 会出现在启动清单里。
3. 刷新页面
刷新浏览器页面即可(若浏览器半未出现,重启一次 dsh web 再刷新)。
工作原理
Think 行点击 (浏览器半, document 级捕获 [data-variant="think"])
│
▼
浮动窗口每 500ms 轮询该行的思考文本(展开后的正文/折叠时的摘要)
│ 文字稳定约 1s 后发起翻译
▼
POST /think-translate ──► 宿主半(webServer 精确路由)
{ text, mode, context } │
▲ ▼
│ llm.stream(当前模型, system 提示词=翻译引擎)
│ │
└──── { ok, text } ◄─────┘
- 增量翻译(
mode: "delta"):流式期间只翻译新增片段,带上前后文尾巴保证连贯,省 token - 完整翻译(
mode: "full"):首次翻译、增量拼接超过一次后的最终润色、以及原文非前缀增长时的兜底 - 缓存:宿主持 100 条 LRU 缓存,同一段文本重复点击不重复调模型
- 防护:请求体 200KB 上限、文本 10 万字符上限、非法 JSON 返回 400、非 POST 返回 405
宿主路由
| 路径 | 方法 | 说明 |
|---|---|---|
/think-translate |
POST | 请求体 { "text": string, "mode": "full" | "delta", "context"?: { previousEnglishTail, previousChineseTail } },返回 { "ok": true, "text": "…" } 或 { "ok": false, "error": "…" } |
目录结构
├── lib/
│ ├── index.js # 宿主半:webServer 路由 + llm 翻译(缓存/队列/限长)
│ └── client.js # 浏览器半:shell.overlay 窗口 + Think 行点击拦截 + 轮询同步
├── tests/
│ └── smoke-test.mjs # 宿主半冒烟测试(node tests/smoke-test.mjs)
├── package.json # dsh.client 声明 + exports["./client"]
└── README.md
测试
node tests/smoke-test.mjs
覆盖:路由注册恰好一次且存活到卸载、请求→响应 JSON、llm 调用参数形状、缓存命中、非 POST 405、卸载时注销路由。
常见问题
- 点击后窗口一直「等待思考内容…」:思考行还在折叠状态且正在流式输出。点击行本身会展开它;展开后(或思考结束后)即开始翻译。
- 翻译失败:检查 DSH 的模型配置(插件使用当前选中的 provider/model);点窗口里的「重试」。
- 修改包代码后不生效:DSH 进程内 ESM 模块缓存,包代码改动需重启
dsh web(补丁 YAML 本身是热生效的)。
License
MIT
原始 README: https://github.com/onfire-07/dsh-think-translate/blob/main/README.md ↗
同类插件
查看全部 →
dsh-web-ui-all
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-web-ui
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-TUI
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

DSH-better-sidebar
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。

working-activity
让 agent 的"工作状态行"活过来——实时工具动态与进度、俏皮文案、模型自述、上下文预警。同一套想法,适配两个平台: pi CLI 与 DeepSeek Harness(DSH) 。

deepseek-idesign
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。