Phant0Meow/dsh-memory-meow
Cross-session memory for DeepSeek Harness (DSH). Born from the "meow" fork — hence the name — but works on any DSH profile.
これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。
上流で中国語 README が提供されていないため、リポジトリのオリジナルコンテンツを表示しています。
meow-memory 🐱📝
Cross-session memory for DeepSeek Harness (DSH). Born from the "meow" fork — hence the name — but works on any DSH profile.
The idea: every workspace keeps a structured memory database (.dsh-meow/memory.db,
SQLite via node:sqlite). New sessions get the essential layers injected as a prefix of the
first user message (not the system prompt), so the prompt prefix — and your LLM provider's
KV/context cache — stays untouched. The model deep-dives into the rest on demand with
memory_search / memory_find_similar. Each window's own agent consolidates its memories at
night ("dream"), and only its own memories — with the window's knowledge frozen at the last
conversation timestamp.
✨ Features
- Six memory layers (
soul= the AI itself /user= user basics & preferences /project= per-project info withsubcategory(overview/structure/decisions/quotes/ops/todo) /fact= atomic facts /lesson= mistakes & corrections /topic= ongoing discussion arcs with a goal sentence). One SQLite table per layer, UUIDs are time-prefixed so id order == creation order. - Cache-friendly by design:
soul/userare injected in full on the first user message, plus a memory index (project/topic titles) and keyword-hit short facts/lessons. The system prompt never changes; the snapshot is frozen for the whole session. Already-seen memories (injected+searched) are recorded per session and never re-injected or re-searched. - Toolset:
memory_remember(write, with dedup merge) /memory_search(BM25 × recency, filters: level/project/status/days, sorted by memory timestamp) /memory_find_similar(duplicate & conflict detection) /memory_read/memory_update(incl. status active/archived/stale, importance, goal) /memory_dream(manual trigger). - Memory timestamp (
dream_at): each window's dreams stamp its entries with the last conversation time before the dream — later windows can tell which entry is newer. Search results are re-ordered by it with a "conflict → newest wins" hint. - Per-window dream: at night (02:00–05:00, idle) every window whose last chat is newer than its last dream gets consolidated by its own main agent — one project group per turn — using its full conversation context. Old windows (no live agent, >24h) are left alone.
- Reflection: after ≥7 consecutive tool turns the plugin asks the model whether anything since the last consolidation is worth remembering. Cancelled turns never trigger it.
- Zero runtime dependencies:
node:sqlite(built into Node ≥22.5) + self-contained esbuild bundle (lib/index.js). No native modules.
📦 Install
Via npm (published package)
# 1. Install into the profile's node_modules (the loader resolves plugins there)
cd $DSH_HOME/profiles/web # default home: ~/.dsh/profiles/web
npm install meow-memory
# 2. Register in the profile's cordis.patch.yml:
# - insert:
# - id: meow-memory
# name: 'meow-memory'
# config:
# enabled: true
# 3. Restart dsh web. New sessions pick up the plugin automatically.
By hand (any DSH install, no npm needed)
- Copy (or symlink) this package into the profile's
node_modules:(On Windows:mkdir -p ~/.dsh/profiles/web/node_modules ln -s /path/to/meow-memory ~/.dsh/profiles/web/node_modules/meow-memoryNew-Item -ItemType Junction ...— NTFS junction, no admin needed.) - Register in the profile's
cordis.patch.yml(same insert block as above). - Restart
dsh web. New sessions pick up the plugin automatically.
⚙️ Configuration
All fields are optional (profile patch or cordis.patch.yml):
- id: meow-memory
name: 'meow-memory'
config:
enabled: true # master switch
projectDir: '.dsh-meow' # memory directory, relative to the workspace
hitTopK: 3 # keyword-hit facts/lessons injected on the first message
reflect: true # auto-reflection after ≥reflectTurns tool turns
reflectTurns: 7 # consecutive tool turns before reflection triggers
dream:
enabled: true
windowStart: 2 # local hour when night consolidation may run
windowEnd: 5
idleMinutes: 30 # no session events for this long before dreaming
checkMinutes: 15
🧠 How it works
First user message memory tools night
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐
│ [soul 核心] │ │ remember/search/ │ │ per-window dream: │
│ [user 偏好] │ │ find_similar/ │ │ own memories, grouped │
│ [记忆导引] │ │ read/update │ │ by project, one group │
│ [相关记忆 命中] │ └──────────────────┘ │ per turn, dream_at │
│ ───────────── │ seen ids recorded │ stamped at T │
│ [user text] │ per session (json) └──────────────────────┘
└──────────────────┘
injected once per
session, never again
🛠 Development
npm install
npm run build # esbuild bundle → lib/index.js (self-contained)
npm run test # 80 logic tests: db / bm25 / migrate / inject / reflect / dream / tools
The @deepseek-ai/* packages live in the dsh-meow pnpm workspace, not in this package's
node_modules. On Windows, npm run link-workspace (or scripts/link-workspace.ps1)
creates junction mirrors of the workspace packages so esbuild can resolve them;
build.mjs uses nodePaths to pick them up. The links are build-time only.
📄 License
MIT — see LICENSE.
セキュリティとインストールエビデンス
このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。
公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。
リポジトリは MIT ライセンスを宣言しています。
過去180日以内にコードの更新があります。
再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。
確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。