Skip to content
dsh.fish
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

Source