# dsh-memory-canvas DeepSeek Harness plugin. Offload bulky tool logs to `refs/*.md`. Keep a Mermaid canvas in context. Recall by `node_id`. Zero daemon. **CAUTION: don't pip the wrong dsh.** Official CLI: `npx @deepseek-ai/dsh web`. The PyPI package `deepseek-harness-cli` is a different tool (`dsh doctor` / `dsh chat`). GitHub topic: `dsh-plugin`. Chinese: [README.zh.md](README.zh.md) ## Demo (no dsh) node demo.mjs Writes `.dsh-memory/refs/{id}.md`, prints the canvas, recalls by id, and asserts the body matches. ## Install into a profile This package is plain JavaScript. There is no prepare or build step, so a git install does not need allowBuilds. dsh plugin --profile web add github:guobinmengxiang-rgb/dsh-memory-canvas Check the composed layer without booting: dsh --profile web --dump-config You should see a `dsh-memory-canvas` layer. Then start the profile as usual. Official CLI is `@deepseek-ai/dsh` (today `0.1.0-rc.6`). ## Tools The agent must call these tools. This plugin does **not** auto-intercept tool logs. | Tool | Params | Result | |---|---|---| | `memory_offload` | `title`, `body` (required) | short `id`, path, `canvas updated` | | `memory_recall` | `id` (required) | stored body (truncated at 8k with a note) | | `memory_canvas` | none | Mermaid markdown of the task canvas | Storage (default): `/.dsh-memory/canvas.md` and `/.dsh-memory/refs/{id}.md`. Override root with `DSH_MEMORY_DIR`. Canvas nodes use a 24-character title. Full text lives in `refs/`. ## What this is not - Not [TencentDB Agent Memory](https://github.com/TencentCloud/TencentDB-Agent-Memory) (not their L0-L3 persona pipeline) - Not OpenClaw - Not a vector DB - Not [Yiipu/dsh-agentmemory](https://github.com/Yiipu/dsh-agentmemory) (that one needs a daemon on `:3111`) Inspired by Tencent's short-term symbolic memory (MIT idea, our code): refs + Mermaid canvas + `node_id`. ## Honest limits - DeepSeek Harness is a developer preview: THERE WILL BE COMPATIBILITY-BREAKING CHANGES. - The plugin runs on your machine. - This bundle `cordis.patch.yml` uses the package name `dsh-memory-canvas`, not a filesystem path. ## Official docs and related - Your first plugin: https://deepseek-harness.github.io/deepseek-harness/en/develop/basic/ - Package and install a plugin: https://deepseek-harness.github.io/deepseek-harness/en/develop/basic/publish - Cordis: https://github.com/cordiverse/cordis - Sister plugin: https://github.com/guobinmengxiang-rgb/dsh-xhs-note - Course: https://github.com/guobinmengxiang-rgb/dsh-getting-started - Awesome list: https://github.com/guobinmengxiang-rgb/awesome-dsh ## License MIT (c) 2026 国彬 张