Foreword¶
The native attachment handling of DeepSeek Harness (DSH) is limited in terms of interaction. The lack of drag-and-drop, pasting, and intuitive file card management can significantly reduce efficiency for agent developers who need frequent file interactions. dsh-files-native addresses this by providing a near-native attachment upload experience on top of the official input box.
Core Features¶
The plugin extends the official input box’s attachment track and supports multiple file input methods:
1. Drag-and-drop, paste (Ctrl+V), and paperclip-based multi-file selection.
2. Mixed image thumbnails and file cards on the same official input box track.
3. Uses a loopback upload mechanism; artifact cards are handed off to DSH for official handling.
4. File cards render above the user bubble, right-aligned in the same column as images.
Install and Enable¶
Run the following commands to install and configure globally:
npm i -g dsh-files-native
dsh plugin --profile web add dsh-files-native
After installation, you need to completely restart the dsh web process.
Typical Usage¶
- Drag a file into any location in the window and release to add it.
- Paste files using Ctrl+V.
- Use the paperclip in the input box to select multiple files.
- Press Esc to cancel the current drop.
Limitations and Constraints¶
- File limits: Single file limit of 50MB, batch limit of 20 files.
- Upload routing: Only loopback routing is supported.
- Refresh behavior: Refreshing the page will lose “uploaded but not sent” file cards (but files on disk remain in the
.dsh-uploads/directory). - Plugin mutual exclusion: Do not install alongside
dsh-file-fix/dsh-file-upload/dsh-paste-to-path. - Development constraints: Do not call
useSession/useInputon the rendering path; do not attach aMutationObserverto the chat timeline. - Compatibility: Compatible with DSH 0.1.5-rc.1 / 0.1.5-rc.2 and later versions.
Ecosystem Background¶
The DSH plugin ecosystem follows the “everything is a plugin” philosophy. dsh-files-native is maintained by community developer meyaomiao and follows the MIT license.