Installation
npx -y @deepseek-ai/dsh plugin --profile web add github:Amengclass/dsh-memoryThis installation command is an unverified starting point generated from the GitHub repository address.
README
Maintainer-authored documentation snapshot.
dsh-memory
A persistent, model-editable memory/notes store for DeepSeek Harness. It gives the agent a first-class way to durably write, fetch, and search "facts it wants to remember" that survive across sessions — something conversation-history search, todo_write, settings, and static skill docs do not cover.
It is a community dsh-plugin: an installable Cordis bundle shipping as plain ESM JavaScript (index.js + index.d.ts), so it installs from a git host or npm with no build step.
Records live in one storage domain (dsh_memory) routed through the built-in ctx.storageDomain seam — not hand-rolled files — so they persist under the deployment's configured backend (json/sqlite) and emit domain/changed for live UIs.
Why it is not redundant
| Existing capability | Difference from dsh-memory |
|---|---|
session_search / session_event_* | Only read past conversation; cannot store durable facts |
todo_write | Task-status tracking, not knowledge |
settings / credentials | Operator config, not agent-mutable knowledge |
skills | Static docs; the model cannot write to them |
goal / schedule | Objectives / reminders, not a knowledge store |
| MCP memory server | Requires an external server/account; this is a lightweight built-in |
Tools
| Tool | Purpose |
|---|---|
memory_set | Durably upsert a fact/note under a stable key (with optional tags). |
memory_get | Read one entry by key, or list all when the key is omitted. |
memory_delete | Delete an entry by key (idempotent). |
memory_search | Case-insensitive substring search over key/value/tags, filterable by required tags. |
Example
user: From now on, don't touch public/ in this project.
model: memory_set key="project/convention" value="Do not modify public/" tags=["project","rule"]
→ [memory] saved "project/convention" (2 tags)
(next session)
user: Continue on that project.
model: memory_get key="project/convention" → "Do not modify public/" → works accordingly
Install
Install into a Harness profile. From a checkout:
dsh plugin --profile web add ./dsh-memory
or from this repository (no build step required — the package ships JavaScript):
dsh plugin --profile web add github:Amengclass/dsh-memory
The storage backend is provided by your deployment (web profiles mount
@deepseek-ai/dsh-storage-jsonwithbackend: jsonby default). This plugin only declares a storage domain, so no backend changes are needed.
Configuration
Schemastery-validated config, overridable from your profile patch:
| Key | Default | Meaning |
|---|---|---|
domainName | dsh_memory | Name of the storage domain (must match /^[a-z][a-z0-9_]*$/). |
maxItems | 1000 | Hard cap on stored entries. |
maxKeyLength | 120 | Max key length; longer keys are rejected. |
maxValueLength | 10000 | Max stored value length; longer values are rejected. |
- insert:
- id: dsh-memory
config:
maxItems: 500
Dependencies & license
- Runtime peer dependencies (provided by the harness's own node_modules):
@deepseek-ai/dsh-storage-domain,@deepseek-ai/dsh-tools,@deepseek-ai/schemastery,zod. - No runtime build toolchain; no Node addons.
- MIT licensed — see LICENSE.
Contributing / topic
Published under the dsh-plugin GitHub topic. PRs and issues welcome.
Repository information
- Language
- JavaScript
- License
- MIT
- Last updated
- Aug 14, 2026, 1:41 AM
Install deliberately
Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.