Introduction¶
When writing prompts in the DSH (DeepSeek Harness) Web interface, if the agent needs to read local files, the common approach is to manually input the path first, or copy the file content into the message. This process has two common pain points: paths are easy to mistype, and copying content also loses the original file location; when dragging images in, they might be intercepted by the built-in image upload process.
dsh-drop-in targets file integration for the DSH Web input box: after dragging or pasting files from the system file manager, files are sent with the message as native reference bubbles and file cards, and the absolute path is handed to the agent. Below is an introduction to its features, installation method, and typical usage.
What is this¶
dsh-drop-in is a plugin for the DSH Web composer scenario. Its core function is to turn dragged or pasted files into sendable references, rather than just passing images through the native upload chain. The repository path is lbl61/dsh-drop-in with an MIT license.
Its main functions are:
- Display files in the input box as reference bubbles or a
chip barabove it. - Render file cards in the user bubble after sending.
- Hand the absolute path of the file to the agent as a reference.
- Provide different paths or fallback behaviors for DSH Desktop and regular browsers.
Core Features¶
- Supports dragging arbitrary files/folders from the system file manager; images are processed as files, and the official image drag-and-drop override no longer steals events.
- When the input box is focused, dragged or pasted files are inserted as native reference bubbles at the cursor position; inserting in the middle of existing text is also supported.
- When the input box is not focused, files are displayed in the
chip barabove the input box, containing icon, name, size, path status, removable, and deduplicated by path. - When sending, the reference expands to include the absolute path; the user bubble renders as a file card with a type badge.
- Supports pasting images/files; pasted binary content is persisted to
.dsh-drops/<sessionId>/in base64. Enter,Ctrl+Enter, and the send button can all send; sending while the agent is running is also supported, rendering the same file card.- Provides the
dropped_filestool, allowing the agent to list dragged files that haven’t been sent yet. - On DSH Desktop, the absolute path comes from the preload bridge; for regular browsers, the fallback copies text files to
.dsh-drops/in the workspace.
Installation and Enabling¶
Use the v1.3.0 installation command:
dsh plugin --profile web add https://github.com/lbl61/dsh-drop-in/archive/refs/tags/v1.3.0.tar.gz
The plugin provides an enabled master switch. When disabled, drag-and-drop/pasting falls back to built-in behavior.
Typical Usage¶
-
Drag files from the File Explorer to the chat page, or paste images/files in the composer.
-
If the composer is focused, files are inserted as native reference bubbles at the cursor; otherwise, they are displayed in the
chip barabove the input box. -
After entering a message, send via
Enter,Ctrl+Enter, or the send button; sending while the agent is running is also supported. -
After sending, the bubble displays a file card; the agent receives the absolute path reference (
@[name](path)or “Dragged File” block) and can read the file.
Suitable Scenarios and Notes¶
Suitable for agent development scenarios where local files, folders, images, or text are frequently referenced in DSH Web. It is suitable for workflows where you want to send file paths as part of the message, rather than manually typing paths or pasting content.
Notes:
- The plugin runs with the current
dshprocess permissions. Before installing, check the source code, license, and local permission boundaries. - DSH Desktop relies on the Electron preload bridge to provide absolute paths; Electron ≥ 32 has removed
File.path. - When there is no preload bridge in a regular browser, text files are copied to
.dsh-drops/in the workspace; pasted binaries are persisted via thefile-copyroute, and there is a workspace-write sandbox policy based on the session cwd. - If you do not need the plugin behavior, you can use
enabledto disable it, causing drag-and-drop/pasting to fall back to built-in behavior. - Uninstalling requires removing it from the
dsh.profile.bundlesarray, deleting the correspondingnode_modulesdirectory, and restartingdsh web.
Links¶
- GitHub:
https://github.com/lbl61/dsh-drop-in - Directory page given in plugin clues:
https://www.skillhub.cn/plugins/lbl61/dsh-drop-in