dsh-plugin-mindmap
MindMap — a DeepSeek Harness plugin that distills a conversation into persistent storylines and renders them as an interactive map.
中文文档 | English

Highlights
- Auto-organizes conversation logic and identifies key forks in thinking. Every storyline is one independent topic; rule-first, LLM-fallback classification runs incrementally — each new message is decided once (append / fork / new), never re-clustered in bulk.
- Click a node to revisit any past Q&A — efficiently distilled. Each node opens a detail card with the question, one-line summaries of tool calls, and the answer. Long storylines fold into multiple rows at semantic breakpoints, with bold labels marking the turns.
- Auto-distilled, persisted development memory. The classification is stored in
DEV_LOG.jsonat the workspace root. Restart the project or switch agents — the map reloads instantly with 0 LLM calls and keeps its memory.
Features
- Storyline map tab (
MindMapin the session view): one row per topic, bezier gradient ribbons, six node shapes (question / decision / feature / bugfix / refactor / research). - Status badges under every title:
进行中(ongoing, green) /有阻塞(blocked, amber) /已完成(done, blue) /讨论结束(discussion ended, gray), followed by a one-line description. - Instant open:
DEV_LOG.jsonexists and its format version matches → no rebuild, 0 LLM; new messages sync in the background and refresh automatically. - Background progress: full rebuilds show a progress bar; incremental syncs show a small hint.
Install
Prerequisite: DeepSeek Harness installed (dsh command available) with a web profile in use.
From GitHub (current)
dsh plugin --profile web add github:ImCabbage/dsh-plugin-mindmap
This installs the package into the profile with pnpm and adds it to the profile's bundle list automatically (the package declares
dsh.bundle).First git-source install: pnpm asks to allow this package's
preparebuild script (it buildslib/on install). Follow the printed hint and add the key to$DSH_HOME/profiles/web/pnpm-workspace.yaml:allowBuilds: - dsh-plugin-mindmapThen run the install command again.
Restart web: stop the current
dsh webprocess and rundsh webagain.Open any session — a MindMap tab appears in the view tab bar.
From npm (once published)
dsh plugin --profile web add dsh-plugin-mindmap
Restart dsh web afterwards.
Local development
dsh plugin --profile mindmap-test add .
(A separate test profile keeps your daily web profile untouched.)
Usage
- Chat normally; MindMap classifies in the background (progress is shown inside the tab).
- Open the MindMap tab:
- each colored ribbon is one independent topic, nodes ordered left-to-right by time;
- click a node: focus its storyline and open the detail card (question / tool-call summaries / answer);
- click empty space: clear focus;
- the small line under each title is its current status (badge + description).
- The first open (or a
DEV_LOGformat upgrade) runs one full distillation with a progress bar; after that every open is instant.
How it works
- Host half (
src/host): theMindMapGatewayservice (Typert remotesmindmap/graphandmindmap/progress) reads the session log, classifies incrementally (rules + LLM), reads/writesDEV_LOG.json, and runs background sync tasks with progress. - Client half (
src/client): registers theMindMaptab in theconversation.viewslot; fetches the graph throughctx.remote, renders instantly fromDEV_LOG, and polls background progress for auto-refresh. - RPC: Typert protocol, with manifests hand-written in
src/host/typert.host.js(host side) andsrc/host/typert.remote-client.js(client mount side), strict zod codecs.
Develop
npm install
npm run build # esbuild: lib/index.js (host) + lib/client.js (browser bundle)
Rebuild after changes, then restart the test profile's dsh web.
No comments yet. Be the first to write one.