DragView: DSH File Drag-and-Drop and Secure Preview Plugin

Introduction

In DeepSeek Harness (DSH), handling file attachments often requires manually copying paths or relying on native attachment mechanisms, making the process cumbersome. The DragView plugin listens for drag-and-drop events, injects local files directly into the chat interface, and generates structured Codex-style attachment cards. It supports secure preview, opening with the system app, and two modes: path resolution or file copying.

Plugin Overview

The plugin is maintained by user anzhaohao and has the package name dsh-dragview. It addresses the needs of quickly onboarding files, previewing non-image content, and securely accessing local file paths in agent development scenarios.

Core Features

DragView provides the following capabilities:
* Drag-and-drop interaction: Drag a local file into the chat interface; after release, the behavior is determined by the configuration.
* Card rendering: Generates a 280×64 px Codex-style attachment card, displaying the file name, size, and type.
* Preview mechanism: Supports secure preview for PDFs, audio/video, and text files (text is limited to 10 MB, displaying the first 1 MB).
* System Open: Click the card or press Enter/Space to open Office documents, archives, and unknown files with the default system application.
* Path resolution: Uses Windows Everything CLI, macOS Spotlight, and Linux plocate/locate for path location.
* Image handling: Images do not go through this plugin and retain the platform’s native attachment channel.

Installation and Configuration

The plugin can be installed via the official command.

dsh plugin add dsh-dragview

After installation, add a drag-file section in DSH settings for configuration.

Modes and Usage

The plugin supports two working modes. Switch between them in the drag-file section of the settings; restart to apply.

resolve mode (default)

After a file is dropped, it resolves the real absolute path and does not copy the original file. It is suitable for referencing existing files in the workspace.

copy mode

After a file is dropped, it copies the bytes directly into the workspace. It is suitable for files outside the workspace and ensures stable model reading.

Steps

  1. Drag a local file into the chat interface.
  2. When released, display a “Copy” or “Reference” hint based on the mode.
  3. View the generated Codex-style card in the attachment bar of the input box.
  4. Click the card or press Enter/Space to preview or open it with the system.
  5. When sending the message, file references will be appended to the content, one @"<absolute path>" per line.

Security and Boundaries

The plugin applies multi-layered security controls for file access:
* Opaque ID: After each successful resolution or copy, the host generates a short-lived, opaque fileId, and all subsequent operations must be checked against this ID.
* Path validation: The write process rejects symlinks/junctions at each level and revalidates after creation to prevent path escape.
* Sandboxed preview: Text preview responses are forced to text/plain and include CSP to prevent active content execution.
* Error prompts: A prompt is shown when path resolution fails or capability validation does not pass; it does not fail silently.

Notes

  • copy mode can only write to the workspace that is authoritatively bound to the current session in the workspace registry.
  • The plugin runs with the permissions of the current DSH process. It is recommended to review the source code and license before installation.
  • Images do not go through this plugin and retain the platform’s native attachment channel.

Related Links

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye