Back to home@yangpeng-space

my-image-drop

DSH plugin: drag-and-drop images to file paths for text-only models

Stars
0
Language
JavaScript
Created
Aug 20, 2026
Updated
Aug 20, 2026

Introduction

my-image-drop

A DeepSeek Harness plugin that turns drag-and-drop of images into file paths in the composer, so text-only models can read them with the read tool (or a vision skill) instead of failing image admission.

How it works

  • Host half (dsh/index.js): registers a loopback route POST /my-image-drop. It accepts an image, magic-byte checks and size-caps it (25 MB), writes it as a private (0600) temp file under <tmpdir>/my-image-drop, and returns { "path": "..." }.
  • Browser half (dsh/client.js): a capture-phase drop listener (plus dragenter/dragover to enable dropping). On a drop that carries image files, it uploads each to /my-image-drop and inserts the returned path into the focused composer as plain text. It also dispatches a synthetic dragend so the composer's drop overlay dismisses.

The composer shows a file path in the input box. Send it and the model gets a path — the primary trigger for the read tool and vision skills.

Install

From the GitHub source (git install runs prepare; no build needed, the entry is committed):

dsh plugin add github:<owner>/my-image-drop

Or add the bundle to your profile:

{
  "dsh": { "profile": { "bundles": ["my-image-drop"] } }
}

Scope

This plugin handles drag-and-drop only. Paste is intentionally left to whatever else is installed (e.g. @liustack/modlens) so the two never double-handle the same event. If you run modlens' own drop patch and this plugin at the same time, both would insert a path — pick one.

Files

  • package.json — manifest; declares dsh.bundle.patch and the browser bundle (dsh.client).
  • cordis.patch.yml — host mount layer.
  • dsh/index.js — host half (route).
  • dsh/client.js — browser half (drag/drop listeners).

Testing (author)

  • node --check dsh/index.js — syntax check the host half.
  • node --check dsh/client.js — syntax check the browser half.
  • Install into a web profile, restart the desktop app, drag an image into the composer, and confirm a file path is inserted and the read tool can open it.