Preface¶
When developing with agents, sessions are often the most important records: a topic dragging on for hours, with branches, retractions, and restarts. Wanting to look back on “where the discussion on this problem reached, why it was decided this way,” relies only on raw logs, scrolling through them one by one; after restarting the project or switching agents, this context is basically lost.
dsh-plugin-mindmap targets this scenario: while the conversation is ongoing, it distills content into independent storylines, renders them into an interactive map, and persists them into the workspace.
What is this¶
dsh-plugin-mindmap is a DeepSeek Harness (DSH) plugin maintained by ImCabbage, licensed under MIT. One-sentence positioning: distills sessions into persistent storylines and renders them into an interactive map.
DSH’s philosophy is “Everything is a plugin”; the session view, RPC, and persistence mechanisms are open for plugin extension. This plugin is built on these extension points: the Host side handles classification and persistence, while the Client side registers a tab in the session view for rendering.
Core Features¶
Storyline Classification: Rules First, Incremental Execution¶
The plugin automatically organizes dialogue logic and identifies key thought forks. Each storyline corresponds to a distinct theme; classification rules take precedence with LLM as a fallback, running incrementally—each new message is judged only once as append, fork, or new, without re-clustering the whole set.
Clicking Nodes to Review Past Q&A¶
Clicking a node focuses its storyline and opens a details card containing the question, a one-line summary of tool calls, and the answer. Longer storylines are folded into multiple lines at semantic breakpoints, labeled with bold tags for rounds.
Persistent Development Memory¶
Classification results are stored in DEV_LOG.json in the workspace root directory—this file itself is the distilled memory. After restarting the project or switching agents, the map reloads instantly with 0 LLM calls.
MindMap Tab in Session View¶
The plugin registers a MindMap tab in the session view: one row per theme, drawn with Bezier gradient ribbons, with six node shapes (question / decision / feature / bugfix / refactor / research). Under each title is a status badge—In Progress (green), Blocked (amber), Completed (blue), Discussion Ended (gray), followed by a description line.
Instant Opening and Background Progress¶
When DEV_LOG.json exists and the format version matches, opening requires no rebuild and 0 LLM calls; new messages sync in the background, and the map refreshes automatically. For progress presentation, full rebuilds show a progress bar, while incremental syncs show a small tip.
Implementation¶
- Host side: The MindMapGateway service (Typert remotes
mindmap/graphandmindmap/progress) is responsible for reading session logs, incremental classification (rules + LLM), reading and writingDEV_LOG.json, and running background sync tasks with progress. - Client side: Registers a MindMap tab in the
conversation.viewslot, fetches graphics viactx.remote, renders fromDEV_LOGinstantly, and polls background progress for automatic refresh. - RPC: Uses the Typert protocol; the manifest is handwritten in
src/host/typert.host.js(host side) andsrc/host/typert.remote-client.js(client mount side), using strict zod encoding/decoding.
Installation and Enablement¶
Prerequisites: DeepSeek Harness installed (dsh command available), using web profile, and pnpm available in PATH (dsh plugin forwards to pnpm; install with npm install -g pnpm if missing).
Installation command:
dsh plugin --profile web add github:ImCabbage/dsh-plugin-mindmap
- This command uses pnpm to install the package into the profile and adds it to the profile’s bundle list automatically (package declares
dsh.bundle). Host and browser bundles are pre-built artifacts provided with the repository, no extra build needed. Installation writes to$DSH_HOME/profiles/<name>, directory must be writable. - Restart web process: stop running
dsh weband restart. Refreshing the browser page is not enough—combinations are fixed at startup. - Verify mounting:
dsh --profile web --dump-config | grep mindmap
Should see - id: mindmap next to name: dsh-plugin-mindmap.
- Open any session, the MindMap tab will appear in the view tabs.
Typical Usage¶
- Normal chatting, MindMap classifies in the background, progress shown inside the tab.
- Open MindMap tab:
- Each colored ribbon is an independent theme, nodes arranged left-to-right by time.
- Click a node to focus its storyline and open a details card (Question / Tool Call Summary / Answer).
- Click blank space to clear focus.
- Small text under titles shows current status (badge + description).
- First opening (or
DEV_LOGformat upgrade) runs a full distillation with a progress bar; subsequent openings are instant.
Local development uses a separate test profile, not affecting the daily web profile:
dsh plugin --profile mindmap-test add .
After modifying source, run build; esbuild generates lib/index.js (host) and lib/client.js (browser):
npm install
npm run build
Restart dsh web for the test profile after building. Note that the build artifacts lib/ are committed to the repository; git install uses them directly, so after modifying source, lib/ and source changes must be committed together.
Applicable Scenarios and Notes¶
Suitable scenarios: Development work with long session cycles and many topics; need to review past decision processes after restarting projects or switching agents; want to reuse session structure as development memory at low cost.
A few notes:
- The plugin creates
DEV_LOG.jsonin the root of the project workspace where used; add to project.gitignoreif not wanting to commit. - First full distillation needs available model credentials (LLM call); if LLM call fails, the tab shows a warning line, please check model credentials and network.
- Permission /
EROFS/ Read-only errors indicate the installation target directory$DSH_HOME/profiles/<name>is not writable; please switch to a writable environment and execute again. - The plugin has no build script (pre-built
lib/provided with repo); pnpm’s allowBuilds hint printed by dsh after pnpm failure is not applicable/ignorable; check the real pnpm error above it. - The plugin runs with the permissions of the current dsh process. Recommend reviewing repo source and confirming the license (MIT) is expected before installing.
Conclusion¶
dsh-plugin-mindmap distills session content into persistent storyline maps, making it unnecessary to rely on scrolling logs to review decisions and restore context. For DSH users who rely on sessions as their primary work records, it is worth a try.
Community directory page (independent site, no official affiliation with DeepSeek or Hypersphere): https://www.skillhub.cn/plugins/ImCabbage/dsh-plugin-mindmap
GitHub repository: https://github.com/ImCabbage/dsh-plugin-mindmap