Foreword

When using DeepSeek Harness (DSH) to write code and run agents, a common pain point is “having to start from scratch every time a new conversation begins”: technical decisions made last week, coding preferences you’ve repeatedly emphasized, and pitfalls encountered in the project are often forgotten by the model. Even with a large context window, it cannot replace a cross-session, persistent, and human-reviewable memory layer.

If you’re already running agents in DSH and want memory to be persisted, searchable, and migratable from tools like Cursor or Claude Code, the community plugin dsh-noema (npm package @zseven-w/dsh-noema) is worth a look. Published by maintainer ZSeven-W, it is categorized under “Memory” in the SkillHub Plugin Directory. As of verification, its GitHub repository ZSeven-W/dsh-noema has approximately 123 stars and 7 forks, and is licensed under MIT. It should be noted that SkillHub is an independent community directory for Chinese users and has no official affiliation with DeepSeek or High-Flyer. DSH itself adheres to a “everything is a plugin” philosophy, and memory capabilities are similarly integrated as plugins.

What Is This

dsh-noema is a long-term memory plugin for DSH based on Noema: it connects DeepSeek Harness with Noema. Noema is a local-first, non-vector memory system designed for programming agents; the plugin builds upon this foundation to provide agents with persistent, inspectable memory read/write capabilities, along with a visual settings page.

In short: It allows agents to retain knowledge across multiple sessions instead of starting with a blank context every time.

The current plugin version is 0.1.0-rc.3, and the README indicates it has been tested on DSH 0.1.1-rc.1; the runtime requires Node.js >= 24.11.0.

Core Features & Highlights

Durable Recall

Memories are stored as inspectable Markdown files in the NOEMA_ROOT directory, defaulting to ~/.agent-memory/. At the start of a session, noema_recall loads relevant context based on queries; for searching, browsing, or auditing, tools like noema_search, noema_browse, noema_catalog, and noema_recall_graph are also available.

Import Memories from Other Agent Tools

noema_import can read memory files from various AI programming tools, split them by paragraph, write them to Noema, and deduplicate using a content key ledger to avoid redundant imports. The README lists sources including: Codex, Claude Code, opencode, Cursor, Grok, WorkBuddy, Antigravity, Trae, Qoder, Hermes, and others, covering global configuration and project-level rule files (such as AGENTS.md, CLAUDE.md, .cursor/rules/*.mdc, etc.). The settings page allows toggling imports for each source individually and supports automatic import at startup.

Unified Settings Page Management

In the DSH web interface, go to Settings → Noema Memory to configure server commands, memory root directory, recall token budget, idle/call timeout, and other parameters. The “Manage memories” card supports searching, browsing, adding, reviewing, and deleting stored memories without manually editing disk files.

Service Keep-Alive

The memory service defaults to not exiting when idle (an idle timeout of 0 means it never stops) and automatically restarts the noema-mcp subprocess in a background keep-alive loop after crashes or exits. Check intervals and restart backoff times are configurable.

Entity Extraction & Hot Reload

Noema’s extraction engine combines jieba tokenization with signals from English proper nouns, CJK technical terms, quoted topics, etc., to maintain a PageIndex topic directory. Development support includes Cordis HMR for host plugin hot reload, client bundle hot replacement, and immediate effect of settings changes (though a service restart is still required after the first plugin load to enter the hot reload cycle).

Installation & Activation

The plugin is designed for the web profile, and the official README provides the following installation method:

dsh plugin --profile web add @zseven-w/dsh-noema@latest
dsh web

For local source development and debugging, you can use the link: protocol to link the profile dependency to the repository directory, which is convenient with HMR:

dsh plugin --profile web add link:/path/to/dsh-noema
dsh web

The plugin bundles the noema-mcp binary via optional npm packages across platforms; you can also build it yourself in the bundled noema submodule by running cargo build --release -p noema-mcp, or point the Server command in settings to a custom noema-mcp executable.

Before installation, it is recommended to review the repository source code and MIT license to ensure the memory read/write scope and permissions align with your security expectations—the plugin runs with the permissions of the current dsh process, and accessible paths are those the agent can reach.

Typical Usage

Model-Side Memory Tools

The plugin exposes a set of noema_* tools to the model, aligned with the Noema MCP surface. Common capabilities include:

Tool Function
noema_recall Recall relevant memories based on a query, with configurable token budget
noema_search Full-text search across stored memories
noema_browse Browse a topic or entity in the PageIndex
noema_remember Save facts, decisions, constraints, or preferences
noema_import Import memories from other AI programming tools
noema_forget Mark for deletion or permanently delete memories
noema_status View service and tenant status, index health

Each tool returns a unified envelope { ok, tool, text }, where the text field contains the full server output.

Migration from Cursor and Other Tools

In a conversation, have the agent call noema_import, or click Import now on the settings page. For example, when importing from Cursor, it scans ~/.cursor/rules/*.mdc, ~/.cursorrules, and corresponding files in the workspace. Import records are written to $DSH_HOME/storages/dsh-noema-imports.json and deduplicated by “file path + paragraph content”; to force a full re-import, pass force: true.

Settings Overview

Setting Default Description
Enable memory On Master switch for all noema_* tools
Memory guidance On Injects memory usage guidance into the system prompt
Start server at boot On Launches the memory service when DSH starts
Auto-accept new memories On noema_remember immediately persists to disk
Memory root Empty Uses ~/.agent-memory if empty
Recall token budget 1200 Default token limit for noema_recall
Keep alive On Automatically restarts the service in the background after crashes

For a more complete parameter description, see the Settings section in the GitHub README.

Applicable Scenarios & Considerations

Who It’s For:

  • Those maintaining the same project long-term on DSH who want to preserve architectural decisions, pitfall notes, and personal preferences across sessions;
  • Those who have accumulated numerous AGENTS.md / rule files from tools like Cursor, Claude Code, Codex, etc., and want to migrate them into DSH in one go;
  • Those needing “plaintext memory you can open in a folder and read directly” rather than a black-box vector database.

Please Note Before Use:

  1. Memory files are stored on the local disk; please back up NOEMA_ROOT appropriately and check for sensitive information.
  2. The import function reads configuration and memory paths from other tools; ensure these directories do not contain confidential content that should not be learned by the agent.
  3. The plugin is currently a 0.1.0-rc.3 candidate version; APIs and behaviors may evolve with DSH / Noema updates.
  4. Before installing any community plugin, always review the source code and license yourself; the plugin’s permissions are equivalent to those of the user running dsh.

Conclusion

If you’re tired of “explaining the context from scratch in every conversation,” dsh-noema offers a relatively practical path: local Markdown storage, rich recall and import tools, unified management via a web settings page, plus engineering details like service keep-alive and hot reload. You might start by installing it with the official commands and try importing your existing Cursor / Claude Code rules.