Introduction

When running long tasks with DeepSeek Harness (DSH), even the largest context window cannot hold all history: coding conventions established last week, user-preferred indentation styles, ongoing refactoring goals—these are often “forgotten” when switching sessions or agents. While vector databases and MCP memory services can mitigate this, they come with high deployment costs and introduce an additional recall channel that the model may not actively invoke.

The community plugin Engramory (tinqiao-oss/engramory) takes a different approach: zero infrastructure, using a handful of human-readable Markdown files plus an index loaded each session to encode “what to write, how to write it, when to delete or modify” into a portable curation discipline. It has 171 stars and 11 forks on GitHub, is classified as “memory” in the SkillHub plugin directory, and has a verified installation status. This article is compiled based on the SkillHub directory page and GitHub repository README for quick onboarding by DSH users.

What Is This

Engramory is neither a database nor a Skill framework that loads based on relevance. Maintainer tinqiao-oss positions it as: a protocol for small-scale, local, file-based agent memory—a strictly constrained curation discipline, a reference specification (SKILL.md), and an optional index cap hook, loaded as persistent rules (i.e., marked blocks in $DSH_HOME/AGENTS.md under DSH).

The memory store is simply a directory: one Markdown file per fact, plus an always-loaded MEMORY.md index. There are no vectors, no server—just plain text that can be directly opened, edited, and diffed; if placed in a Git repository, the memory directory itself should be added to .gitignore.

The name is derived from engram (the physical trace of memory in the brain) + memory, emphasizing “one file per fact.” The npm package dsh-engramory (currently at 0.2.3) is the deterministic index cap plugin for DSH; the protocol itself is currently marked as 0.10.0 — Experimental. Please understand its capabilities and limitations before use.

Core Features & Highlights

1. Four-Type Ontology, with feedback as the Backbone

Note frontmatter uses four types: user (user preferences), feedback (procedural memory, must include Why: / How to apply:), project (ongoing task status, with at most one active note), and reference (stable reference pointers). Engramory does not claim to have invented the semantic/episodic/procedural trichotomy; instead, it makes feedback a handcrafted, auditable collection of procedural memories.

2. Explicit Curation Contract

The protocol requires the model to check for duplicates before writing, update rather than duplicate, delete upon discovering errors, and adhere to negative scope rules—not re-recording information already present in Git, code, or rule files. Often overlooked operations like “modify / delete / forget” in research are codified into the discipline itself (the model strives to comply, though it is not a hard gate).

3. Bounded Index, Preventing Silent Rot

The index is loaded each session; Claude Code’s official documentation states it only reads the first 200 lines / 25 KB, with excess silently truncated. Engramory warns at 150 lines / 20 KB, compresses and prompts before approaching 200 lines / 25 KB, and provides a hook fallback—only blocking edits that increase size, while allowing compression edits. Both line count and byte dimensions are monitored, triggering whichever limit is reached first.

4. DSH Plugin: Turning the Cap from “Request” to “Refusal”

Relying solely on rules in AGENTS.md, the model might still forget to run the check script. The dsh-engramory plugin uses DSH’s ctx.tools.guard() for synchronous, monotonic write-before refusal: once the guard returns a reason, subsequent listeners cannot revert the decision to allow. This is Engramory’s differentiating capability on DSH compared to “just adding rules.”

The plugin also injects the full protocol via runtime skill registration, avoiding the need to manually copy files into one of the five skill scan roots (copying to the wrong location fails silently).

5. Cross-Host Portability

The same discipline can be connected to Claude Code, Codex, Cursor, OpenClaw, and others; DSH provides the python tools/engramory_init.py dsh --install-skill initialization assistant and the dsh-reader read-only mode for reading memory stores from other agents. Engramory explicitly does not use MCP as the primary route—on hosts with existing file read/write and persistent rules, MCP would introduce a second write channel and bypass the pre-write hook.

Installation & Activation

Note: SkillHub (https://www.skillhub.cn/plugins) is a community-maintained DSH plugin directory, not officially affiliated with DeepSeek / High-Flyer; installation commands are based on the directory page-generated scheme. Plugins run with the current dsh process permissions; please review the source code and MIT license before installation.

Step 1: Install the DSH Plugin via SkillHub

The installation plan generated by SkillHub for tinqiao-oss/engramory (profile example is web, commit fixed to the directory-synced head SHA):

dsh plugin --profile web add github:tinqiao-oss/engramory#39efc183a55cb3d2c56e11a42b2b5e059a193ce3

Restart the profile after installation:

dsh --profile web

If your environment already has an npm source configured, you can also install the published npm package directly (requires 0.2.1 or above; version 0.2.0 has an issue where it installs but never activates):

dsh plugin --profile <name> add dsh-engramory

Step 2: Initialize the Memory Store & Persistent Rules

The plugin handles the index cap guard and protocol skill registration but does not automatically create the memory directory. Run this in the Engramory repository root (Python 3.9+; use python3 on Linux/macOS):

git clone https://github.com/tinqiao-oss/engramory.git
cd engramory
python3 tools/engramory_init.py dsh --install-skill

Default installation path is $DSH_HOME (environment variable takes precedence, otherwise ~/.dsh):

  • Engramory marked block in $DSH_HOME/AGENTS.md (loaded each session by @deepseek-ai/dsh-agent-instructions)
  • Full protocol at $DSH_HOME/skills/engramory/ (loaded on demand)
  • Memory index and notes directory at $DSH_HOME/.engramory-memory/MEMORY.md

If serving a single project, add --project-root /path/to/project; the skill will be installed to <project>/.dsh/skills/engramory/ (the actual project skill root scanned by DSH, not .agents/skills).

Optional: Pin a Commit or Adjust Guard Configuration

The SkillHub command is pinned to commit 39efc183…; when installing from GitHub source yourself, you can also specify it explicitly. The default guard configuration can be overridden at the profile patch layer (do not duplicate the two insert lines):

- id: engramory
  config:
    indexName: MEMORY.md
    maxLines: 200
    maxBytes: 25600
    indexPath: /absolute/path/to/.engramory-memory/MEMORY.md

The indexPath is recommended to be set to the absolute path of the memory index to avoid mistakenly blocking identically named MEMORY.md files in other directories.

Typical Usage Examples

Daily Memory Read/Write

Each session, the agent sees the curation discipline in AGENTS.md; when details are needed, it reads individual notes under .engramory-memory/. After writing, it should report newly added / updated / archived / skipped items and index size.

Self-Check After Editing the Index

python3 $DSH_HOME/skills/engramory/tools/engramory_check.py $DSH_HOME/.engramory-memory/MEMORY.md

If the output is OVER, compress the index before writing. Periodic full health checks:

python3 $DSH_HOME/skills/engramory/tools/engramory_doctor.py $DSH_HOME/.engramory-memory

Cross-Agent Read-Only Sharing

Have DSH read project memory from Claude Code, etc. (read-only, no writing):

python3 tools/engramory_init.py dsh-reader \
  --project-root /path/to/repo \
  --memory-root ~/.claude/projects/<project>/memory

Uninstall

python3 tools/engramory_init.py dsh --uninstall --dry-run   # Preview plan
python3 tools/engramory_init.py dsh --uninstall             # Execute

Uninstallation only removes the rule block and skill copies written by the installer; it does not delete notes in .engramory-memory/.

Applicable Scenarios & Caveats

Who It’s For:

  • Those wanting to maintain auditable, diffable long-term working memory on DSH without setting up a vector database or MCP service
  • Those needing to transplant Markdown memory disciplines from Claude Code / Codex hosts to DSH as-is
  • Individuals or small teams, single-writer scenarios, keeping memory items within the index cap (~200 pointers)

Limitations to Be Aware Of:

  • The protocol is marked experimental: the hook deterministically intercepts direct edit tools like Edit | Write | MultiEdit, but channels like Bash, MCP file tools, external editors can bypass it; the discipline itself relies on model compliance, not guaranteed per task
  • Assumes single-writer / serial writes, with no store-level concurrency lock
  • Memory is plaintext, unencrypted; do not write keys or tokens to notes—only record “where secrets are stored”
  • No schema version migration or provenance fields; recalled content should be treated as advisory, not authoritative fact
  • dsh plugin installation of third-party plugins requires pnpm on the local machine and in PATH (upstream rc.7+ fixes preview installation issues)

dsh-xray’s static scan of this plugin shows capability level C2 from manifest.bundle.patch (most mountable plugins in the ecosystem declare this), with no found exec, eval, install scripts, or outbound domains—but please still review the source before installing.

Conclusion

Engramory’s value lies not in reinventing vector retrieval but in packaging “Markdown index + one file per fact + four typed notes + pre-write duplicate checking and deletion” into a discipline replicable across agents, and upgrading the index cap from a soft constraint to a pre-write refusal on DSH via dsh-engramory. If you are using DeepSeek Harness as a long-cycle coding assistant, it is worth a try.

  • SkillHub directory page: https://www.skillhub.cn/plugins/tinqiao-oss/engramory
  • GitHub repository: https://github.com/tinqiao-oss/engramory
  • DSH adaptation notes: https://github.com/tinqiao-oss/engramory/tree/master/adapters/dsh