a903067276-rgb / dsh-simple-memory

Listed

Layered markdown memory for DeepSeek Harness (dsh): per-session index injection, one-click memory-flow button, enforced 分类-主题.md format, cross-project search

mainToolSession View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:a903067276-rgb/dsh-simple-memory

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

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit ac7c848Synced Aug 18, 2026

This README snapshot could not be refreshed during the latest directory sync.

dsh-simple-memory 🧠

English | 简体中文

License: MIT

A simple memory keeper plugin for DeepSeek Harness (dsh) web: retrieval-style memory with zero-code storage. No database, no vector store — just well-organized markdown files plus a thin plugin that handles the entry points. Normal work is never interrupted; memory accumulates as a sidecar filesystem beside your projects, and rules nudge you to record a note from time to time.

Status: core pipeline verified (0.2.0), real-world effect still under testing — see docs/verification-log for the test run and docs/design for how it works.

Unofficial project: independently developed and maintained by a community member, not an official DeepSeek product.

Screenshot

Memory button (the bulb icon left of the input box): one click starts the memory flow — review → propose each item with a project/global scope and reason → confirm → write → show output → commit:

Memory button triggers the memory flow

Memory management page (Settings → Memory): status overview, memory-root config, flat per-project lists plus global, click to read:

Memory management settings page

Features

ActionEffect
Open a sessionMemory index (current project + global + loose root files) is injected once per session — the model "remembers" what exists
Click the memory buttonA fixed memory-flow instruction is inserted — the model runs the standardized flow (review → propose with scope → confirm → write → show output → commit)
Write memoryThe memory-write tool enforces the format (name 分类-主题.md, ≤2KB, date header; scope = project/global)
Browse memoryInline browser in the settings page: flat per-project lists + global common/, click to read
InitializeOne click creates the repo skeleton (common/projects/references/archive/staging) + git init
RelocateChange the memory root from the settings page (writes patch config, takes effect after restart)

Install

dsh plugin --profile web add "github:a903067276-rgb/dsh-simple-memory#main"

Restart dsh web, then Settings → Memory → Initialize memory repo. Manual install fallback: see docs/install.md.

Usage

  • Memory button (the bulb icon left of the input box) — one click inserts a fixed, self-contained memory-flow instruction; the model then runs the standardized flow (review → propose each item with a project/global scope and reason → confirm → write → show output → commit).
  • Settings → Memory — status overview, memory-root config, one-click repo init, and an inline browser: flat per-project lists plus global, click to read.

Platform support

PlatformStatus
macOS✅ development environment
Linux⚠️ expected to work (plain file operations), untested
Windows⚠️ expected to work (plain file operations), untested

Requirements

  • DSH web
  • git CLI (optional: without git, the memory repo is just a plain directory)

How it works

A retrieval-style memory: files are the storage, the plugin only handles the entry points. Full design: docs/记忆系统设计说明.

  • Storage (zero code) — everything lives in one memory root ~/Documents/DSH/memory/ (configurable from the settings page):

    memory/
    ├── common/          global experience (active zone, cross-project reuse)
    ├── projects/<name>/ per-project memory (auto-created on first write)
    ├── references/      cold zone: reference material (search-only)
    ├── archive/         cold zone: forgotten memory moved out of the index
    ├── staging.md       promotion pool (candidates for global reuse)
    └── .git/            one git repo for the whole root — rollback safety
    

    Per-project memory does NOT live inside the project directory: a .gitignore'd memory/ would hide it from grep. Keeping it in the shared root keeps publication isolation automatic and search universal.

  • Index injection (remembers what exists) — on the first step of every session (agent/pre-step), the plugin injects a filename list (never the content), grouped by category, covering the current project + global + loose root files. The model then reads a full note (≤2KB each) on demand. Cold zones are not injected — searched only when a topic hits.

  • Write tool (records it)memory-write enforces the format: filename 分类-主题.md, first line ## date 分类-主题, ≤2KB, category prefixes open (built-in: 踩坑/流程/决策/偏好/背景). scope picks project or global. Writing outside the workspace asks for approval (built-in confirmation).

  • Memory button (triggers the flow) — the bulb icon in the input bar inserts a fixed, self-contained instruction: ① review the conversation ② propose each item with a scope (project/global) + reason ③ wait for user confirmation ④ write via memory-write ⑤ show the output ⑥ git commit (mem: 记 xxx).

  • Settings page (manage + browse) — status line (active count, staging count), memory-root config, one-click repo skeleton init, and an inline browser listing every project flat plus global, click to read.

  • Search (finds it) — no index files: the agent's grep scans the whole memory root (all projects + global + cold zones) in one pass, active zones first.

  • Promotion (cross-project reuse) — project memory that looks reusable goes into staging.md (low friction, no instant decision); when the pool is non-empty the user is reminded, and after confirmation it is distilled into common/ and removed from the pool.

  • Forgetting (fresh context) — outdated notes move to archive/ (soft delete: still on disk, just out of the index). Context stays lean, disk stays complete.

  • Rollback — every memory operation is committed immediately (mem: <action> <subject>); a wrong write is one git checkout away.

Notes

  • Memory git repos are local-only, never pushed to a remote.
  • Writing memory outside the workspace asks for approval (built-in confirmation, per the memory spec).
  • The memory-flow instruction is self-contained and does not depend on the global AGENTS.md; the judgment rules there are only a reference.

License

MIT

Project files and signals

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

DocumentationDetected
ExamplesDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 18, 2026, 11:08 AM

Install deliberately

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