Foreword

During a DeepSeek Harness (DSH) conversation, you may need to cite a specific passage from an assistant reply instead of copying the entire text directly. Manual handling can easily lose contextual relevance and is inconvenient to manage during later editing.

The DSH Conversation Annotation plugin provides a minimalist solution. It lets users select text from an assistant reply, preserve it as an independent annotation, and send it to the model as context on the next submission. The plugin runs entirely in the browser and does not depend on a Host service or dedicated integration.

Plugin Overview

  • Name: DSH Conversation Annotation Plugin
  • Maintainer: choco9527
  • Category: Client
  • License: MIT

By listening to selection events, the plugin stores the selected assistant reply content as draft context for the model to reference in subsequent turns.

Core Features

  1. Selection Limit: Each selection is limited to the same assistant reply, ensuring the accuracy of the citation.
  2. Consecutive Additions: Supports adding multiple annotations consecutively within the same reply.
  3. No Automatic Sending: It does not trigger automatic submission; users can continue editing the regular draft or send only the annotation content.
  4. Floating Card: A floating card displaying “x annotations” appears above the input box, showing the full original text and a delete button for each item.
  5. Language Sync: The UI text follows the current DSH language, supporting Chinese and English, and refreshes immediately after switching.

Installation and Enablement

Run the following command in the terminal to install the plugin:

dsh plugin --profile web add github:choco9527/dsh-add-to-chat

After installation, restart the corresponding DSH Profile to activate it.

Usage

  1. Select the text you want to cite in an assistant reply message.
  2. Click the floating “Add to Conversation” button.
  3. A floating “x annotations” card appears above the input box, showing the added quoted text.
  4. Users can continue editing regular text or send directly. When sending, the annotations are passed to the model as independent context; they are cleared automatically after a successful submission and restored if it fails.

Notes

  • Dependencies: The plugin relies on the data-dsh-message-role="assistant" marker in the assistant body, the sessions.list session directory, the conversation.draftContexts submission service, and the DSH locale service.
  • Compatibility: It does not depend on page CSS classes, nor require a Host service or dedicated code.
  • Editor Compatibility: The plugin does not write Markdown, hidden nodes, or Chips into the Lexical editor, so pressing Backspace cannot accidentally delete content.
  • Information Display: When annotations are pending, a numeric marker is kept near the original assistant selection; detailed information is uniformly viewed in the “annotations” card above the input box.
  • Session Isolation: After switching sessions, each pending annotation set is retained independently.

Ecosystem Background

The core philosophy of DSH is “everything is a plugin”. This plugin is listed in the community directory, maintained by community developers, and has no affiliation with DeepSeek or official products.

Reference Links

  • GitHub: https://github.com/choco9527/dsh-add-to-chat
  • Community Directory: https://www.skillhub.cn/plugins/choco9527/dsh-add-to-chat