Preamble

DeepSeek Harness (DSH) emphasizes a plugin-based architecture, while Memorix is a local-first AI memory control plane responsible for storing project-level and knowledge-level memories. When developers need to browse, retrieve, and manage these memories directly in the Web interface, operating the database directly is often risky and not intuitive. The dsh-memorix-panel plugin is designed precisely to address this pain point. It connects Memorix’s SQLite memory store to DSH’s Web GUI and provides a visual management interface.

Plugin Introduction

dsh-memorix-panel is a DSH plugin maintained by biubiu23333333. By connecting to the local Memorix database, it allows users to directly inspect memory store status, view aggregate statistics, search and filter memories, view details, and manage statuses within DSH’s session interface.

In terms of the data read/write strategy, the plugin adopts a “read-only reads, CLI writes” approach: read operations connect directly to the SQLite database and do not depend on any third-party runtime; write operations (such as creating new memories or modifying statuses) are always executed through the official memorix CLI, ensuring that Memorix’s own retrieval indexes remain synchronized. The plugin has zero runtime dependencies and is released under the MIT license.

Features

The plugin mainly provides the following features:

  • Store status and statistics: displays the memory store path, file size, WAL size, last update time, and Memorix CLI version. It supports counting memories, projects, active items, archived items, long-term memories, mini skills, sessions, evidence cards, and knowledge pages.
  • Retrieval and filtering: supports searching by title, entity name, and type, and filtering by memory type and status.
  • Project and memory lists: displays the project list in accordion form; expanding a project reveals its memories.
  • Memory details: displays complete information for a memory, including metadata, body, key points, concepts, involved files, related commits, and related entities.
  • Status management and creation: supports modifying a memory’s status directly in the detail view (with secondary confirmation) or creating a new memory within the panel.
  • Long-term memory view: provides an independent long-term memory section, displaying status (candidate, confirmed, approved, archived, etc.), scope, and type. The panel displays status transition rules, such as “candidate and confirmed do not enter the Workset; approve is required.”
  • Long-term memory management: supports driving Memorix’s state machine (candidate → confirm → confirmed → approve → approved, or archived). Operations require a reason and secondary confirmation.
  • One-click project name copy: supports one-click copying of projectId beside project rows, the “Project” row in memory details, and the “Origin project” row in long-term memory details.

Prerequisites

Before using this plugin, the following environment requirements must be met:

  • DSH Web GUI: installed and available.
  • Node.js: version ≥ 22.18.0 is required. This is Memorix’s own version requirement.
  • Git: installed. Memorix’s project identity comes from actual Git root directories.
  • Memorix CLI: installed. Provides the memorix command-line tool.
  • dsh-better-sidebar (optional): if you want to see the “Memorix Memory” entry in the right-side workbench tab, this plugin must be installed.

Installation and Activation

Installing the plugin requires DSH’s Web profile (usually named web). Use the following command to install it:

dsh plugin --profile web add dsh-memorix-panel

After installation, perform a hard refresh in the browser (Ctrl+Shift+R on Windows/Linux, Cmd+Shift+R on macOS) to activate the client. If there are updates on the host side, the dsh-web service must also be restarted.

Usage

Entry Points

The panel provides three entry methods:
1. Session title bar: default location. In any session interface, click the “● Memory N” button to the right of the “Session Log” button in the title bar.
2. Right-edge docking: when there is no active session or the “Session Log” button cannot be found, the entry automatically docks vertically centered on the right edge of the browser window.
3. Right workbench tab: if dsh-better-sidebar is installed in the deployment and is in the same client assembly domain as this plugin, the “Memorix Memory” option appears in the workbench’s “+ / Empty panel card.”

After clicking the entry, the panel slides out from the right as a top-level browser overlay.

Basic Operations

  1. Browse and retrieve: enter keywords in the search box at the top of the panel (supports title, entity, and type), or use the filters below to filter memories by type and status.
  2. View details: click a memory entry in the list to view complete metadata, body, key points, and related files.
  3. Modify status: at the bottom of the detail page, click the “Change Status” button. Select the target status (such as active, resolved, archived); the system will show a secondary confirmation dialog.
  4. Create new memory: click “New Memory” in the panel, fill in the title, body, type, etc. according to the prompts, and click confirmation. The command line will perform the write operation.

Long-Term Memory Management

The long-term memory view displays Memorix’s durable memory layer. This view displays the status transition process of memories.

  • Status transitions: memories usually go through “candidate” → “confirm” → “confirmed” → “approve” → “approved.”
  • Management operations: in the long-term memory detail page, you can directly click “Confirm” or “Approve” to advance the state machine. Each operation requires filling in a reason (written to audit events) and confirmation.
  • Prompt: the panel displays “candidate and confirmed do not enter the Workset; approve is required.”

Data Paths

The plugin reads the following files to obtain data:
* ~/.memorix/data/memorix.db: SQLite memory store.
* ~/.memorix/data/.project-aliases.json: project alias mapping.
* ~/.memorix/last-project-root: most recently used project root path.

CLI Write Examples

When “New Memory” or “Change Status” is triggered in the interface, the plugin actually invokes Memorix CLI commands in the background. For example:

# 改状态
memorix memory resolve --id <n> --status active|resolved|archived -- --cwd <项目根>

# 新建记忆
memorix memory store --text <正文> --title <标题> --type <类型> \
  --json --cwd <项目根>

Configuration

All configuration items are located in the profile’s cordis.patch.yml file, and all are optional. The main configuration items are as follows:

Configuration Item Default Description
bin memorix Memorix CLI executable file name or absolute path
dbPath auto-detected SQLite file path of the memory store
cliTimeoutMs 25000 Timeout for each CLI invocation (milliseconds)
allowWrite true Whether to allow modifying memory status
allowStore true Whether to allow creating new memories

Example configuration:

- insert:
    - id: memorix-panel
      name: dsh-memorix-panel
      config:
        bin: memorix
        cliTimeoutMs: 25000
        allowWrite: true
        allowStore: true

If only read-only browsing is needed, set allowWrite and allowStore to false.