Introduction¶
The web chat interface of DeepSeek Harness (DSH) by default only supports drag-and-drop of images. For developers who need to process PDFs, configuration files, or datasets, this adds extra operational overhead. The dsh-drop-any-file plugin solves this problem by intercepting browser drag-and-drop events and allowing non-image files to be saved to the workspace of the current session.
Plugin Overview¶
This is a plugin maintained by Zenjibad under the MIT license. Its core feature is to enable DSH to support drag-and-drop upload of any file type and persist non-image files, making them easy for agents to read and process.
Core Features¶
- Supports any file type: No longer limited to images; PDF, zip, txt, csv, bin, and other files are accepted.
- Saved to workspace: Non-image files are saved to the workspace directory of the currently active session, where agents can read them using standard tools.
- Image handling unchanged: Drag-and-drop operations containing only images retain their original behavior and do not interfere with built-in functionality.
- Bypasses limits: It intercepts Composer’s image-only rejection logic and prevents error prompts from appearing.
- Interactive feedback: A theme-aware overlay is displayed during drag-and-drop, and toast notifications are shown when saving succeeds or fails.
- Safety limits: File names are sanitized, and file sizes are limited (maximum 80MB body / 60MB file).
- Theme adaptation: The overlay and notification styles follow DSH’s light/dark mode.
Installation and Enablement¶
Install it via the command line; the plugin is persisted as a Profile bundle:
dsh plugin --profile web add github:Zenjibad/dsh-drop-any-file
After installation, you must hard refresh the browser tab (Ctrl+F5) for the changes to take effect.
Example Usage¶
- Open a session in the DSH Web interface.
- Drag a non-image file (for example, a PDF or .txt file) onto the chat window.
- Follow the overlay prompt; the file will be saved to the workspace directory of the current session.
Notes¶
- Environment requirements: Requires DSH version ≥ 0.1 with the Web Profile enabled.
- Session requirement: If no session is currently open, the plugin remains idle and will not take effect.
- File size: Files larger than 60MB will be rejected.
- Refresh requirement: After installing or updating a client plugin, you must perform a hard refresh (Ctrl+F5); hot reload will not load the new plugin.
- No configuration file: Plugin behavior is controlled by constants in the source code, and there is no separate configuration file.
Links¶
- GitHub repository: https://github.com/Zenjibad/dsh-drop-any-file
- Plugin directory: https://www.skillhub.cn/plugins/Zenjibad/dsh-drop-any-file