Preface

Conversations with models in DSH tend to be linear: one question followed by a long answer. When you hit an unfamiliar word in the third paragraph, you can only keep asking within the same session. A few minutes later, the original question has scrolled up the screen, the context piles up, and all you really want is to understand that one word.

Asking follow-ups in the same thread drags the entire conversation history into the next request; starting a brand-new blank session instead easily loses the thread of “which answer this word was picked from”. DSH Question Map (dsh-question-map), targeting DSH Web and DSH Desktop, lets you select a fragment in the transcript and click “Ask” to open a side session without the main-thread context, records each follow-up as a node, and assembles a zoomable, exportable grid of questions.

What Is This

DSH Question Map is a community plugin for DeepSeek Harness (dsh), maintained by huahuazz, with source code on GitHub. The current package version is 0.4.0, licensed under MIT. It solves this problem: independently clarifying a local term inside a long reply while preserving the association of “which text it was initiated from”, and connecting root questions and sub-questions with a grid.

UI and Entry Points

  • Entry: In the button area on the left side of the input box (the conversation.input.left slot) there is a square button (Z-shaped node icon + node count badge), shown only in conversations related to the session grid; it moves as the input box height changes.
  • Popover: Anchored next to the selection; can be moved by dragging the title bar and resized by dragging the bottom-right corner (size is written to local storage); it has no fixed buttons and closes when clicking outside.
  • Grid: A fullscreen canvas with the session anchor on the left and the root question plus sub-questions expanding to the right; the left vertical toolbar offers export, fit view, clear, and close. Nodes are colored by depth; on hover, the entire ancestor chain is highlighted while the rest dims.

If the host has no conversation.input.left slot, the entry button does not appear, but the Popover and grid remain usable without throwing errors.

Core Features

Capability Description
Ask from selection Select text in a reply; “Ask” appears beside it. The Popover anchors to the selection and can be dragged and resized.
No inherited context Each side question is a new session carrying only that word plus a short surrounding quote, not the main-thread history.
Continue inside the Popover Follow-up questions stay in the same side session without disturbing the main conversation.
Select again to branch Selecting text in a side question’s answer generates a sub-question, and the grid grows automatically.
Question grid Session anchor → root question → sub-questions, connected by directed edges; scroll to zoom, drag the canvas to pan.
Three ways to navigate Click a node body to switch to that question’s session; click the small dot on the node’s right edge to preview the Popover without leaving the current session; click the session anchor to return to the main session where the chain started.
Export PNG The grid toolbar’s download button renders the entire grid as an image.
Survives restart Grid and Popover sizes are saved in browser local storage.

The plugin itself makes no network requests; model calls go through DSH’s normal session channel. Each side question corresponds to a real session (title starting with ⟂), sharing the same model, tools, and streaming capabilities as the main session.

Installation and Activation

Before installing, please confirm dsh >= 0.2.1-rc.2 (see engines.dsh in the package). The plugin runs with the permissions of the current dsh process; it is advisable to review the source code and the MIT license before installing.

DSH Web (install from GitHub while it is not yet published to npm):

dsh plugin --profile web add github:huahuazz/DSH_question_map

Once published to npm, this can be shortened to dsh plugin --profile web add dsh-question-map.

DSH Desktop: Install via Settings → Plugins, or run:

dsh plugin --profile desktop add github:huahuazz/DSH_question_map

After installation you must fully quit and restart DSH, as the client bundle is injected during compositional loading.

Typical Usage

  1. Select a piece of text in any model reply.
  2. Click “⟂ Ask” next to the selection, or press Alt+Enter. The Popover opens next to the selection and begins streaming the answer.
  3. Click the Z-shaped node button in the cluster at the bottom-left of the input box to open the fullscreen question grid.
  4. In the grid: click a node to return to that question’s session; click the small dot on the node’s right edge to preview the Popover; click the session anchor to return to the source main session.

When you need to keep a record, use the export function in the grid’s left toolbar to get a PNG of the entire grid.

Data, Privacy, and Known Limitations

  • Nodes and edges are stored in local storage under the key dsh-question-map:graph; the Popover size is stored under dsh-question-map:card-size.
  • Side questions appear in the DSH session list — this is the cost of reusing real sessions.
  • The grid is stored per site origin; switching ports or clearing site data will lose the grid.
  • Every side question is a real model call.

DeepSeek Harness’s ecosystem philosophy is “everything is a plugin”; community directories (such as SkillHub) are independent sites with no official affiliation with DeepSeek / High-Flyer. For installation and usage in this article, the repository README takes precedence.

Conclusion

If you frequently “dig into details” of individual terms inside long answers without wanting to blow up the main-thread context, Question Map binds selection-based asking, side sessions, and grid browsing together into a direct path. Directory page: SkillHub - DSH_question_map; source code and English documentation: github.com/huahuazz/DSH_question_map.