Introduction

The core design philosophy of DeepSeek Harness (DSH) Web GUI is “everything is a plugin.” When developing with or using DSH for conversations, handling file attachments is a common requirement. The native upload functionality is relatively limited, and when the model does not support multimodal input, images cannot be directly understood. The dsh-file-attachment plugin addresses these issues: it takes over the native attachment upload flow, supports drag-and-drop, pasting, and click-to-upload, stores images and documents uniformly, and enables text models to utilize files through @absolute path references, while also providing VLM recognition capabilities for non-multimodal models.

Core Features

This plugin provides a complete file interaction pipeline. Its main capabilities are as follows:

  1. Multiple upload methods: Supports directly dragging in documents or images, pasting with Ctrl+V, or clicking the native 📎 attachment button to upload multiple files. The plugin has taken over the native DSH upload button.
  2. Unified disk storage management: Images and documents are uniformly saved to the .dsh-file-attachment/ directory under the session workspace. The save path format is <date>/<sanitized filename>, and files with the same name on the same day are automatically appended with sequential suffixes.
  3. Inline preview in the input field: After uploading, an inline attachment bar is displayed above the input field. Images are shown as thumbnails (click to enlarge), and documents display a type icon and filename. Clicking × on an item removes the attachment entry and synchronously clears the corresponding @reference in the input field.
  4. Chat area rendering: @image paths in user messages are rendered as clickable thumbnails (Lightbox effect), while @file paths retain chip styling.
  5. VLM intelligent recognition: If the current session model does not support multimodal input, the plugin automatically calls the configured VLM (Vision Language Model) to recognize images, generates a Chinese description, and fills it back into the draft area. If no VLM API Key is configured, recognition is silently skipped without affecting file storage.
  6. Cross-platform support: Supports PC browsers and mobile browsers.

Installation and Enablement

Install the plugin via the official CLI:

dsh plugin --profile web add @wszhoho/dsh-file-attachment

After installation, restart DSH Web GUI for the changes to take effect.

Typical Usage

  1. Drag and drop / Paste: Drag a document or image into the input field, or paste directly from the clipboard. The system automatically saves the file and inserts an @ reference at the cursor position.
  2. Multi-file upload: Click the 📎 button to the left of the input field, select multiple documents or images in the system file picker, and references are inserted automatically after uploading.
  3. Remove attachment: Click × next to an attachment entry in the input field to remove the attachment and clear the corresponding @path reference.
  4. Usage with text models: Even if the current model cannot understand images, by uploading images and configuring a VLM, the model can reference image content when generating replies.

Notes

  • Directories not supported: The plugin does not support dragging in entire folders directly.
  • File size limit: Files larger than 50 MB are skipped with a notification.
  • Path dependency: The file save path is based on the current session’s workspace (session.header.cwd). Ensure the workspace directory is writable.
  • VLM configuration: Using VLM recognition requires configuring the API Key and model parameters on the settings page.

Summary

wszhoho/dsh-file-attachment is a practical and focused DSH plugin that standardizes how files are stored and referenced in DSH. For AI Agent developers who need to handle documents, code, or images, this plugin significantly improves the interaction experience and lowers the barrier for multimodal integration.

GitHub Repository
Plugin catalog page