dsh-upload-button
Upload-image button plugin for DeepSeek Harness Web UI + DashScope text-to-image helper
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 19, 2026
- Updated
- Aug 19, 2026
Introduction
dsh-upload-button
Upload-image button for the DeepSeek Harness Web GUI.
Adds an upload button beside the composer plus button: click it, pick local images, and they enter the composer's draft-image rail as thumbnails. On send, the images ride the standard draft-image path, so describe-image (or any other image consumer) receives them as usual — validation, size limits, and the thumbnail rail all come from the official conversation flow. No harness source changes.
Also ships tools/gen-image.js, a text-to-image helper that calls the Alibaba
DashScope native image-synthesis API (wanx2.1-t2i-turbo).
Features
- Upload button on the
conversation.input.leftslot (beside the plus/command button) - Multi-select file picker (images only — the conversation draft rail is image-only today)
- Reuses the official draft-image drop path: synthetic
DataTransfer+dropevent ondocument - Zero harness changes, pure browser-side plugin
Install
# from GitHub source
dsh plugin --profile web add github:victorytianyi-dev/dsh-upload-button
# or via link (local dev)
dsh plugin --profile web add link:/path/to/dsh-upload-button
Requires DeepSeek Harness 0.1.0-rc.6+.
Usage
- After install and (re)start, open any session.
- Next to the + button in the composer there is an upload button (⬆).
- Click it, pick one or more images.
- Thumbnails appear in the draft rail; type a message and send.
How it works
The plugin registers on the official conversation.input.left slot (list,
session scope). Picking files builds a DataTransfer, then dispatches a
synthetic drop event to document — the exact path a real drag/paste takes,
so the conversation's own image intake (type checks, limits, thumbnails) runs
unchanged.
License
MIT