AskTheWay/dsh-auto-memory
dsh-auto-memory
Claude Code-style auto-memory plugin for DeepSeek Harness (dsh): typed memory files + MEMORY.md index auto-injected into the system prompt. File-only, no external services.
Install
npx @deepseek-ai/dsh plugin --profile demo add dsh-auto-memoryRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/asktheway-dsh-auto-memory)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from AskTheWay/dsh-auto-memory, cleaned of badges and images.
dsh-auto-memory
Your dsh agent forgets everything you tell it. Every. Single. Session.
Fix it with one command. Claude Code-style persistent memory for DeepSeek Harness — native, zero servers, zero embeddings, zero setup.
dsh plugin --profile demo add dsh-auto-memory
Say "Remember: I'm a Python backend engineer preparing for interviews" today — open a brand-new session tomorrow, ask "what do you know about me?", and it remembers.
What's new in 0.3.0 (P2)
- Pinned memories (
pinned: trueon memory_write): pinned entries lead the index, survive budget truncation, and are exempt from staleness eviction — a trust anchor the user controls. - Eval-driven fix: the injection budget now covers the whole section (index + guidance); it used to overshoot by ~800 bytes. Caught by the new deterministic evaluation layer on its first run.
- Deterministic eval layer (evals/) in CI: injection budget curves, eviction zero-misfire, link-expansion bounds, and a signal-to-noise characterization — which pinned-priority truncation then improved from 38% → ≥80% probe retention under half-budget pressure. Same budget, better memories.
What's new in 0.2.0 (P1)
- Auto-consolidation (
autoSummarize: true): when a root session ends, a background LLM pass extracts durable new facts from the session and files them as memories — deduplicated, capped, fully silent on failure. Claude Code doesn't do this automatically. - Forgetting & eviction: every memory carries lifecycle metadata
(created/updated/reads);
memory_readcounts references;staleAfterDayssoft-hides zero-reference stale memories from the injected index (files kept);memory_prunelists (dry-run) or deletes aged memories. - Recall expansion:
memory_readresolves[[name]]cross-links one level and attaches linked summaries. memory_delete_all— guarded bytools/pre-executehuman approval: the model cannot self-confirm irreversible bulk deletes.- Hardened by a second adversarial review (11 agents): single-lock
clear(no concurrent-write escape), conditional index rebuild ontouch(no O(N) amplification), session-start stale refresh, subagent capture cleanup, abortable consolidation.
Tools: memory_write / memory_read / memory_list / memory_delete /
memory_prune / memory_delete_all.
Claude Code has this. dsh didn't. Now it does.
DeepSeek Harness is the hottest open agent harness on GitHub right now — models, tools, sandboxes, everything is a plugin. But it ships with no memory subsystem at all. The official answer is three default-off MCP configs to third-party servers, which the official docs themselves qualify: not auto-injected, no forgetting policy, substring-only search. Your agent has amnesia by design.
dsh-auto-memory closes that gap natively:
| MCP bridge approach | dsh-auto-memory | |
|---|---|---|
| Memories injected into every system prompt, automatically | ✗ | ✓ (zero tokens when empty) |
| Typed memories: user / feedback / project / reference | ✗ | ✓ |
| Workspace + user scope layers — no cross-project leakage | ✗ | ✓ |
| Crash & concurrency safety (cross-process locks, orphan recovery) | — | ✓ |
| External services / databases / embeddings required | ✓✓✓ | none — just plain Markdown files |
…

