dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Persistent collaborative Excalidraw canvas for the DSH Web GUI, where boxes get their own Agent Teams teammates under a canvas lead.
A persistent Excalidraw canvas for DSH where agents draw alongside you: draw a box, say what goes in it, and an agent takes the box, while a lead agent plans how the boxes work together.

Six boxes, each asked only "<continent> (see note)". The agents agree on one projection between themselves and draw a single world map, from memory, in under six minutes.
Needs DSH 0.2.x with its Agent Teams plugin. MIT licensed.
Plugins page (DSH Web or Desktop): open Plugins in the sidebar and turn on Agent Teams. Then choose Add plugin, paste this address and install:
https://github.com/aur3l14no/dsh-mindmap/releases/download/v0.1.0/dsh-mindmap-0.1.0.tgz
Terminal (a CLI Web profile):
dsh plugin --profile web add @deepseek-ai/dsh-experimental-agent-team-profile@$(dsh --version)
dsh plugin --profile web add https://github.com/aur3l14no/dsh-mindmap/releases/download/v0.1.0/dsh-mindmap-0.1.0.tgz
dsh web
Ask an agent: paste this into DSH (Creator mode), Claude Code, Codex or any coding agent:
Install the DSH plugin dsh-mindmap by following
https://raw.githubusercontent.com/aur3l14no/dsh-mindmap/HEAD/docs/install.md
Then open Mindmap in the sidebar, pick a workspace and create a canvas. Press F, drag a box, type what it should hold and press Enter.
Besides the usual drawing tools (notes, text, shapes, arrows, drag, marquee select, zoom, undo/redo, autosave):
Dependencies, relays and conflicts between agents are not a canvas mechanism: the lead and its teammates settle them with Agent Teams (messages, the task board), as a team working in one workspace does. Scheduling stays with DSH's automation tasks.
Every Session in a workspace that has a canvas gets three tools and a short canvas policy (claim and lock a box before drawing, message the holder instead of working around a lock, let the drawing be the report and message others only when they must act, use only these tools on canvases). Their descriptions, schemas and errors are the whole contract.
| Tool | Purpose |
|---|---|
canvas_read | Who you are on the canvas, its boxes with owner and lock holder, and elements as compact Excalidraw JSON, for the canvas, one box or chosen ids. |
canvas_view | A PNG of the canvas, a box, ids or a region, drawn like the canvas, with optional coordinate grid. |
canvas_write | One atomic batch of creations, partial updates (by id), group moves and copies (placed, scaled and turned as a whole), restacking (above/below), deletions and box locks ("lock": true/false). |
An agent locking a box becomes its owner, as does a teammate locking a box the lead drew for it. Only the holder changes a locked box; the canvas lead may lift a teammate's lock (locking the box again gives it back to the teammate), and only the user lifts a lock the user set. Helpers an agent starts write as that agent.
Everything lives in the workspace:
.mindmaps/<canvas>/
canvas.excalidraw standard Excalidraw scene; boxes keep owner and lock in customData,
and "mindmap.sessionId" names the canvas lead Session
exports/ images rendered by canvas_view
Refreshing the page or restarting DSH restores canvases, boxes, locks and the lead with its team; nothing is replayed.
Set these on the mindmap entry in the profile's cordis.patch.yml:
- id: mindmap
config:
fontFiles: [/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc]
| Option | Default | Meaning |
|---|---|---|
fontFiles | [] | Font files used for images agents see, such as a CJK face. Empty uses the first installed CJK system font. CJK text in Excalifont, the default font, is drawn with Excalidraw's own Xiaolai instead. |
teammateProvider | spawn | The subagent provider a box's teammate starts with, as Agent Teams uses for fresh teammates. |
npm install --ignore-scripts # peer dependencies come from DSH
npm run build # client bundles and font assets
npm test
npm run parity # PNG renderer next to Excalidraw's own export
To try a checkout, add it to a profile with
dsh plugin --profile web add link:$PWD and rebuild after changes. A release
attaches the built npm pack tarball as dsh-mindmap-<version>.tgz; update
the address under Install to match.
client.js registers the page and its embedded conversation;
client.canvas.js (Excalidraw) loads on first visit. index.js is the Host
plugin: src/host/ holds the canvas store, lock and write rules, the canvas
team, tools, routes and the PNG renderer; src/shared/ is used by both sides.
The idea comes from Yanyan Jiang's lecture DeepSeek Harness in Generative Software Engineering (NJU, 2026; video, notes). Its Excalidraw plugin locks the user's selection, hands it to the canvas's Session as JSON and applies the model's replacement: "lock objects + serialize objects + UI". Mindmap turns the lock into boxes that hold a region, and gives each box its own Agent Teams teammate under a canvas lead.
MIT. Bundled Excalidraw, renderer libraries and fonts keep their own licenses: see THIRD_PARTY_NOTICES.md.