Bleed00/dsh-claude-mem
DeepSeek Harness 插件,集成 claude-mem(dsh 的记忆功能)
项目介绍Project Overview
dsh-claude-mem 是 DeepSeek Harness 插件,接入本地 claude-mem worker 的 HTTP API,提供跨会话记忆搜索、时间线、详情读取、手动保存与会话启动上下文注入,并可按需采集工具结果、生成会话摘要。需要让代理复用项目历史记忆时使用。注意:需先运行 claude-mem worker;GitHub 源码安装可能要在 pnpm-workspace.yaml 允许 prepare 构建。
dsh-claude-mem is a DeepSeek Harness plugin that connects to a local claude-mem worker over HTTP. It provides memory search, timeline lookup, observation retrieval, manual memory saving, session-start context injection, and optional tool-result ingestion plus session summarization. Use it when an agent should reuse persisted project memory across sessions. Caveat: the claude-mem worker must already be running; GitHub installs may require allowlisting the prepare build.
请帮我了解并安装插件:【dsh-claude-mem】【https://github.com/Bleed00/dsh-claude-mem】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
npx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem
把 Bleed00/dsh-claude-mem 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-claude-mem
A DeepSeek Harness plugin that integrates claude-mem: query persisted cross-session memory, inject per-project context at session start, save manual memories, and drive session summarization — all through a local claude-mem worker's HTTP API.
It registers the model-facing tools mem_search, mem_timeline, mem_get_observations, mem_save, and mem_context, the mem-search skill, and the lifecycle hooks (agent/session-start context injection, optional tools/post-execute ingestion, optional agent/turn-stopping summarization). It is a single self-contained package with no monorepo-only dependencies.
Install
One-liner with npx (no global install — npx fetches the dsh launcher and
dsh plugin forwards add to pnpm in the target profile):
npx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem
If you already have dsh on PATH, the same command without npx:
dsh plugin --profile demo add @bleed00/dsh-claude-mem
npm (recommended — ships prebuilt lib/, no build permission needed):
npx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem
GitHub (sources; runs a prepare build on first install):
npx -y @deepseek-ai/dsh plugin --profile demo add github:Bleed00/dsh-claude-mem
A GitHub install fetches sources, not build output, so pnpm runs this package's prepare script to build from src/. pnpm ≥10 refuses to run a git dependency's prepare until it is allowlisted; the first add fails and points at the fix — copy the exact package key pnpm printed into the profile's pnpm-workspace.yaml:
allowBuilds:
'@bleed00/dsh-claude-mem': true
then re-run the add. Treat that allowance as permission to run this package's code at install time; pin a commit for reproducible installs:
dsh plugin --profile demo add github:Bleed00/dsh-claude-mem#<sha>
Local checkout:
dsh plugin --profile demo add ./dsh-claude-mem
Requirements
- A DeepSeek Harness installation with
dshonPATH. - The claude-mem worker already running on its default port (
http://127.0.0.1:37700). Override with thebaseUrlconfig or theDSH_MEM_BASE_URLenvironment variable.
Config
| Field | Default | Description |
|---|---|---|
baseUrl |
http://127.0.0.1:<37700 + uid % 100> |
Worker base URL. |
timeoutMs |
30000 |
Per-request timeout (ms). |
dedupe |
true |
Collapse duplicate observations in query results (content fingerprint, never identity). |
platformSource |
unset | Optional platform filter; omitted = search all memory. |
project |
unset | Project name; defaults to the session cwd basename. |
injectContext |
true |
Inject session-start context. |
ingest |
false |
Save observed tool results as memories. |
summarize |
false |
Summarize sessions on turn stop. |
toolFilter.names |
read, write, edit, bash |
Tools observed when ingest is true. |
Platform scoping is a signal, never a restriction: default requests are unfiltered, and platformSource only adds an opt-in filter.
Duplicate handling
The worker can persist the same observation many times (a boilerplate "session
initiated" record, or a re-run tool result) — identical content, different id.
With dedupe: true (the default), query results collapse those copies: an
observation's content fingerprint is built from title + subtitle +
text + narrative + facts (normalized), so two entries that merely share a
generated title but differ in narrative are kept. The first copy (lowest id)
is retained. Structured results (mem_get_observations) are deduplicated by
fingerprint; rendered index/text results are deduplicated by exact rendered
row. Set dedupe: false to see the raw, unfiltered results.
Example override in the profile's cordis.patch.yml
- id: claude-mem
config:
baseUrl: http://127.0.0.1:37700
platformSource: dsh
ingest: true
summarize: true
Tools
| Tool | Purpose |
|---|---|
mem_search |
Search memory; returns an index (ids, titles, types). |
mem_timeline |
Get context around one observation. |
mem_get_observations |
Fetch full details for ids. |
mem_save |
Save one manual memory. |
mem_context |
Render the worker's session-start context text. |
The mem-search skill teaches the model the search → filter → fetch workflow that keeps token usage low.
Development
pnpm install
pnpm run build # tsc + tsdown → lib/index.js
pnpm test
The package targets Node ≥ 20.12, TypeScript 6.0, and is authored against the @deepseek-ai/* framework packages (cordis, schemastery, dsh-tools, dsh-llm, dsh-skill, dsh-agent).
License
Apache-2.0 © Bleed00
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS