dsh-plugin-mindmap
MindMap — a DeepSeek Harness plugin that distills a conversation into persistent storylines and renders them as an interactive map.
中文文档 | English
MindMap screenshot
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.json at 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 (
MindMap in 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.json exists 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 prepare build script (it builds lib/ on install). Follow the printed hint and add the key to $DSH_HOME/profiles/web/pnpm-workspace.yaml:
allowBuilds:
- dsh-plugin-mindmap
Then run the install command again.
-
Restart web: stop the current dsh web process and run dsh web again.
-
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_LOG format upgrade) runs one full distillation with a progress bar; after that every open is instant.
How it works
- Host half (
src/host): the MindMapGateway service (Typert remotes mindmap/graph and mindmap/progress) reads the session log, classifies incrementally (rules + LLM), reads/writes DEV_LOG.json, and runs background sync tasks with progress.
- Client half (
src/client): registers the MindMap tab in the conversation.view slot; fetches the graph through ctx.remote, renders instantly from DEV_LOG, and polls background progress for auto-refresh.
- RPC: Typert protocol, with manifests hand-written in
src/host/typert.host.js (host side) and src/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.
License
MIT