Introduction

An agent can produce 20 documents in a single day, and you cannot find the one from earlier. Knit places them next to the conversation — whatever you are discussing, the relevant document is at the top.

What is It

This is a memory plugin for DeepSeek Harness. It ranks results by relevance to the current conversation (BM25 + IDF, fully local, zero model calls), splits results into primary/secondary/related tiers, and provides a knit_docs tool for agents.

Core features include:
* Support switching between relevance and modification time modes.
* Scan .md files under the session workspace (recursive, depth ≤ 6).
* The document list is always single-column and supports in-place Markdown preview expansion.
* The preview panel supports dragging to adjust height, real-time filtering, opening documents in the system default app, and double-clicking to open in a new tab.
* Keyboard navigation (arrow keys, Enter, Esc).
* Automatic refresh every second.
* Bilingual Chinese and English.

Installation and Enabling

The installation command is:

dsh plugin --profile web add dsh-knit

After installation, restart DSH and hard-refresh the browser. You can open the panel by:
1. The Knit icon button on the right side of the session header (next to the right sidebar expand button).
2. Selecting + and then Knit recent docs in the right sidebar tab bar.

Usage

  • Drag the preview panel height.
  • Use keyboard navigation (arrow keys, Enter, Esc).
  • Hover over the entry button to peek at the five most recent documents.
  • Click the workspace path to open the project folder in the system file manager.

Notes

  • For short conversations (too few keywords), ranking falls back to modification time.
  • When the corpus is small, IDF contributes almost nothing.
  • It can only rank documents that share vocabulary with the conversation.
  • In the All view, the media area may be pushed out of the window (known defect).

Conclusion

Knit solves the difficulty of retrieving agent documents through fully local computation. It does not rely on model calls, refreshes in real time, and is suitable for projects that need to locate context quickly. You can learn more from the community directory or GitHub.