Bundle
dsh-upload-button
Add an upload-image button beside the composer plus button. Picks local images and feeds them through the conversation draft-image drop path (DataTransfer + synthetic drop event), so describe-image rewrites the send into an image reference.
- Source
- victorytianyi-dev
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# 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.left` slot (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` + `drop` event on `document` - Zero harness changes, pure browser-side plugin ## Install ```sh # 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 1. After install and (re)start, open any session. 2. Next to the **+** button in the composer there is an **upload** button (⬆). 3. Click it, pick one or more images. 4. 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
Install
dsh plugin --profile web add github:victorytianyi-dev/dsh-upload-button#ab6800277eece8c9086f9990bd01cdd2f7e54550
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-upload-button from the hub