Back to catalog

lbl61 /

dsh-drop-in

Verified

Drag files into the DeepSeek Harness web GUI: chip bar, send-with-message (absolute paths), bubble file cards. Bundle-form dsh plugin.

0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
READMESource: main@70709db5

dsh-drop-in

馃寪 涓枃鐗堬細README.zh.md

Drag files from your system file manager straight into the DeepSeek Harness web GUI. Files appear as a chip bar above the input box, or 鈥?with the composer focused 鈥?as a native reference bubble (file pill) embedded inline in the text you are typing; they are sent along with your message (including their absolute paths), and render as file cards inside the user bubble.

Chip bar and message cards File cards in the user bubble

Features

  • 馃搸 Drag in any file/folder (images are treated as files 鈥?the official image-drop overlay no longer steals the drag)
  • 馃 Inline file bubble: with the composer focused, dropped/pasted files are inserted at the caret as a native reference pill (works mid-text, e.g. 浣犲ソ銆屾姤鍛?zip銆嶇湅涓€涓嬭繖涓枃浠禶); on send the pill expands to a reference carrying the **absolute path** (@filename`) and the bubble renders it as a file card 鈥?the agent can read the file straight from the path
  • 馃柤锔?Clipboard paste: pasting an image/file into the composer goes through the same pipeline instead of the native image-attachment rail
  • 馃殌 Chip bar above the input: icon + name + size + path status, removable (脳), deduplicated by path
  • 鉁旓笍 Messages automatically carry a 馃搸 鎷栧叆鏂囦欢 block (name, size, absolute path), rendered as file cards (hover for the full path)
  • 馃攳 A dropped_files tool lets the agent list still-unsent dropped files
  • 馃枼锔?Under DSH Desktop (Electron) absolute paths come from the preload bridge (webUtils.getPathForFile 鈥?the only path source in modern Electron)
  • 馃寪 Fallback: in a plain browser (no preload bridge) text files are copied to the workspace .dsh-drops/, and pasted binaries are persisted there via base64, so the agent can still read them

Install

dsh plugin --profile web add https://github.com/lbl61/dsh-drop-in/archive/refs/tags/v1.3.0.tar.gz

Manual (bundle) install:

  1. Extract dsh-drop-in into ~/.dsh/profiles/web/node_modules/dsh-drop-in/
  2. Add "dsh-drop-in" to the dsh.profile.bundles array in ~/.dsh/profiles/web/package.json
  3. Restart dsh web (DSH Desktop: quit fully and reopen, or run window.dshDesktop.restartService() in DevTools)

Usage

  1. Drag files from Explorer into the chat page (or paste an image/file into the composer)
  2. Composer focused 鈫?files are inserted at the caret as native reference bubbles (file pills), mid-text allowed; otherwise they appear in the chip bar above the input
  3. Type your message and send (Enter / Ctrl+Enter / the send button all work)
  4. The bubble shows file cards 鈥?the agent receives the absolute path (@[name](path) or the 馃搸 鎷栧叆鏂囦欢 block) and can read the files

How it works

  • The client half intercepts file drags in the capture phase (the official image-upload flow never steals the events), keeps a per-session chip bar (conversation.input.dock), renders user bubbles with file cards (conversation.chat.node user key), and stitches the 馃搸 鎷栧叆鏂囦欢 block into the draft before submit (Enter, Ctrl+Enter, and the send button are all covered); with the composer focused it inserts native reference bubbles via the slash/input-insert-reference scoped event (U+FFFC occurrences rendered by the composer backdrop) and the registered inputTriggers codec serializes them to @[filename](absolute-path) on submit
  • The host half keeps the per-session file registry behind the dropped_files tool, writes fallback text copies to .dsh-drops/<sessionId>/, and persists pasted binaries via the file-copy route (base64)
  • Absolute paths under DSH Desktop rely on the preload bridge (see preload-bridge.md): Electron 鈮?32 removed File.path

Configuration

Setting Description
enabled Master switch (Settings 鈫?鏂囦欢鎷栧叆). When off, drag/paste falls back to built-in behavior.

Uninstall

  1. Remove dsh-drop-in from the dsh.profile.bundles array in ~/.dsh/profiles/web/package.json
  2. Delete ~/.dsh/profiles/web/node_modules/dsh-drop-in/
  3. Restart dsh web

License

MIT

/ 5

No ratings yet

Community comments

No comments yet. Be the first to write one.