
PerryLink/dsh-memento
30Last commit Aug 15, 2026
dsh-memento DSH plugin
dsh-memento provides a typed `ctx.memory` service that stores cross-session memories in a local SQLite database. It features a write approval gate that cannot be bypassed, per-session frozen snapshots, and full audit logs. The plugin supports two tracks (user and agent) and two layers (user-global and workspace) for organized memory management.
How to install the dsh-memento DSH plugin
dsh plugin --profile web add dsh-memento # or ./dsh-memento / a tarball / a GitHub URLCopying does not run this command. Review the repository and version before installing the dsh-memento DSH plugin.
dsh-memento DSH plugin data source
dsh-memento DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-memento DSH plugin can do
- Provides typed `ctx.memory` service with add, replace, remove, query, seed, and budgets methods
- Write operations pass through a mandatory approval waterfall (writePolicy: ask/auto/off) enforced inside the service, not in the tool layer
- Generates a frozen snapshot at session start injected into the system prompt, never changing mid-session
- Supports two memory tracks (user and agent) and two layers (user-global and workspace) with per-agent isolation
- Records all write operations in an audit table, reconstructable from session logs
- Offers tools: memory tool, memory_recall tool, /memory command, and a read-only web panel
Where the dsh-memento DSH plugin fits
- Save user preferences and communication style across sessions without re-teaching
- Store project conventions, environment facts, and lessons learned per workspace
- Audit and review all memory modifications for compliance or debugging
- Automatically inject relevant memories at the start of each new session
Who the dsh-memento DSH plugin is for
- DSH users who need persistent cross-session memory for their AI interactions
- Developers and teams who want auditable, approval-gated memory management
dsh-memento DSH plugin limitations
- Requires Node ^22.19 || >=24 and DSH 0.1.0-rc.6 or later
- Uses local SQLite only; no network sync or cloud storage
- Default writePolicy is 'ask' requiring user approval, which may interrupt workflow
- Hard character budgets per track/layer; exceeding fails with an error instead of auto-compacting
dsh-memento DSH plugin: from the repository README
Quoted from the PerryLink/dsh-memento README, the upstream source of the dsh-memento DSH plugin. Copyright remains with the original authors.
**Bounded, layered, approval-gated, auditable cross-session memory for DeepSeek Harness.** [](LICENSE) [](https://www.npmjs.com/package/@deepseek-ai/dsh) [](https://nodejs.org/) []() []() [](https://www.npmjs.com/package/dsh-memento) [](https://www.npmjs.com/package/dsh-memento) [](https://github.com/PerryLink/dsh-memento/actions/workflows/ci.yml) [English](README.md) · [中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md) > Other memory plugins sell a **warehouse**. dsh-memento sells the **seam**: a typed `ctx.memory` service, a write approval gate no model path can
Read the full READMERepository license: Apache-2.0
dsh-memento DSH plugin questions
How do I install dsh-memento?
Run `dsh plugin --profile <name> add dsh-memento` in your terminal. Make sure you have Node ^22.19 || >=24 and DSH 0.1.0-rc.6 or later installed. You can also install from a local checkout or GitHub URL.
How do I configure the write policy?
Override the `writePolicy` field in your profile's cordis.patch.yml under the `memento` row. Use `ask` for user approval (default), `auto` to allow through, or `off` to reject all writes. You can also set per-track/scope policies using `writePolicies`.
Where is the memory database stored?
By default, the SQLite database is stored at `$DSH_HOME/dsh-memento/memory.db`. If `$DSH_HOME` is not set, it falls back to `~/.dsh`. You can customize the path with the `dbPath` config option.
How can I view the audit log?
Use the `/memory audit` command in the chat or access the web panel's audit tab. The audit log shows all write operations with full approval payloads and outcomes.
Can I export and import memories?
Yes, use the `/memory export` command to dump all entries and budgets as JSON. Use `/memory import <path>` to restore from a file or inline JSON. Imported entries get fresh IDs and timestamps.