highland0971 / dsh-native-memory

Listed

Native, per-workspace long-term memory for DeepSeek Harness: approval-gated writes, cited provenance, FTS cross-session recall — no external server, no extra runtime dependency.

mainSession View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:highland0971/dsh-native-memory

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 9acd2caSynced Aug 18, 2026

dsh-native-memory

Awesome DSH Plugin License: MIT

Native, per-workspace long-term memory for DeepSeek Harness (dsh): facts and profiles stored on the harness's own storage-domain, cross-session recall through session-query FTS, approval-gated writes, and cited provenance — no external server, no extra runtime dependency.

⚠️ Installing a plugin runs third-party code on your machine with your own permissions. Review the source (src/) and the security model before installing.

Why this one

dsh-hermes-memorydsh-native-memory
Storage~/.dsh/settings.yaml namespacededicated storage-domain unit (~/.dsh/storages/dsh_memory.json)
Scopeuser-global, all projectsper workspace (exact-cwd authorization)
Write safetysilent, model-onlyhuman approval gate + session-log audit
Recalleverything always injected (hard caps)bounded always-on profile plus on-demand recall + FTS over past sessions
Dependenciesvendored imports into the harness checkoutnone beyond zod + the harness itself

See docs/design.md for the full architecture and the competitive landscape analysis.

Install

dsh plugin --profile web add dsh-native-memory   # npm after release
dsh plugin --profile web add /path/to/this/repo  # from a checkout

Restart dsh web. The bundle enables session-query full-text search and adds the memory tools to every session. Details and configuration: docs/install.md.

Tools

ToolKindGate
memory_rememberadd/update a fact in this workspace (secrets rejected by default)approval
memory_editreplace a factapproval
memory_forgetarchive a fact (soft delete)approval
memory_recalldeterministic three-tier keyword scan (tags > text > fuzzy; freshness/access tie-breaks)none
memory_searchFTS over this workspace's past sessions (caller excluded)none
memory_expandexpand a fact's citation to the original log excerptnone
memory_consolidatenear-duplicate merge suggestions + cap budgetnone
memory_importimport candidate facts from a past session's logapproval (per fact)
memory_profileread the always-injected workspace profilenone
memory_exportwrite a git-friendly Markdown mirror (.dsh-memory/memory.md, masked, idempotent)none

Every fact records its origin (sessionId, seq) — memory stays reconstructable from the lossless session log.

Writes reject secret-shaped text (tokens / keys / passwords) by default; secretPolicy: "mask" | "off" in the bundle patch relaxes that. The credential-assignment detector can flag benign token: … values of ≥16 characters. Prompt injection and tool output always mask secrets.

A read-only browser page (settings → 记忆) lists every workspace's facts with secrets masked; deletions are copied as a memory_forget instruction and land in the chat through the approval gate.

Opt-in session-end proposals (proposeOnSessionEnd: true): one cheap LLM call distills a finished session into candidate facts shown in the next sessions; they become facts only through the approval-gated memory_remember.

A compaction drift guard (compactionGuard: true, on by default) surfaces literal anchors a compaction summary dropped, as data to verify in the next sessions — deterministic, no LLM.

Development

pnpm install
pnpm build && pnpm typecheck && pnpm test

New contributors start at docs/handoff.md and docs/contributing.md. Chinese docs: README.zh.md.

License

MIT

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
Security policyDetected
Contributing guideDetected
DocumentationDetected

Repository information

Language
TypeScript
License
MIT
Last updated
Aug 16, 2026, 12:34 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.