DSH Hub

seriousz158/dsh-memory

dsh-git-memory

UIMemory181 GitHub stars· updated 2026-09-23

dsh-git-memory is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add github:seriousz158/dsh-memory

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-git-memory DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/seriousz158-dsh-memory.svg)](https://dshhub.dev/plugins/seriousz158-dsh-memory)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from seriousz158/dsh-memory, cleaned of badges and images.

dsh-memory

dsh-memory is a local, Git-backed long-term-memory plugin for DeepSeek Harness (DSH).

It adds one persistent setting, a safe settings-page workflow for clearing memories, and an optional idle-session synchronizer. The host plugin injects memory guidance only when memory.enabled is true; the UI plugin lets a user inspect the repository state, toggle the setting, and clear learned memory through a deliberate two-step confirmation.

What it does

  • Stores durable memory in a local Git repository, not in this source repository or a hosted service.
  • Registers the memory settings namespace immediately, so memory.enabled takes effect for the next model call without restarting DSH.
  • Shows a long-term-memory row in DSH settings with repository status and a double-confirmation Delete memory action.
  • Preserves a Git recovery point before clearing summary.md, handbook/, rollouts/, and archive/: a clean repository reuses its existing HEAD, while dirty target paths get a dedicated checkpoint commit; the next commit records the cleared state.
  • Refuses unsafe repository layouts, symbolic-link escapes, non-repository roots, and path races during a clear operation.
  • Can process only idle local session logs through an optional headless synchronizer. The synchronizer defaults to workspace-write, never silently installs DSH, and forwards only an allowlisted environment.

Capabilities

This README describes stable user-facing behavior. Release-by-release implementation details are intentionally kept out of this page; see CHANGELOG.md and the GitHub releases for historical changes.

Local Git-backed memory

  • Memory stays in a local Git repository. There is no hosted memory service or cloud vector database.
  • Markdown records support front matter, namespaced ids, provenance, expiry projection, deterministic conflict handling, and legacy compatibility.
  • summary.md is a short navigation snapshot; detailed knowledge belongs in handbook/, rollouts/, and archive/.

Safe synchronization and recovery

  • Optional idle-session sync runs in a private per-run workspace. The model can edit only the isolated copy; the host validates and writes the live Git repository.
  • The host provides dry-run/preview/apply flows, operation locking, health checks, bounded batches, retry backoff, duplicate-id diagnostics, and metadata-only journals.
  • Recovery/apply commits, rollback, backup export/import, and legacy migration keep changes auditable and reversible. Migration is available through the CLI/host API, not the settings UI.

Read path

  • When enabled, a bounded and explicitly untrusted summary.md snapshot is available to the model (12 KiB maximum).
  • memory.search() and memory.context() provide local, bounded retrieval with source citations and usage-aware deterministic ordering. Retrieval is hybrid: a derived SQLite index (FTS5 trigram + CJK-bigram/word terms, stored at .sync/search-index.sqlite with restrictive permissions) is fused with lexical scoring and exact-substring precedence, and transparently falls back to a pure scan when the index is missing, stale, or corrupt.
  • Read usage is stored as private metadata in .sync/usage.json; transcripts, prompts, credentials, and memory content are not written to journals.

DSH settings integration

…

Related plugins