DeepSeek Harness plugin

dsh-memory-gunturd

Persistent cross-session memory plugin for DeepSeek Harness: workspace-scoped durable facts with model-facing memory_write/list/search/forget tools and bounded prompt injection

Jump to install

Source facts

Repository
guntur-d/dsh-memory
Latest update
Aug 14, 2026
Category
Docs & Rendering
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/guntur-d/dsh-memory
Plugin: dsh-memory-gunturd
Author: guntur-d

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer2 files
README.mdSource · read only

dsh-memory

Persistent cross-session memory plugin for DeepSeek Harness. Facts the model saves are stored durably per workspace (the owning session's cwd) on the harness storage-domain seam, and injected as a bounded prompt section into later sessions in the same workspace — so something important established in one session carries over to the next.

  • ctx.memory service: save / list / search / forget
  • Model tools: memory_write, memory_list, memory_search, memory_forget
  • Prompt section: app:memory (order 50, default 8 lines) in every session of the workspace

Requirements

The harness profile must mount the storage seam with a backend:

  • @deepseek-ai/dsh-storage (the hub)
  • @deepseek-ai/dsh-storage-json (default, human-readable JSON files) or @deepseek-ai/dsh-storage-sqlite
  • @deepseek-ai/dsh-storage-domain (the domain facility this plugin opens the memory domain on)

The shipped web profile already mounts all three with the json backend — no extra setup needed there.

Install

# from this repo (sources build on install via prepare)
dsh plugin --profile web add github:guntur-d/dsh-memory

# or from npm once published
dsh plugin --profile web add @guntur-d/dsh-memory

The dsh.bundle.patch manifest field makes the plugin a bundle layer: the included cordis.patch.yml row activates the plugin automatically in the profile. GitHub-topic discovery: dsh-plugin.

Usage

The model calls memory_write when something durable is established (a port, a preference, a non-obvious project fact). You can prompt it explicitly:

Please remember: the staging server listens on port 3080 and the deploy script is deploy.sh

A later session in the same workspace starts with an app:memory section listing the recent memories, and can memory_list / memory_search / memory_forget (by id) on demand.

Config

interface Config {
  maxEntriesPerWorkspace: number // default 500; the oldest are evicted past it
  maxTextChars: number           // default 2000; longer saves are refused
  maxContextEntries: number      // default 8; memories rendered into the prompt section
  maxListEntries: number         // default 50; memories one list/search call returns
}

The storage backend route is decided by the deployment's dsh-storage-domain config (routes for the memory domain, else its default backend).

Semantics

  • Entries are scoped by the owning session's cwd; sessions without a cwd share one anonymous workspace.
  • A monotonic seq (minted on the domain's atomic write chain) keeps ordering and eviction deterministic even when wall-clock timestamps tie.
  • Saves and forgets await durability on the backend; reads are synchronous from the domain's in-memory state.
  • The model decides what is worth saving — no automatic summarization.

Develop

pnpm run check       # typecheck against a deepseek-harness checkout (tsconfig.check.json)

Notes:

  • The npm-published @deepseek-ai/* dependency chain is currently incomplete (a peer package @deepseek-ai/dsh-type-meta is not published), so a from-npm pnpm install of this plugin fails until upstream completes the publish chain. The tsconfig.check.json typechecks this source against a local deepseek-harness checkout instead (edit the absolute path in its paths if your checkout lives elsewhere).
  • Until the npm chain is fixed, install the plugin from a checkout: dsh plugin --profile web add . from this repo (the profile resolves @deepseek-ai/* through the harness installation).