DSH Plugins

August 21, 2026 ยท View on GitHub

npm version npm version License: MIT

UI-only plugins for DeepSeek Harness (DSH) Web GUI. Installed cleanly through the official Profile-Plugin mechanism (dsh plugin) without modifying upstream Harness source code.


๐Ÿ“ฆ Packages

DirectoryPackageStatusWhat it does
ui-conversation-folded/@khalilhsu/dsh-ui-conversation-foldedActivePer-turn folding for chat: Each round's intermediate activity (thinking / CoT, tool calls, in-between narration) is neatly folded into a bounded 288px scroller. Final conclusion text and turn metrics stay outside and visible. Supports streaming auto-scroll, auto-collapse on summary, and global toggle.
query-navigator/@khalilhsu/dsh-ui-query-navigatorActiveCodex-style multi-turn query navigator: A fixed left-rail with one marker per user query. Highlights the active turn on scroll, click to jump, hover to preview. Supports on-demand loading of unloaded older turns. Fully standalone โ€” works with any conversation plugin.
cot-fold/@deepseek-ai/dsh-client-ui-cot-foldArchivedEarly experiment: capped/collapsed reasoning ("Think") rows only. Superseded by ui-conversation-folded.

๐Ÿš€ Quick Start (Install & Uninstall)

Run from your DeepSeek Harness environment:

# Per-turn folding
dsh plugin --profile web add @khalilhsu/dsh-ui-conversation-folded

# Query navigator (can be installed independently or together)
dsh plugin --profile web add @khalilhsu/dsh-ui-query-navigator

# Restart `dsh web`, then refresh your browser
dsh web

Uninstall

dsh plugin --profile web remove @khalilhsu/dsh-ui-conversation-folded
dsh plugin --profile web remove @khalilhsu/dsh-ui-query-navigator

๐Ÿ’ก Key Features (ui-conversation-folded)

  • Bounded Height Frame: Intermediate thought processes and tool calls are capped at 288px (configurable via --cot-fold-max-height) with internal scroll.
  • Collapsible Summary Bar: Each turn displays an expandable summary bar with Duration ยท Tool count ยท Thinking blocks.
  • Streaming-Aware Follow: Auto-scrolls to the newest tokens/tool outputs while generating. Pauses when scrolling up; resumes when back at the bottom.
  • Auto Collapse on Completion: Gracefully auto-collapses intermediate reasoning once the final answer begins streaming.
  • Questions Stay Visible: ask_user_question rows render outside the fold as interaction boundaries so pending "ๆ้—ฎยท็ญ‰ๅพ…ๅ›ž็ญ”" rows are never hidden.
  • Global Header Toggle: Persistent on/off toggle button (ๆ€่€ƒๆŠ˜ๅ  / ๆ€่€ƒๅฑ•ๅผ€) in the session header (persisted in localStorage).
  • Standard Attachment Slots: Fully aligned with DSH attachment slot contracts for message galleries and composer attachments.
  • Zero Loss of Interaction: All child interactions (inspect tool output, expand individual tools, markdown copying) remain 100% functional.

๐Ÿ’ก Key Features (query-navigator)

  • Full-Session Turn Rail: One marker per user query across the entire conversation, including unloaded older turns.
  • Scroll-Aware Highlight: The marker nearest the viewport reading line is automatically highlighted as you scroll.
  • Click to Jump & On-Demand Pagination: Click any marker to scroll to its query; unloaded turns are paged in on demand.
  • Hover Preview & Smart Excerpt: Lightweight Host projection provides 80-character excerpts plus image count badges for all turns without downloading heavy assistant history.
  • Global Header Toggle: Persistent on/off toggle button (Query ๅฏผ่ˆช) in the session header (persisted in localStorage).
  • Fully Standalone: Works with any conversation plugin that declares the conversation.input.dock slot โ€” no dependency on other plugins in this repo.

๐Ÿ› ๏ธ Local Development & Build

If you want to build or modify the plugin locally from source:

git clone https://github.com/KhalilHsu/dsh-plugins.git
cd dsh-plugins/ui-conversation-folded  # or query-navigator

# Symlink node_modules to your local deepseek-harness checkout
ln -s /path/to/deepseek-harness/packages/client/ui-conversation/node_modules node_modules

# Build the client & node bundles
npm run bundle

# Install locally into your profile
dsh plugin --profile web add /path/to/dsh-plugins/ui-conversation-folded

License

MIT