dsh-memento
janpauldahlke/dsh-memento
DeepSeek Harness plugin: bounded-file memory for local agents. ME.md + project MEMORY.md vault, cache-stable inject, plain-line inbox, Memory rightbar. No embeddings, no LLM calls.
Install
dsh plugin --profile web add github:janpauldahlke/dsh-mementoREADME
dsh-local-memento
Bounded-file memory for local coding agents in the DeepSeek Harness web UI.
npm package name is
dsh-local-memento(dsh-mementowas already taken on the registry). The GitHub repo remainsjanpauldahlke/dsh-memento.
New sessions get a warm start from a short ME.md profile and an optional
project MEMORY.md. Capture is free (Remember this: → inbox). Promotion into
the injected tier is a human edit in the Memory rightbar — never an
automatic write. No embeddings, no vector store, no LLM calls inside the plugin.
Related plugins (same dual-face dsh.bundle shape for the web rightbar):
| Plugin | Repo |
|---|---|
| Process & port lifecycle | dsh-agent-processes |
| Long-horizon task status | dsh-local-long-horizon |
| NVIDIA GPU util / VRAM / power | dsh-gpu-monitor-nvml |
| Local LLM endpoint / slot health | dsh-slot-health |
This package: dsh-local-memento
· source janpauldahlke/dsh-memento.
Verified against DeepSeek Harness 0.1.7-rc.2 (dsh web).
Requirements
- DeepSeek Harness web profile (
dsh web). - Node.js ≥ 20 to build.
Screenshots
Light theme, matching the DSH default.
| Pane + chat | Memory pane (fullscreen) |
|---|---|
![]() | ![]() |
| Start guide (Memory book icon) |
|---|
![]() |
What you see
- Memory rightbar — edit
ME.mdand the project file, promote or delete inbox lines, preview what was injected, toggle the plugin on/off. - Status tint on the tab title — green when On, grey when Off, yellow on poll/write error.
- Inbox — scratch list from
Remember this:/memory_remember. Not injected; the agent only reads it if it looks under~/.dsh/memory/. - ↑ promote — appends a line into the ME or project draft (unsaved). Save moves it out of the inbox (with Undo).
Install
From npm (recommended)
dsh plugin --profile web add dsh-local-memento
# restart dsh web (or rely on live patch reload), then hard-refresh the browser
From GitHub
dsh plugin --profile web add github:janpauldahlke/dsh-memento
From a git checkout (developers)
git clone https://github.com/janpauldahlke/dsh-memento.git
cd dsh-memento
npm install && npm run build
dsh plugin --profile web add "$(pwd)"
Restart (or boot) dsh web so the host + client faces load:
env -u DSH_WEB_URL -u DSH_SHELL -u DSH_SESSION_ID dsh web --no-open
Uninstall:
dsh plugin --profile web remove dsh-local-memento
# restart the web instance that had the plugin
First run — write your own ME.md
On first boot the plugin creates ~/.dsh/memory/ME.md from a generic
template (rules + commented example lines only). It does not ship anyone
else’s profile.
- Open the Memory rightbar.
- Replace the commented examples with facts that stay true for you.
- Save. New sessions inject that file verbatim.
Existing ME.md is never overwritten by install or upgrade — only created when
absent.
Project lore lives in
~/.dsh/memory/projects/<key>/MEMORY.md (Create from the pane when you want
it). The inbox is ~/.dsh/memory/inbox.md.
Agent tools
| Tool | Purpose |
|---|---|
memory_remember | Append one line to the inbox (escape hatch; never touches ME / project) |
memory_history_search | Read-only archaeology over ended session logs (fail-open) |
Triggers in chat (also inbox-only): Remember this:, Remember:, Note this:.
Surfaces
| Surface | Path / name |
|---|---|
| Vault | ~/.dsh/memory/ (ME.md, inbox.md, projects/…/MEMORY.md) |
| Master switch | ~/.dsh/memory/.off (pane On/Off) |
| HTTP | GET /api/dsh-memento/health, /state, /compliance, … |
| UI | Rightbar Memory |
Design in five lines
ME.md(~30 lines) and optional projectMEMORY.md(~45 lines) are the only always-injected tier.- The cap is pressure, not a block — over-cap saves are accepted; you curate.
inbox.mdis append-only and never injected.- The agent never writes the injected tier — promotion is a human pane edit.
- Ritual over judgment — read project memory before the first file edit; compliance observes, never blocks.
Deliberately absent: embeddings, Qdrant, FTS, promote ladders, frontmatter schemas, and LLM calls inside the plugin.
Architecture
Dual-face package (same bar as the other web rightbar plugins):
- Host (
lib/index.js, ESM) — vault, inject, inbox, compliance, HTTP, tools. - Client (
lib/client.js, CJS ModuleLoader factory) — Memory rightbar. - Glue —
cordis.patch.yml+dsh.bundle/dsh.clientinpackage.json.
Templates under assets/ are inlined at build time; they are not read from
disk at runtime.
License
MIT — see LICENSE.


