Skip to content

Jelee0145/dsh-mem

30Last commit Aug 14, 2026

dsh-mem DSH plugin

dsh-mem is a bundle plugin for DeepSeek Harness that implements a capability seam for long-term memory. It persists facts, preferences, and decisions to a JSON file shared across every session, enabling agents to remember and recall information across conversations.

How to install the dsh-mem DSH plugin

dsh plugin --profile <name> add dsh-mem

This source command needs manual review. Copying does not run it.

dsh-mem DSH plugin data source

dsh-mem DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-mem DSH plugin can do

  • memory_save: persists a fact with optional tags and project field
  • memory_recall: searches memory by substring match on content and exact tag match
  • memory_forget: deletes a specific memory entry by ID
  • memory_list: lists all memory entries, with optional project filter and result cap
  • Atomic file write with temp file + rename for durability
  • Zero-dependency on other profiles: works in headless and web profiles without conflicting storage rows

Where the dsh-mem DSH plugin fits

  • Let an agent remember user preferences across multiple sessions
  • Store project-specific conventions (e.g., 'Project X uses pnpm workspaces') for consistent agent behavior
  • Maintain context in long-running conversations by saving and recalling key facts
  • Debug or audit what the agent has learned over time via memory_list

Who the dsh-mem DSH plugin is for

  • Developers building multi-session agents with DeepSeek Harness
  • Users who want their agents to have durable, persistent memory without external databases

dsh-mem DSH plugin limitations

  • Single-process writer: does not support concurrent dsh processes sharing the same root directory
  • No edit API: to update a fact, you must forget then save again
  • No structured schema for content: all memory is free text; for fielded facts, you need to agree on a fixed text format with the model

dsh-mem DSH plugin: from the repository README

Quoted from the Jelee0145/dsh-mem README, the upstream source of the dsh-mem DSH plugin. Copyright remains with the original authors.

English | [中文](README.zh.md) An out-of-tree **bundle** plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) that implements a complete **capability seam** — Service Definition + Service Provider + Consumer. It gives agents durable long-term memory shared across every session: the `memory_save` / `memory_recall` / `memory_forget` / `memory_list` tools persist facts, preferences, and decisions to `$DSH_HOME/memory/memory.json`. ## Install Install from the **npm registry** (published as `dsh-mem`): ```sh dsh plugin --profile <name> add dsh-mem ``` > `dsh plugin add` is the dsh way to install a plugin: it resolves the package from npm (via pnpm) into the profile and registers its bundle layer. Do **not** use `npm install dsh-mem` — that installs the package as a plain dependency without activating any profile layer. From git instead (runs the package's self-contained `prepare` build; the first install asks you to allow the build in the profile's `pnpm-workspace.yaml`): ```sh dsh plugin --profile demo add github:Jelee0145/dsh-mem ``` Or from a local checkout: ```sh dsh plugin --profile demo add ./dsh-memory ``` Verify the composed layer without

Read the full READMEThe repository declares no license. Check with the authors before using it.

dsh-mem DSH plugin questions

How do I install dsh-mem?

Use the dsh plugin command: `dsh plugin --profile <name> add dsh-mem`. This will install the package from npm and activate its bundle layer. Do not use `npm install dsh-mem` as it won't register the plugin correctly.

Where is the memory data stored?

Memory data is stored in `$DSH_HOME/memory/memory.json`, which defaults to `~/.dsh/memory/memory.json`. You can back it up or delete it manually to clear all memory. Uninstalling the plugin does not touch the data.

Can I disable the plugin without uninstalling?

Yes, you can disable the plugin by modifying the profile's `cordis.patch.yml` file. Set `disabled: true` for the rows with `id: memory` and `id: tool-memory`. This is hot-reloaded and does not require restarting dsh.

Does dsh-mem work with multiple dsh processes?

No, dsh-mem currently does not support concurrent dsh processes sharing the same root directory. All memory operations are serialized on a single in-process queue, and there is no cross-process lock. Running multiple processes with the same root may cause data corruption.

How can I extend dsh-mem or replace its storage backend?

You can subclass `MemoryService` and point the `memory` row in `cordis.patch.yml` to your custom class. The tools and contract remain unchanged. You can also add human commands via `ctx.commands` or inject memory into agent turns using listeners.