DeepSeek Harness 画卷式消息导航栏:会话面板右侧一条竖排导轨,每条用户消息一个指示点,scroll-spy 跟随阅读位置,hover 展开画卷查看完整消息预览,点击跳转任意历史消息;与 better-sidebar 面板动画同步避让。
Scroll-painting message rail for DeepSeek Harness: a slim right-edge rail with one indicator per user message, scroll-spy follows the reading position, hover unfolds a canvas with full message previews, and clicking jumps to any history message; animates in sync with better-sidebar panels.
安装
dsh plugin --profile web add github:Max-Null/dsh-chat-railGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
面向 DeepSeek Harness 的画卷式消息导航栏:会话面板右侧的一条竖排导航,每条用户消息一个指示点,scroll-spy 跟随阅读位置,hover 展开画卷查看消息列表,点击跳转任意历史消息。
不同于市面上"面板弹出式"的导航插件,dsh-chat-rail 采用画卷式展开:收起时是一条干净的竖条,hover 时从右往左平滑展开,像打开画卷一样。
截图
| 展开态(画卷 + 消息预览 tip) | 收起态(与 better-sidebar 共存) |
|---|---|
![]() |
![]() |
为什么比市面上的导航栏优秀
市面上的会话导航插件(chat-timeline / milestone / msg-nav / turn-rail…)大多只做"指示条 + 点击跳转",在真实使用中有一堆体验问题。dsh-chat-rail 针对每一个问题给出了答案:
| 能力 | 市面同类 | dsh-chat-rail |
|---|---|---|
| 与侧边栏/底栏共存 | ❌ 展开时与 better-sidebar 错位、遮挡 | ✅ 跟随 CSS 变量动画同步避让:--dsh-sidebar-width / --dsh-sidebar-height,与面板共享同一 transition,右栏/底栏展开收起时导航无缝跟随,互不遮挡 |
| 展开形态 | ❌ 面板突兀弹出,高度错位 | ✅ 画卷式展开:单容器从右往左平滑展开,高度天然一致 |
| 阅读位置跟随 | 高亮点会跑出显示区 | ✅ 导航条自动滚动,高亮点持续居中:无论会话滚到哪里,当前消息的指示点始终在导航可视区中央 |
| 切换会话定位 | 回到顶部 | ✅ 自动定位到新会话当前阅读位置 |
| 消息预览 | 浏览器原生 title(与悬停双重提示) | ✅ 自绘 tip 面板:完整内容、动画结束后精准定位、无原生 title 干扰 |
| 消息信息 | 只有预览文本 | ✅ 编号 + 相对时间 + 文本三列对齐:编号固定宽、时间靠右,文本区域最大化且整齐 |
| 长会话跳转 | 干等卡死 | ✅ 加载反馈:跳转远距离消息时显示 spinner + "加载中",收起态只留图标 |
| 主题适配 | 部分 | ✅ 全部使用 DSH 主题变量(--dsw-alias-*),浅深色无缝适配 |
| 无侧边栏兜底 | ❌ 依赖特定插件 | ✅ 纯 DSH 环境开箱即用,固定右缘 + 垂直居中 |
兼容性(重点)
- 与 dsh-better-sidebar 深度兼容:导航栏的右缘和垂直位置跟随 better-sidebar 的
--dsh-sidebar-width/--dsh-sidebar-heightCSS 变量,右栏和底栏展开/收起时导航与面板共享同一段 transition 动画同步移动,永不错位、永不遮挡(包括底栏右上角的收起按钮)。 - 无 better-sidebar 也能用:变量缺失时走 CSS fallback(右缘 12px + 垂直居中),纯 DSH 环境开箱即用。
- 需要 DSH ≥
0.1.0-rc.6。
安装
dsh plugin --profile <name> add @max-null/dsh-chat-rail
或手动加入 profile 的 package.json dependencies + dsh.profile.bundles:
- id: chat-rail
name: '@max-null/dsh-chat-rail'
交互
- hover 导航条:画卷展开,显示编号 / 相对时间 / 消息预览
- hover 消息项:左侧弹出完整内容 tip 面板(含图消息在文本上方显示图片缩略图)
- 点击消息项:跳转到会话中对应消息(未加载的历史自动翻页补载)
- 滚动会话:高亮点跟随,导航条自动滚动保持居中
- 含图消息:展开态显示柔和图片角标(收起态不显示,保持竖条干净)
架构
- host 半端(
lib/index.mjs):注册chatRail会话投影——从 session log 折叠用户消息锚点{ seq, time, text, id }(排除插件/工具注入的上下文行) - client 半端(
lib/client.js):conversation.input.dock槽注入,portal 渲染到 body - 数据源优先序:
chatRail投影 → 已加载聊天节点 → 后台 loadOlder 循环
SSID 系列
本插件属于 @max-null/* 插件系列——这一系列共同构成 SSID(思灵 · Seek Soul in Darkness) 桌面体验。SSID 是整合它们的盒:dsh-chat-rail · dsh-chinese-thinking · dsh-draft-polish · dsh-guardian · dsh-habit · dsh-header-unify · dsh-memory · dsh-node-appearance · dsh-plugin-center · dsh-skill-mcp-center · dsh-ssid-panels · dsh-ssid-zh-ui。
This plugin belongs to the @max-null/* family — a set of plugins that together form the SSID (思灵 · Seek Soul in Darkness) desktop experience.
开发
pnpm install
pnpm typecheck # tsc 严格类型检查
pnpm build # 产出 lib/
License
MIT
原始 README: https://github.com/Max-Null/dsh-chat-rail/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 草稿衔接与导出。

