DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Question Rail — DSH Plugin for DeepSeek Harness
← Plugins
Q

dsh-question-rail

Question Rail

DSH web plugin: Mimics the question rail on the right side of the deepseek web interface—a vertical question bar along the right edge that is normally collapsed into a narrow column of short horizontal lines, expands when the mouse approaches, lists the user’s questions from each round of the curren

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:LeonSone/dsh-question-rail#08fcaf92cfd429eead14da488622037cc3adf298
READMECompatibilityVersions

Description

DSH web plugin: Mimics the question rail on the right side of the deepseek web interface—a vertical question bar along the right edge that is normally collapsed into a narrow column of short horizontal lines, expands when the mouse approaches, lists the user’s questions from each round of the current session, and smoothly scrolls to the corresponding conversation position when clicked. Mimics the deepseek.com right-edge question rail.

Compatibility and provenance

Question Rail is published as dsh-question-rail and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/26/2026

Versions

0.1.0stable
8/26/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/4/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-question-rail

English | 中文






A DeepSeek Harness web plugin that adds a right-edge question rail like the deepseek.com chat — a narrow strip of ticks on the right edge that expands on hover to list every user turn in the current conversation, and jump-scrolls back to that turn when clicked.

  • One rendering, two states — the collapsed tick column and the expanded list are the same .qrl_item elements. Collapsed shows only each item's right-edge tick; hovering widens the panel to reveal the text. Identical style, identical spacing, identical right reference line.
  • Jump to any round — click a question, and the chat scrolls smoothly to that turn (data-chat-anchor-key anchor) with a brief highlight ring.
  • Conversation-only — reads the live per-session chat store (view from ctx.slots.entries("conversation.session") + resolveStore), so it renders only on the chat view and hides instantly on 轨迹 / 上下文 / Design / PPT or the empty home.
  • Full history — DSH conversation history is windowed (hasMore). The rail auto-calls session.loadOlder() in a loop until hasMore === false, so it lists all rounds, not just the loaded window.
  • Performance-tuned — useSessions selects only current; the rail subscribes to a render signature (question set + active view) instead of the whole conversation snapshot, so streaming output / tool calls don't re-render the list. Skip-free typing, stable handlers, signature-memoized items.
  • Theme-aware — panel text & the hover detail box follow body[data-ds-dark-theme] (dark: white text on transparent; light: black text). The panel itself is transparent (no card, no border).
  • Keyboard accessible — each question is role="button" with tabIndex=0, Enter/Space triggers.
  • Zero runtime dependencies — the node half is intentionally empty (it only makes the loader discover the package); the browser half uses only react / react/jsx-runtime seed words.

How it works

LayerWhat happens
Node half (lib/index.js)Empty apply() — just enough to be an active cordis loader entry so dsh-client-modules publishes /plugins/dsh-question-rail/client.js.
Browser half (lib/client.js)Registers via window.__ModuleLoader__.load, then apply(ctx) injects the rail into the shell.overlay slot (frame-wide, additive, click-through until the entry opts in).
DataReads the current session's ConversationSnapshot.nodes (full list, not the windowed chat.order), extracts user/steering turns, and maps each seq → chat key for scroll anchors.
View gatingctx.slots.entries("conversation.session") → resolveStore(handle, sessionId) → store.getSnapshot().view — the authoritative source DSH's own header tabs use. Renders only when view === "chat".

Installation

# From a local checkout (dev / link mode — source edits take effect on hard-refresh)
dsh plugin --profile web add link:D:/path/to/dsh-question-rail

# Or straight from GitHub (requires git + a GitHub token on this machine)
dsh plugin --profile web add github:LeonSone/dsh-question-rail

dsh plugin add adds the package to the profile's dependencies; because the package declares dsh.bundle, it is automatically appended to dsh.profile.bundles.

New client packages need a restart. dsh.client discovery scans only at boot for new packages (bundle content changes hot-reload). After first install, restart dsh web (or the headless runner), then hard-refresh the browser (Cmd/Ctrl+Shift+R).

Usage

Once installed, a narrow strip of ticks appears along the right edge of an active chat conversation:

InteractionBehavior
Move mouse near the right edgeThe strip widens, revealing each round's question as a single line (12px, right-aligned, trailing tick).
Hover a single questionA detail box appears on the left showing the full question text (scrollable up to 50vh).
Click a questionThe chat scrolls smoothly to that turn and flashes a highlight ring.
Switch to 轨迹 / 上下文 / Design / PPTThe rail hides instantly (chat-view gate).
Empty / home screenNothing renders.

Development

lib/client.js          browser half (ModuleLoader bundle, injects into shell.overlay)
lib/index.js           node half (empty apply; discovery only)
cordis.patch.yml       bundle patch (mounts the node half)
test/*.mjs             headless contract & extraction tests

Run the checks:

node test/bundle-contract.test.mjs   # __ModuleLoader__.load / apply / inject / shell.overlay registration
node test/bind-fix.test.mjs          # closure-bound getSnapshot/subscribe (no lost-this crash)
node test/extract.test.mjs           # full-list extraction: user/steering only, anchor mapping
node test/loadolder.test.mjs         # loadOlder loop until hasMore=false (full history)

License

MIT