Preface¶
DeepSeek Harness (DSH) uses a plugin-based architecture and allows developers to extend its capabilities. In agent development and long-form conversation scenarios, a common pain point is how to effectively pass previous context to the model and how to track files generated in the current turn. The dsh-cite plugin is designed to address these two issues. It provides the ability to annotate previous content and cite historical sessions, and automatically displays generated files in the reply.
Plugin Introduction¶
dsh-cite is a Web plugin for DeepSeek Harness. Its Chinese name is “引注” (Citation). It is maintained by the user wanghehe123 and is released under the MIT License. It injects browser-side logic to provide text selection citation, cross-session citation, and artifact display features.
Installation and Activation¶
Install the plugin through the CLI:
dsh plugin --profile web add @wishp3/dsh-cite
After installation, it must be enabled manually. Open the DSH Web interface, go to Settings -> Plugins -> Plugin Configuration, and find the “Citation” card. In the card, you can adjust the scope configuration. The default scope is the current workspace.
Core Features¶
- Select and Annotate Previous Content: Select text in the conversation, add a comment, and send it along with the message.
- Historical Session Citation: Use the
@symbol to cite a historical session as read-only evidence. - Artifact Display: After the reply is completed, generated files are displayed as a list below the message.
- Copy Session ID: Copy the native session ID from the session row menu.
- Configure Scope: Switch the citation scope in settings (current workspace only vs. all visible sessions).
Usage¶
Select Previous Content to Add Annotation¶
Select a passage in the chat body and click the “Add to conversation” button that appears. A numbered dot appears at the end of the sentence. Click the dot to open the comment card, enter a comment, and save it. When sent, the selected text becomes a Markdown blockquote, followed by the comment.
Cite Historical Sessions¶
Enter @ in the input box to pop up a candidate menu from the historical session list. After selecting a session, the system passes it to the model as a read-only snapshot. You can also directly enter session-<uuid> or manually type @title when the switch is enabled (the title must be unique).
View and Open Files¶
After the reply is completed, an “Artifacts” list appears below the message and lists the files generated in this turn. Left-click to open a file, right-click to copy its path, or open the containing folder directly in the file manager.
Copy Native Session ID¶
In the session list, click the menu button (⋯) on the right side of the session row and choose to copy the native session ID of that session.
Configuration¶
The plugin configuration mainly involves the scope parameter:
* workspace: Only records with the same working directory (cwd) as the target session can be cited.
* all: All persisted sessions visible to the local dsh instance can be cited.
The default value is workspace.
Notes¶
- Selection Limitation: Selection citation only supports text. Images and tool cards are not supported.
- Duplicate Citations: The same piece of text can be selected multiple times, and the system does not automatically deduplicate it.
- Rendering Behavior: Blockquotes in the reply are not specially rendered;
>is normal Markdown syntax. - Draft Reload: After a draft is reloaded, selected citations are not automatically restored to chips; only the text is retained.
- Search Scope: The
@candidate list does not search message bodies; matching is based only on ID, cwd, and the collapsed title. - Cross-Session Limitation: Cross-session citations propagate text only; non-text blocks are not passed along.
- Citation Freshness: A citation is not a live link. The snapshot is frozen at send time and does not update when the source session changes.
Conclusion¶
The dsh-cite plugin enhances DSH’s memory capabilities through simple interactions—selecting text and typing @—making context passing and file management more intuitive. It does not modify DSH’s core runtime but instead enhances it at the Web layer, making it suitable for developers who need fine-grained control over context and artifacts.
For more details, visit:
Community Directory
GitHub Repository