DeepSeek Harness plugin

dsh-chat-rail

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.

Jump to install

Source facts

Repository
Max-Null/dsh-chat-rail
Latest update
Aug 21, 2026
Category
UI Enhancements
GitHub stars
0

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/Max-Null/dsh-chat-rail
GitHub: https://github.com/Max-Null/dsh-chat-rail
Plugin: dsh-chat-rail
Author: Max-Null
Install command: dsh plugin --profile web add github:Max-Null/dsh-chat-rail

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

@max-null/dsh-chat-rail

面向 DeepSeek Harness画卷式消息导航栏:会话面板右侧的一条竖排导航,每条用户消息一个指示点,scroll-spy 跟随阅读位置,hover 展开画卷查看消息列表,点击跳转任意历史消息。

> 不同于市面上"面板弹出式"的导航插件,dsh-chat-rail 采用画卷式展开:收起时是一条干净的竖条,hover 时从右往左平滑展开,像打开画卷一样。

截图

展开态(画卷 + 消息预览 tip)收起态(与 better-sidebar 共存)
![rail-1](docs/shots/rail-1.png)![rail-2](docs/shots/rail-2.png)

为什么比市面上的导航栏优秀

市面上的会话导航插件(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-height CSS 变量,右栏和底栏展开/收起时导航与面板共享同一段 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