DSH Plugin MarketA community catalog for DeepSeek Harness plugins

dsh-knowledge-canvas

Verified Data & knowledge ★ 19 0.4.6

Tree-shaped knowledge bases for DeepSeek Harness: per-session activation, a node graph view, and review markers for model edits.

What it is

Tree-shaped knowledge bases for DeepSeek Harness: per-session activation, a node graph view, and review markers for model edits.

How to install

Run this in the DSH web profile, then refresh the page.

$ dsh plugin --profile web add dsh-knowledge-canvas@0.4.6

DSH versions accepted

Undeclared

Author and traction

NeoHotaru · ★ 19 · Updated 2026-11-06

About this plugin

dsh-knowledge-canvas

English · [简体中文](README.zh.md)

A knowledge base for DeepSeek Harness that the model retrieves from by judgement, not by similarity — and that you edit on a canvas in the sidebar.

Features

  • Edit knowledge on a canvas: parent/child relationships, associations, four layouts, and resizable nodes.
  • Collapse branches and reveal the path to search results. Long notes scroll; title-only nodes offer a reading preview.
  • Choose full-text or on-demand injection per base, with individual node overrides.
  • Review model edits and inspect which nodes were read, written or removed.
  • Read session-scoped diaries as a notebook and reply from the sidebar.
  • Attach images and files; choose on-demand or required attachment reading per workspace.

[Usage manual](MANUAL.md) · [Changelog](CHANGELOG.md) · [GitHub Releases](https://github.com/NeoHotaru/dsh-knowledge-canvas/releases)

The problem

You explain something, and the next conversation still does not know it — or worse, it thinks it does, and the note is stale.

This is not a context-window problem. Measured in one workspace:

$ node report-kb-use.mjs
50 tool call(s) in the log, 1 session(s)
  写 13 次(ops / …)
  读 1 次(read-animation)
  ⚠ 先写后读:第一次写入之前没有读过

13 writes, 1 read — and that read was from a different base. Knowledge was recorded and never used. Recording is free: the model does it in passing. Using is the hard part: you have to know the entry exists, and which one still holds.

What makes this different

Every node ends with a line beginning 「什么时候该想起它:」 — "when should this come to mind". That line is what the outline shows, so the model matches a situation rather than an embedding. When it picks wrong, you see the wrong node on the canvas and fix the sentence that misled it.

On the panel

| Where | What |

| --- | --- |

| Top row | search, read counters, refresh |

| One row per base | title, read progress, one switch (does this conversation read it), ⋯ menu (rename, delete, colour, export) |

| Canvas toolbar | zoom, fit, width (the whole base's default width, not one node), shape, colour, layout |

| 「定位到…」 at the bottom | type an id to jump to that node |

| Gesture | Result |

| --- | --- |

| click a node | opens the editor; click again to close |

| Enter / Space (focused) | same, from the keyboard |

| Shift+Enter | start a link; Enter on the target finishes it |

| drag a node | moves it; the drop is written to layout.json |

| hold ~0.26 s then drag | draws a link (orange), not a re-parent |

| Alt + drag a node | makes the target its parent (grey line) |

| right-click a node | fold/expand, injection policy, new child, change history |

| title arrow on a branch | collapse or expand its descendants |

| right-click empty canvas | menu: new top-level node |

| drag a node out to the input box | hands that node to the conversation |

| the three handles | width, height, both |

Node size means three things in order: this node → the base's default → the canvas zoom. The toolbar's 「宽度」 is the second one.

Four layouts: layers, radial, staircase, compact. Switching recomputes default placement; manual positions stay under your control.

Collapse a branch using its title arrow or context menu. Nested folds are remembered; search, locate and unread navigation reveal the target's ancestor path. The toolbar can expand everything or arrange visible nodes. Folding affects the canvas only, not model access or injection.

Long note bodies scroll independently and offer an Edit action. At title-only zoom levels, hovering or focusing a node opens a reading preview.

Install

pnpm add dsh-knowledge-canvas@latest

Run the command in the intended DSH profile directory. For manual installation, also add dsh-knowledge-canvas to dsh.profile.bundles in that profile's package.json, preserving existing entries. A dependency alone does not apply the bundle patch. The DSH Add Plugin UI is the recommended installation path.

Source links also use the package name dsh-knowledge-canvas. Internal legacy module ids and data paths remain unchanged for compatibility.

Restart DSH once after installing; the 「知识库」 panel appears in the sidebar. Panel-side changes need only a page reload; host-side changes (index.js, lib/*) need a restart — that distinction decides what you do after editing.

The first time you open a workspace, a base called 「怎么用这个知识库」 is seeded with everything the panel can do. It upgrades with each release, and nodes you edited are never overwritten.

Model tools

| Tool | What it does |

| --- | --- |

| knowledge_read | read a base or a node; without base, list the bases |

| knowledge_create_base | create a base with a root node. Usable immediately — no knowledge_select needed |

| knowledge_write_node | write or edit a node. The return carries the id it just created, ready to use as parent |

| knowledge_link | connect two nodes, and say in one line why they are related |

| knowledge_remove_node | mark a node removed (recoverable, not deleted) |

| knowledge_unlink | remove an association; the nodes stay, the dashed line goes |

Compare in this category

The five most-starred plugins in the same category.

PluginAuthor StarsVersionUpdated
thoughtdag chenxiachan 763 0.2.2 2026-11-08
graph-memory adoresever 675 1.5.8 2026-10-01
dsh-Mimir-Academic-research 1692775560 562 0.0.0 2026-11-04
memtrace-public syncable-dev 515 0.0.0 2026-11-09
marketingdashboard theBigGavin 459 0.1.0 2026-10-29