Evidence snapshot reviewed Sep 16, 2026GitHub checked Aug 21, 2026
Evidence-verifiedPlugin BundleMemory & ContextWeb Profile

DSH Memory Vault

A paired DSH bundle for searchable local memory and automatic session-digest capture.

At a glance

What it does

A paired DSH bundle for searchable local memory and automatic session-digest capture.

Use cases
Memory & ContextMemorySession ManagementAutomation
Works with
Deepseek HarnessMCPSQLite
Compatibility

Web Profile
Not declared in supplied evidence

Trust & status

Evidence-verified
Checked Sep 15, 2026, 2:13 PM UTC

Code-evidenced contributions

What it adds to DSH

Agent PresetsAutomatic memory capture

Captures session digests at idle, commit, compaction, and disposal checkpoints.

Mechanism evidence

Before you choose it

DSH Memory Vault installs two related bundles: memory-mcp connects DeepSeek Harness to a local stdio MCP memory server, while memory-auto writes automatic session digests. The vault uses Markdown entries plus a SQLite FTS5 index, with default paths under the Harness home.

Best for

DeepSeek Harness users who want a persistent, searchable project memory and are comfortable reviewing local plugin configuration.

Common tasks

  • Ask the agent to search saved project memory.
  • Store facts or decisions through the memory MCP tools.
  • Automatically capture useful session context around commits, compactions, idle activity, and session end.
  • Export memories or retrieve a saved profile.

Permissions and data

The bundles manage local vault files and start a local stdio MCP server; automatic capture sends transcript-derived digest work through the configured Harness LLM service.

Permissions
  • Reads DSH_MEMORY_PATH and DSH_MEMORY_SERVER_DIR when set.
  • Creates or uses the vault and server directories under DSH_HOME by default.
  • Starts the memory server through a Node launcher and stdio transport.
Data handling
  • Stores memory entries as Markdown and indexes them with SQLite FTS5.
  • Automatic digests are written into the configured vault.
  • Existing copied vault files are described as not overwritten on first boot.
External services
  • Uses the Harness LLM provider configuration for automatic digest generation.
  • May install Python requirements from the network on first boot when uv is unavailable.
Credentials
  • No separate plugin credential requirement is declared; automatic capture uses the key already configured in DSH.

Limitations

  • No npm registry package version was verified in the supplied evidence; use the immutable Git bundle source.
  • Installation and runtime behavior were not executed during curation.
  • memory-auto declares a prepare build script.
  • Automatic capture is enabled by default in the supplied patch and uses the default DeepSeek provider/model unless reconfigured.

What DSHub checked

  • Both package manifests and Cordis bundle patches have verified structure at the pinned commit.
  • Immutable Git bundle delivery is verified for @luisarg/memory-mcp and @luisarg/memory-auto.
  • The source declares an MIT license.

What DSHub did not check

  • Successful installation, first-boot dependency setup, MCP connectivity, and memory writes were not run.
  • A DeepSeek Harness version range is not declared in supplied evidence.
  • npm availability for version 0.1.4 was not verified.

Pinned install

Install DSH Memory Vault

This plugin bundle does not have a DSH Plugin install action. Use its source documentation for the delivery method.

Visit the source project

Maintainer source

Project README

View at commit e862b23
Maintainer-authored contentCaptured from README.md on Sep 15, 2026. The text and repository-relative media are fixed to commit e862b23967bb with content hash f8da87375d00; provider-hosted badges may update independently. README commands are upstream documentation; the DSHub copy action above is the verified, version-pinned install.

dsh-memory-vault

DeepSeek Harness Cordis 4.0.1 pnpm 10.15.0 Node.js ≥22.18 TypeScript 5.9 Python ≥3.11 uv 0.11 MCP ≥1.2 SQLite FTS5 Vitest 3.2 tsdown 0.15 oxlint 1.13

Persistent OKF memory for DeepSeek Harness (DSH): a Python MCP server (SQLite FTS5 + Markdown), two Cordis plugins (memory-mcp, memory-auto) and a vault starter with templates and a type registry.

Stack architecture

Session digest pipeline

Components

Component What it does Bundle
memory-mcp MCP stdio wrapper: connects DSH to the memory vault server @luisarg/memory-mcp
memory-auto Auto memory capture: session digest with commit/compaction checkpoints @luisarg/memory-auto
memory-vault-server/ Python MCP server: SQLite FTS5 + Markdown OKF
memory-vault/ Vault starter: templates + type registry + tag vocabulary
scripts/digest_session.py Optional standalone post-session digest (CLI, not used by the plugins)

Quickstart

pnpm install
pnpm -r build

# local dev with an overlay (paths relative to the repo cwd)
dsh web --patch ./examples/dev-memory.cordis.yml

Install

# 1. install both plugins (npm, prebuilt — no build approvals, no repo clone)
dsh plugin --profile web add @luisarg/memory-mcp@0.1.4 @luisarg/memory-auto@0.1.4

# 2. launch — first boot installs the vault server + starter under $DSH_HOME
#    (~/.dsh/memory-vault-server and ~/.dsh/memory-vault) automatically
dsh web

# verify
dsh --profile web --dump-config | grep -A8 memory

uv on PATH is recommended but no longer required: the bundled launcher.mjs runs the server with uv run when uv is present and falls back to a pip-managed venv (python3 -m venv + pip install -r requirements.txt, first boot needs network) when it is not. The packages are self-contained: they ship the Python vault server and the OKF vault starter, and copy them into place on first boot (existing files are never overwritten; upgrades copy only the missing launcher.mjs and requirements.txt). The version is pinned because pnpm's default minimumReleaseAge (3 days) would otherwise resolve an older release. Paths resolve as: env (DSH_MEMORY_PATH, DSH_MEMORY_SERVER_DIR) → $DSH_HOME/memory-vault(-server) → profile patch (see Path resolution). Launch from any directory.

Developers (local checkout instead of npm):

dsh plugin --profile demo add ./packages/memory-mcp ./packages/memory-auto

Offline: pnpm --filter @luisarg/memory-mcp pack and add the .tgz files.

Installing the repo root from GitHub is not supported (root has no dsh.bundle; pnpm lacks git subdirectory specs) — use npm or the tarball.

Releases are published by CI: pushing a v<version> tag builds, tests, validates the tarballs and publishes both packages to npm with a provenance attestation, authenticated by GitHub OIDC — no publish token exists in this repository or on the maintainer's machine. What runs before an artifact ships, and the guardrails around it, are in docs/releasing.md.

Usage & interaction commands

Once installed, the agent can read and write the vault through the mcp__memory__* tools — just ask it in the chat:

You say Tool the agent uses
"search your memory for <topic>" mcp__memory__search_memory
"remember this: <fact/decision>" mcp__memory__store_decision / store_fact / …
"export everything you know about <project>" mcp__memory__export_memories
"summarize my profile" mcp__memory__get_profile

Automatic capture (memory-auto): git commits, compactions and session ends trigger digests; idle checkpoints capture when there is activity. Digests log as [memory-auto] … lines in the harness console, and writes land under <vault>/projects/<project>/<type>/ (Markdown) + the SQLite FTS5 index.

Verify the installation and the stored memory:

# composed config shows both bundles with the resolved paths
dsh --profile web --dump-config | grep -A8 memory

# what the vault holds (default vault: ~/.dsh/memory-vault)
ls ~/.dsh/memory-vault/projects/               # per-project OKF entries
grep -i "digest" ~/.dsh/memory-vault/log.md    # digest markers

# talk to the vault MCP server directly (standalone smoke test)
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"cli","version":"0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ping","arguments":{}}}' \
  | MEMORY_PATH=$HOME/.dsh/memory-vault uv run --directory memory-vault-server python server.py

Run a second harness instance on another port (for testing without touching your main session):

pnpm dsh web --port 3090

Second MCP client: opencode (zona central ~/.memories)

Since 2026-09-09 the vault lives in a dedicated git repo at ~/.memories (union of the former DSH vault and the legacy opencode-memory-vault bundle; see docs/central-zone.md). opencode is a second stdio MCP client over the same server and vault — ~/.config/opencode/opencode.json:

"mcp": {
  "memory-server": {
    "type": "local",
    "command": ["uv", "run", "--directory", "<repo>/memory-vault-server", "python", "server.py"],
    "enabled": true,
    "environment": { "MEMORY_PATH": "<absolute path to your vault>" }
  }
}

opencode requires the key environment (not env — that one is silently ignored and the server falls back to the repo default vault).

Memory stack

The plugins work on an OKF vault (memory-vault/ in this repo, or your own). Runtime: uv on PATH, or Python ≥3.11 with a network on first boot — both launch paths go through the bundled launcher.mjs, which uses uv run and falls back to a pip-managed .venv (requirements.txt) when uv is missing.

The post-session digest runs in-process through the harness's own LLM service (ctx.llm, provider deepseek-official by default — configurable with provider/model), so the plugins need no external CLI and store no credentials: they use the same key DSH is configured with.

Path resolution (cwd-independent)

DSH does not chdir — the launch directory is irrelevant. Paths resolve in this order:

  1. Env vars (override everything): DSH_MEMORY_PATH, DSH_MEMORY_SERVER_DIR.
  2. Defaults under the harness home: $DSH_HOME/memory-vault and $DSH_HOME/memory-vault-server (~/.dsh when $DSH_HOME is unset).
  3. Profile patch (cordis.patch.yml) or --patch overlay with explicit values.
Env var Used for Default
DSH_MEMORY_PATH vault directory $DSH_HOME/memory-vault
DSH_MEMORY_SERVER_DIR directory with server.py (MCP server) $DSH_HOME/memory-vault-server
# run the MCP server standalone:
MEMORY_PATH=./memory-vault uv run --directory ./memory-vault-server python server.py

Vault

memory-vault/ is an OKF bundle: templates/ (per-type templates), type-registry.yaml (source of truth for types), tag-vocabulary.json (tag normalization). Runtime data (projects/, raw/, logs/, memory.db) is created by the server on first use and excluded from git (.gitignore).

Architecture & diagrams

Interactive versions of the diagrams (standalone HTML, open in any browser):

Editable specs live in docs/diagrams/*.json (generated with archify). Full write-up: docs/architecture.md; index: docs/README.md.

Repository layout

packages/memory-mcp/          # cordis bundle: MCP stdio client to the vault
packages/memory-auto/         # cordis bundle: automatic session digest
memory-vault-server/          # Python MCP server (SQLite + Markdown OKF)
memory-vault/                 # vault starter (templates + type registry)
scripts/digest_session.py     # optional standalone digest CLI (not used by the plugins)
examples/dev-memory.cordis.yml      # memory-mcp
examples/dev-memory-auto.cordis.yml # memory-mcp + memory-auto

Layer order

  1. dsh.profile.bundles (base + every installed bundle)
  2. $DSH_HOME/profiles/<name>/cordis.patch.yml
  3. $DSH_HOME/cordis.patch.yml
  4. --patch overlays

Patch replaces config wholesale — it does not merge.

Troubleshooting pnpm

  • unable to open database file → the pnpm store is not writable in a sandboxed environment. Use --store-dir ./.pnpm-store on every pnpm install and on dsh plugin --profile X --store-dir ./.pnpm-store add ....
  • dsh: pnpm failed when installing from GitHub → only applies to packages with a prepare script; copy the printed key into the profile's pnpm-workspace.yaml (allowBuilds). Note: the subpackages of this monorepo cannot be installed with github:... (pnpm has no git-subdirectory support) — use npm or a tarball.

Docs

Operate deliberately

Install and manage

Prerequisites and target Profile

Target Web Profile

Delivery Dsh Bundle Git — Luisarg03/dsh-memory-vault#e862b23967bbadf37c2d126797f0ec7070b2c8d5

Verify, update, and remove

Show lifecycle commands
Verify
dsh plugin --profile web list

Compatibility and access

DeepSeek Harness DSH bundles; memory Auto requires dsh Llm Not declared in supplied evidence

Review compatibility evidence

Risk facts

Local Data Storage

Stores memory as Markdown and a SQLite FTS5 index under the configured vault path.

Evidence
Llm Processing

Automatic digest capture uses the Harness LLM service; the default configuration selects deepseek-official and deepseek-v4-flash.

Evidence
Network On First Boot

Without uv on PATH, first boot may create a Python virtual environment and install requirements over the network.

Evidence
Evidence and editorial reviewManifest, Bundle patch, distribution and freshness

Immutable evidence

Review status and source activity

AI reviewed

Treat this as a local-memory bundle with optional automatic capture: inspect its paths and LLM configuration before enabling it for sensitive sessions.

AI reviewed Sep 15, 2026, 2:14 PM UTCGitHub facts last checked Sep 15, 2026, 2:14 PM UTC

No material source change has been recorded since this evidence baseline.

Next step

Follow the Plugin installation workflow

Subscribe to material changes for DSH Memory Vault