DeepSeek Harness (dsh) is currently in developer preview, and interfaces may undergo breaking changes. During agent development, quickly locating context can often be difficult when working with long conversation histories. dsh-conversation-map is a plugin for the DeepSeek Harness web client that renders a draggable conversation map on the right side of the chat area, providing a navigation experience similar to the minimap in a code editor.
Features¶
This plugin is implemented through the Web conversation DOM contract. Its core features include:
- Dual-mode switching: When the width is smaller than 50px, a color-block mode is displayed, coloring messages by type (user, assistant, tool calls, commands, errors); hovering shows a content preview. When the width is 50px or larger, it automatically switches to thumbnail mode, displaying the actual structure of the conversation.
- Width adjustment by dragging: Hold the left-side handle of the map and drag it horizontally to adjust the width, ranging from 10 to 320px, with the right edge fixed. A real-time width badge is displayed while dragging.
- Quick scrolling and positioning: Click any position on the map to jump to the corresponding content, and hold and drag to scroll continuously. In thumbnail mode, holding the current conversation content frame tracks the scrolling.
- Hover to zoom preview: In thumbnail mode, hovering over any position on the map displays a zoomed preview window to the left of the cursor, fully showing the content of that line.
- Collapse and expand: Hover over the top of the map and click
»to collapse it into a 4px narrow bar; after collapsing, a«label is always shown at the top of the bar, and clicking the label or the bar expands it. - Real-time synchronization: When messages are streamed, tool calls occur, or the conversation is switched, the map refreshes automatically. Opening or closing the sidebar, the detail panel, or resizing the window also triggers map updates.
- Height adaptation: The map height stretches or shrinks in real time according to the conversation content. The thumbnail scaling ratio is always determined by the width and is independent of the conversation length.
Installation and Activation¶
To install this plugin, use the DeepSeek Harness plugin command:
dsh plugin --profile web add dsh-conversation-map
After installation, verify that the plugin layer has been mounted by running the following command:
dsh --profile web --dump-config
Then start the web client:
dsh --profile web
Technical Notes¶
This plugin is currently implemented based on the Web conversation DOM contract of dsh 0.1.x, and depends on the react platform module and the slots service. The host-side half is an empty implementation, while the browser-side half is mounted through the shell.overlay slot. The plugin does not make network requests or collect telemetry (apart from using localStorage for state persistence, there is no other persistence).
State is persisted in the browser’s localStorage, with the keys dsh-conversation-map:width and dsh-conversation-map:collapsed. This means that the adjusted width and collapsed state are retained after refreshing the page or switching conversations.
Summary¶
dsh-conversation-map provides visualized conversation navigation for the DSH web client and is suitable for developers who need to quickly locate context in long conversations. For more details and source code, see GitHub.