Configuring dsh-memory
DeepSeek Harness loads dsh-memory from a profile configuration. The mdcg object selects the persistent source-of-truth directory:
| Key |
Default |
Meaning |
mdcg.root |
Empty |
Uses the user-level default, ~/.dsh/.dsh-memory/data/mdcg; a custom value must be an absolute path |
identity |
Not specified |
Identity used by the plugin |
tools |
core |
core exposes cg and stg; brain and all expose additional tools, with all including mdcg_* |
Do not use a package-relative path for mdcg.root, because updating the package can remove that directory with the package contents. The memory files are Markdown cognitive-graph data.
Commands for dsh-memory
npx @furongjun1999/dsh-memory init interactively generates host configuration. It asks for the endpoint, memory root and Python interpreter, then writes lingshu-mcp-snippet.json in the current directory. Arguments after -- support non-interactive use, including --end, --root and --python. The command generates configuration only: it does not create the memory directory, start a server or write the database.
The MCP process can be checked directly with python -m md_cg.mcp_server on Windows or python3 -m md_cg.mcp_server on Linux and macOS. After code or package updates, restart the long-running MCP process.
Requirements for dsh-memory
DeepSeek Harness requires kernel version >=0.1.2-rc.1; the README records verification through 0.17.2 and checks the DeepSeek Harness 2.0 interface. Runtime Node must be >=22.19. Python 3.12.10, 3.13.14 and 3.14.7 were tested on Windows. The bundled Python code has no third-party runtime or pip dependencies. The plugin selects python on Windows and python3 on Linux and macOS; MDCG_PYTHON overrides that choice.
How dsh-memory behaves
DeepSeek Harness can automatically pass conversation content to the memory flow. User-directed writes are stored through cg(op=write), while recall uses mdcg_recall; route and timeline operations support conditional and temporal retrieval. Without write credentials, guest can read, recall and inspect timelines but cannot persist writes. Filtering covers sub-agent sessions, relay messages and non-user sources. The bounded audit file records actions and reasons, not message content.
Limits and operational checks
The memory root is file-backed rather than an opaque vector store. cg(op=info) reports code_generation, disk_generation, stale_on_disk and restart_required; a stale result means the resident MCP process must be restarted. The repository’s full test suite additionally documents Rust builds for rust and hive, but those are not stated as normal runtime dependencies.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub