Plugins in the DeepSeek Harness (DSH) ecosystem usually provide specific capabilities. For developers who need to revisit historical conversations, the official sessionQuery service provides a basic interface, but there is no model-facing native retrieval tool, and the default configuration usually does not enable persistent full-text search. dsh-session-recall fills this gap. Through the ctx.sessionQuery interface, it gives the model a deterministic cross-session full-text search tool with explicit scope control.

What Is It

This is a Memory-category plugin maintained by kittimzhe. Its core value is that the agent can directly search historical session records instead of relying on external memory frameworks or synthesized summaries.

Core Capabilities

The plugin has the following capabilities:

  • Cross-session full-text search: supports text search over historical session records.
  • Model-facing recall tool: an interface directly exposed to the model for calls.
  • Persistent FTS5 index: the index is stored in local files and remains available after process restart.
  • CJK zero-hit substring fallback: an optimization for Chinese tokenization limits; short queries automatically fall back to substring scanning.
  • Default CWD-based scoped search: by default, only sessions started in the current working directory (cwd) are searched.
  • Typed recall results: returns a JSON structure with stable fields, including session ID, title, date, and matched snippet.

Installation and Enablement

Prerequisites

  • Node.js 20 or 22.
  • The DeepSeek Harness profile must mount the tools and sessionQuery services (the default web or agent profiles usually satisfy this condition).

Installation Steps

Use the official installation command:

dsh plugin --profile web add dsh-session-recall

After installation completes, the index file is stored at <DSH_HOME>/session-recall/index.db. The index is automatically built on the first search.

Typical Usage

In a session, it can be triggered by natural language or called explicitly in code.

Natural Language Trigger

When the agent receives the prompt, it automatically uses the tool:

recall: which font did we pick for the resume last week?

Tool Call Examples

recall({ query }) // 搜索当前项目会话,返回最佳匹配事件
recall({ query, all_projects: true }) // 搜索所有会话(需要部署权限)
recall({ query, session_id }) // 搜索指定会话的事件

The returned results are rendered as native search cards, containing session ID, title, date, and matched snippet.

Use Cases and Caveats

Use Cases

  • Scenarios that require retrieving original session logs rather than synthesized summaries.
  • Scenarios that require strict retrieval scope, such as only the current working directory.
  • Scenarios that require auditing and traceability.

Caveats

  1. Permission control: the all_projects parameter expands the search scope and is effective only when deployment permissions allow it.
  2. Version differences: this plugin is unrelated to dsh-recall-plugin (which is used for message undo/replay) and replaces the legacy dsh-recall.
  3. Dependency services: ensure that the Harness profile correctly mounts the tools and sessionQuery services.
  4. Technical details: when CJK queries yield zero hits, it automatically falls back to substring scanning; the index is automatically built on the first search.

Summary

dsh-session-recall focuses on reading original session logs and does not perform write operations. As part of the “retrieval layer” in the DeepSeek Harness ecosystem, it provides agents with auditable and deterministic historical recall capabilities. See the plugin source and directory page links below.