Introduction

DeepSeek Harness (DSH) adopts an “everything is a plugin” architecture and extends its capabilities through a plugin system. In long conversations, Markdown headings are scattered across many turns, making it difficult to quickly locate specific sections or jump to a turn. The dsh-quick-toc plugin extracts Markdown headings (H1–H6) from AI responses and generates a navigable outline panel. It groups items by conversation turn, covers the entire session, and supports search, highlighting, and smooth jumping.

Core Features

Grouped by Turn
Each user message and its following AI responses form a group. The group header displays the turn time and a first-line preview. Clicking the group header jumps to the beginning of the model answer for that turn.

Covers the Entire Conversation
Turns not yet loaded into the conversation window are still listed, with a “Not loaded” marker and preview. Clicking one of these entries loads the corresponding turn into the window and jumps to it.

Errors for Failed Turns
For turns that have no reply due to request timeout or upstream errors, the panel displays Request failed and the original error message. Clicking it jumps to the error location in the conversation.

Bilingual Chinese/English Interface
The interface language can be set to follow the host, Chinese, or English. Chinese timestamps display localized values such as “yesterday” and “day before yesterday”; English timestamps use yesterday or YY-MM-DD HH:MM.

Plugin Configuration Card
Expand the “Conversation Outline” card in “Settings → Plugins → Plugin Configuration”. You can adjust the language, default docking edge, visible heading levels, collapse handle position, fuzzy search, hover preview, and diagnostics. Modified fields are marked as “Customized” and can be reset individually.

Heading Row Subtitle
Below each heading row, the first sentence of the section content is displayed, allowing headings with the same name to be distinguished at a glance.

Hover Preview
When hovering over a heading row, the beginning of the section, the turn time, and the hierarchy path are shown.

Title/Full-Text Search
Two search scopes are provided: titles and full text. Clicking a result in the list jumps to it and highlights it. You can step through matches one by one with n/N + Enter, and close the search with Esc.

Tolerant Matching
Search automatically matches case, full-width/half-width characters, and consecutive whitespace. Enabling the “Fuzzy” option relaxes matching so that characters can appear between the characters of the keyword.

In-Conversation Highlighting
Matched keywords are highlighted in the conversation, and the current match is highlighted separately.

Sticky Group Headers
When scrolling the outline, the group header for the current turn is pinned to the top of the panel.

Level Filtering
The circular level button in the title bar opens H1–H6 toggles, which can be combined in any way.

Automatic Reading Position Tracking
When scrolling the conversation, the turn currently being read is marked with a blue frame, and the outline follows automatically.

Smooth Jumping
Clicking a heading jumps to that heading’s position in the conversation. The scroll animation is delegated to the browser; if the browser jumps instantly, the plugin renders the transition frame by frame on its own.

Back-to-Bottom Button
A floating button in the bottom-right corner of the list jumps to the latest entry in one click. It appears when the list is not at the bottom and disappears after reaching the bottom.

Dockable and Resizable
Drag the top bar to move the panel, and click ◀ / ▶ to switch between left and right docking. Drag the edge to adjust width and height (minimum width 120px). Panel content supports scaling from 50% to 200% (the slider changes in 5% steps), while the panel size itself remains unchanged.

Progressive Loading
By default, only the most recent groups are displayed. Scrolling upward expands the index and loads earlier conversation turns.

Boundary Hints
If you continue scrolling when already at the earliest or latest item, a brief hint appears at the bottom of the panel.

Markdown Awareness
Inline markup in headings is stripped. Lines beginning with # inside fenced code blocks are not treated as headings.

Dark/Light Theme Adaptation
The panel automatically adapts to dark and light themes and is shown only in the conversation view.

Installation and Enablement

Install it through the DSH CLI:

dsh plugin --profile web add dsh-quick-toc

After installation, restart DSH and open the Web UI. The panel is collapsed by default; click the handle on the edge of the conversation area to expand it.

Usage Examples

  • Jumping: Click an outline heading or group header to jump to the corresponding location. Entries marked “Not loaded” load the turn first and then jump. For failed turns, clicking the error line jumps to the corresponding location.
  • Search: The magnifying glass opens the search box. Enter a query, click a result to locate and highlight it, press Enter to step through matches, and press Esc to close.
  • Filtering: Click the circular level button in the title bar to open H1–H6 toggles and choose the levels to display.
  • Adjusting the Panel: Drag the panel edge to resize it or switch between left and right docking.
  • Loading History: Scroll upward in the outline to expand the index and load earlier conversation turns.
  • Returning to Latest: After scrolling far away, click the floating button in the bottom-right corner to return to the latest entry.
  • Adjusting Settings: Expand the “Conversation Outline” card in Settings to adjust parameters.

Notes

  • DSH Version Requirement: The plugin requires DSH version >= 0.1.5-rc.1.
  • Host Dependency: It depends on the host’s turnOutline projection and conversation jump loader.
  • Compatibility Fallback:
    • If the host lacks the turnOutline projection, only loaded turns are displayed.
    • If the host lacks the jump loader, unloaded entries are displayed but do not jump.
  • Diagnostics Logging: By default, no logs are printed when the panel mounts. Enable “Print diagnostic logs to the console” in Settings.
  • Theme Scope: The theme only applies to the conversation view.

Summary

dsh-quick-toc provides DSH users with the ability to extract structured navigation from cluttered conversations, addressing the difficulty of locating content in long sessions. After installation and the configuration described above, developers can quickly find required content in long conversations. For more details and source code, see the GitHub repository or the community catalog.