Back to marketplace

dsh-scroll-timeline

UI & Experience

invalidnaaaame/dsh-scroll-timeline

ChatGPT-style scroll timeline for the chat sidebar in DeepSeek Harness Web: magnetic mountain hover, click to jump to user messages.

  • chatgpt
  • deepseek-harness
  • dsh-plugin
  • dsh-plugin-market
  • dsh-plugins
  • scroll-timeline
GitHub Stars
5GitHub
Views
0DSH Plugin Hub
Forks
1GitHub
Open issues
0GitHub Issues
Manifest version
0.1.0dsh-scroll-timeline
Latest push
Aug 23, 2026GitHub
License
MITTypeScript
Plugin type
Host + ClientRuns in both Host and Web Client

README

View source

An evenly spaced node rail on the right edge of the sidebar (one horizontal bar per user message) — the peak bar follows your reading position, hovering grows a magnetic "mountain" (design ratios 39/30/21/15/9; base and peak widths are adjustable via CSS variables), a hover preview card (6-line clamp), click-to-jump with smooth scrolling and a brand-blue highlight, full history always visible, and auto-hide when there are fewer than 2 user messages. Form factor: a bundle plugin in the official form factor (dsh.bundle + dshClient channel, browser-only, empty Node half), 0 patches. Third-party plugin, not affiliated with the official DeepSeek Harness project.

Compatibility: verified on dsh 0.1.0-rc.6 through 0.1.1-rc.2 (the anchor contract data-time-hover-root / data-chat-flow is still present in the latest release).

Derived from vlln/dsh-navbar (MIT, spec issue dsh-external/issues#144), with the interaction redesigned: horizontal bar nodes, magnetic mountain hover, sidebar-adjacent positioning, and full history.

Preview

dsh-scroll-timeline (left: reading-position peak bar; right: hover magnetic mountain)

Features

FeatureDescription
Scroll timelineVertical node rail on the right edge of the sidebar, one horizontal bar per user message (3px tall, 14px hit area)
Reading positionPeak bar (39px brand blue) follows the current reading position
Magnetic mountainWhile the pointer is over the rail, the nearest node becomes the peak and neighbors extend in progressively decreasing amounts (39/30/21/15/9)
Hover previewHovering a node shows a message preview card (6-line clamp, aligned with the official HoverCard look, opens to the right)
Click to jumpSmooth-scrolls to the message + brand-blue highlight ring
Full historyAlways shows every historical node; long sessions scroll within the container
Auto-hideHidden with fewer than 2 user messages or outside the chat page

Zero data-channel dependencies: driven only by the official anchor attribute (data-time-hover-root, user rows since 0806); no polling, no routes, no tools.

The base and peak widths can be tuned via CSS variables (on the rail container):

[data-dsh-navbar] {
  --dsh-navbar-base-w: 9px;  /* base width */
  --dsh-navbar-peak-w: 39px; /* peak width (hover/active) */
}

Install

Recommended: one-line git install (build artifacts are committed; git sources don't trigger a build):

dsh plugin --profile web add "github:invalidnaaaame/dsh-scroll-timeline#main"

Or from a local directory (with source): git clone, then cd dsh-scroll-timeline && dsh plugin --profile web add ..

After installing, restart web for it to take effect; the Settings → Plugins panel can disable/enable it.

Usage

Works out of the box; no commands, no tools. The timeline appears on the right edge of the sidebar in the chat (Chat) view; hover to preview, click to jump. Animations are disabled under prefers-reduced-motion.

Development

pnpm install
pnpm run build      # tsdown: client bundle (lib/client.js)
  • client: src/client/index.ts (self-rendered DOM + official anchor contract, no React dependency)
  • Node half: src/index.mjs (empty apply; the bundle mount carrier)

License

MIT. Derived from vlln/dsh-navbar (MIT, Copyright (c) 2026 Sam Gao (vlln)); see LICENSE.

Comments

0
Newest first