lyhue1991/dsh-soup
Project Overview项目介绍
dsh-soup is a UI enhancement plugin for the DSH desktop client, installed via dsh plugin add @lyhue1991/dsh-soup. It layers four features on top of DSH: a right-side parallel file tree (context menu, drag-and-drop, upload, auto-refresh), an in-session Preview tab (read-only inline viewing of Markdown, code, PDF, Notebook, images), a multi-line GoalBar using textarea, and a live t/s throughput badge above the input box. Use it when you want project files and rich previews alongside the conversation without leaving the session. Caveat: all file operations are sandbox-fenced to the workspace and session directories; DSH must be restarted after installation.
dsh-soup 是 DSH 桌面端的 UI 增强插件,基于 dsh plugin add @lyhue1991/dsh-soup 安装。它在原版上叠加四项能力:右侧并列文件树(支持右键、拖拽、上传、自动刷新)、会话内预览 Tab(Markdown、代码、PDF、Notebook、图片等就地只读查看)、多行 GoalBar(textarea 编辑,不替换原生数据)、输入框上方实时 t/s 速率徽标(滑动窗口,色阶提示)。适用于项目文件需常在会话旁查看、避免跳出预览的场景。注意:所有文件操作受沙箱围栏限制,仅在工作区与会话目录内生效;安装后需重启 DSH 才生效。
请帮我了解并安装插件:【dsh-soup】【https://github.com/lyhue1991/dsh-soup】
Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin add @lyhue1991/dsh-soup
把 lyhue1991/dsh-soup 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-soup
DeepSeek Harness 本身是一大锅汤——营养丰富,但尝起来略显寡淡,不太好喝。dsh-soup 给它加上点 UI 调料,让它变得美味起来。
为什么叫 soup
DSH(DeepSeek Harness)功能很强:会话、工具、轨迹、Goal 一应俱全,营养都在汤里。但 UI 上略显寡淡——文件散在终端里、预览要跳出去、模型在跑你却看不到速度、长一点的目标被截成一行省略号。
dsh-soup 不重写 DSH,而是像下厨一样给这锅汤加几样调料:
- 🧅 葱 —— 右侧文件树,提鲜点缀,让项目结构在会话旁长出来;
- 🫚 姜 —— 会话内「预览」tab,去腥增香,Markdown / 代码 / 图片 / PDF / Notebook 就地看;
- 🧄 蒜 —— 多行 GoalBar,味重提味,把那条总被截断的目标条熬成完整一行行;
- 🧂 盐 —— 输入框上方的实时
t/s速率徽标,百味之首,虽小却提味,实时知道模型跑得多快。
四样调料,一个插件,三平台通用(macOS / Linux / Windows)。装上之后——DSH 还是那锅汤,只是变得美味了。

速览
| 调料 | 是什么 | 一句话 |
|---|---|---|
| 🧅 右侧文件树 | 和左侧工作区并列的右列文件浏览器 | 提鲜点缀,结构在旁长出来 |
| 🫚 会话内预览 | 会话区顶部新增「预览」标签页 | 去腥增香,内容就地入味 |
| 🧄 多行 GoalBar | 不再被截断的多行目标条 | 味重提味,目标完整入味 |
| 🧂 速率徽标 | 输入框上方的彩色 t/s 指示 |
百味之首,小而提味 |
它能给你什么
🧅 右侧文件树(主打 · 葱 · 提鲜点缀)
一个真正和左侧工作区并列的文件浏览器——不悬浮、不遮挡,配色与宽度都与左侧一致(默认 360px,拖左缘在 300–520px 间调整)。
- 跟随会话:自动展示当前会话的工作目录,切会话/工作区时跟着走。
- 右键菜单:预览、用系统打开、重命名、移到废纸篓、复制完整路径、下载到本机。
- 多选与拖拽:⌘/Ctrl 加选、Shift 连选;文件拖进目录即移动;系统文件拖入即上传(>1MB 自动分块,带实时进度)。
- 类型图标:按品牌色区分文件类型(notebook 橙、markdown 紫、json 黄、pdf 红…)。
- 沙箱围栏:所有文件操作只能落在你的工作区与会话目录内,越界自动拒绝。
- 自动刷新:每 3 秒轻量探测一次目录签名(mtime),有变化才重拉——agent 或终端里的文件增删改无需手动刷新即可出现;面板关闭且无预览时零开销;宿主不可达(如 DSH 重启中)自动指数退避(封顶 60s)。
- 新建文件夹:顶部 🗂+ 在当前目录创建文件夹;工具栏顺序为 🗂+ 新建、⬆ 上传、⟳ 刷新、✕ 关闭。
- 一键刷新:顶部 ⟳ 重拉整个文件树,已展开的子目录保持展开不收起。
🫚 会话内文件预览(主打 · 姜 · 去腥增香)
双击文件、或右键「👁 预览」,会话区顶部就会新增一个**「预览」标签页**,和「对话 / 轨迹」同级——看文件不用跳出当前会话。
- 多文件子标签:单个「预览」tab 内用子标签条管理多个文件,切走再切回内容不丢;最多同时开 5 个,超出按先进先出挤掉最早的。
- 按类型预览,按类型自动选渲染方式:
- Markdown:渲染为富文本(复用 DSH 聊天同款渲染器)。
- HTML:可交互沙箱(脚本被隔离,碰不到 GUI 的 DOM/存储)。
- JSON:格式化 + 语法着色。
- CSV / TSV:表格视图(引号感知、首行作表头、最多 500 行 × 64 列)。
- 代码:常见语言语法高亮(Shiki,主题跟随 DSH 明暗)。
- PDF:浏览器原生查看器(≤20MB,含缩放/搜索)。
- Notebook(.ipynb):GitHub 风格静态渲染(代码高亮 + 图片/输出内联)。
- 图片:png/jpg/gif/webp/svg 等内联展示(≤8MB)。
- 其余:二进制给出提示,超大文本截断为纯文本。
- 文本编辑:Markdown / Python / JavaScript / TypeScript / JSON / HTML / CSS / Shell 等常见文本文件可点「编辑」,支持 ⌘/Ctrl+S 立即保存、未保存标记与返回预览;Python / JSON 等纯代码文件在编辑态保留与预览一致的左侧行号与语法配色,Markdown 返回预览时展示当前草稿。
- 自动保存:参考 VS Code
files.autoSaveDelay,停止输入 5 秒后自动保存;退出编辑时也会保存。⌘S / Ctrl+S保存成功后工具栏会短暂显示“已保存”。编辑态默认覆盖磁盘上的其他更改,工具栏不显示保存/取消按钮。 - 跟随会话:切到别的项目时,范围外的预览自动关闭。
- 自动重读:正在看的文件被外部(agent / 编辑器)修改时,预览内容几秒内自动更新;若你正在编辑,则保留草稿并提示冲突。
🧄 多行 GoalBar(附赠 · 蒜 · 味重提味)
把 DSH 原生那条总是被截断成一行、末尾 … 的 GoalBar,放开成多行完整显示,编辑控件也从单行 input 换成 textarea。
- 数据与工具完全复用原生:goal 的增删改查仍走 DSH 原生
create_goal/get_goal/update_goal,不替换、不遮蔽数据。 - 操作一致:暂停 / 恢复 / 编辑 / 清除按钮与原生 GoalBar 相同;编辑时
Ctrl/⌘ + Enter保存、Esc取消。 - 不改 DSH 源码:以更低优先级遮蔽默认实现,主题跟随桌面明暗。
🧂 模型实时速率徽标(附赠 · 盐 · 百味之首)
输入框正上方的一枚小徽标,模型生成时出现、结束自动消失——让你对「现在到底在等还是在跑、跑得多快」有直观感受。
- 等待阶段:灰色「正在等待模型...」(省略号 1→2→3 原地循环)。
- 流式阶段:token 计数 + 彩色
t/s速率(≥50 青 / ≥30 绿 / ≥15 黄 / 其余红)。 - 数据可信:来自模型真实流(不是浏览器端估算);用近 2 秒滑动窗口算瞬时速率,中途停顿会回到等待态,不会被摊成个位数。
安装
需要 DSH Desktop(或任何支持
dsh plugin add的 DSH 安装)。
dsh plugin add @lyhue1991/dsh-soup
或在 DSH Desktop「设置 → 插件 → 插件市场」搜索 dsh-soup 安装。安装后重启 DSH 即可生效。
上手
- 打开文件树:点击 Session log 右侧的 📁;空白新会话则在输入框上方右端找 📁。
- 预览文件:在文件树里双击文件,或右键选「👁 预览」。
- 看速率:向任意会话发一条消息,输入框上方即出现徽标。
- 多行 GoalBar:创建 goal 后自动以多行展示。
更新日志
- 0.4.x — Seti 图标字体(60 种字形覆盖 122 种扩展名)+ 空会话预览浮层(最大化/还原)+ 微信文章兼容 + 文本上限 8 MB + 关闭按钮尺寸修复 + 预览路径 rtl 修复 + i18n 语言适配 + 预览纯阅读模式 + 内部分区重排 + 预览头部冻结 + details 宽度对齐宿主合同。
- 0.3.x — Markdown 相对路径图片内联渲染 + 自动刷新(3s mtime 探测 + 指数退避)+ JupyterLab 风格工具栏图标。
- 0.2.0 — 改名
dsh-tree→dsh-soup。 - 0.1.x — 只读文件预览系统(md/html/json/csv/pdf/notebook/图片/代码高亮)、大文件流式下载、多行 GoalBar、模型吞吐徽标、空白新会话入口、跨平台 node:fs 文件核心。
开发
纯 JS 产物,无需构建:
lib/index.js— 宿主半区(注册/api/dsh-soup文件操作路由 +llm/stream速率统计)。lib/client.js— 浏览器半区(右侧文件树面板 + 预览 tab + 速率徽标 + 多行 GoalBar,内联 CSS)。cordis.patch.yml— 在组合中插入ui-dsh-soup。
git clone https://github.com/lyhue1991/dsh-soup.git
cd dsh-soup
vibeinging/dsh-desktop
zuorn/Tydora
skymecode/deepseek-harness-for-vscode
Ramenne/DeepSeek-Harness-Gov
anywhere-labs/dsh-desktop