Introduction¶
A DeepSeek Harness (DSH) session typically starts from a “blank slate”: the conversation history is saved to disk for audit purposes, but the model cannot access previous content again. This means persistent facts such as project preferences and decision constraints are not retained after a restart or configuration switch. The dsh-memory-lite plugin provides agents with an explicit memory tool, allowing these facts to persist across sessions.
What This Is¶
pacoyi/dsh-memory-lite is a lightweight cross-session memory plugin for DeepSeek Harness. It provides a set of approval-gated memory tools (save / recall / list / forget) and a “Memory Vault” UI card on the settings page. The plugin is fully local, sends no network requests or telemetry data, and stores all data in local JSON files.
Core Features¶
- Memory tools
Provides four operations:save(save),recall(recall),list(list), andforget(forget). - Settings card UI
Provides a “Memory Vault” card on the DSH settings page, supporting viewing, adding, deleting, restoring from the recycle bin, an import wizard, and an export panel. - Approval gating
Thesaveandforgetoperations require host approval (tools/pre-execute), preventing unauthorized writes. - Import/export
Supports idempotent memory import and export, and can migrate memory from other agents, such as Claude Code’sCLAUDE.md. - Scope isolation
Memory scope is based on the host execution context (the session working directory), and entries are not visible across different projects. - Audit logs
Records the intent, commit status, source, and entry ID for every change. - Local storage
Data is stored under~/.dsh/memory-lite.*. Corrupted files are isolated rather than silently overwritten.
Installation and Enablement¶
The DSH CLI must be installed first. The installation command is:
dsh plugin --profile web add github:pacoyi/dsh-memory-lite
After installation, restart the corresponding profile (for example, dsh --profile web), and the memory tool becomes available.
Typical Usage¶
Talking directly to the agent can trigger the memory tools. The agent decides when to save or recall and first requests user approval.
Example dialogue:
* “Remember: this project uses pnpm, not npm”
* “What did I tell you earlier about deployment?”
Tool parameters:
| Parameter | Applicable operations | Description |
|---|---|---|
operation |
All | save | recall | list | forget |
text |
save | The note content to remember; it must be self-contained and ≤ 2000 characters |
tags |
save | Optional tags, such as ["preference", "project-x"], up to 8 |
query |
recall | Keywords matched case-insensitively against text and tags |
tag |
recall | Match entries that carry this tag |
limit |
list/recall | Maximum number of entries to return; default 10, maximum 100 |
id |
forget | The entry ID to move into the recycle bin |
Notes and Limitations¶
- Privacy and data security
The plugin does not send network requests itself. However, the results ofrecallandlistenter the model-visible conversation context, are sent to the model provider, and are recorded in session logs. Do not store sensitive data here, such as API keys, customer data, or private source code. - Content limits
- Note length ≤ 2000 characters
- Number of tags ≤ 8
- Single entry ID ≤ 1000
- Environment requirements
Node.js >= 20 is required. - File editing
If you need to edit~/.dsh/memory-lite.jsondirectly, you must stop the DSH host process, because the plugin owns concurrent write permissions.
Brief Conclusion¶
dsh-memory-lite is suitable for developers who need to preserve project context across multiple sessions and who care about auditing and security. Through local file storage and an approval mechanism, it provides a lightweight, controllable agent memory solution. For more details, see the GitHub repository.