Introduction¶
When performing tasks in DSH, it is often necessary to hand files to the model: logs, screenshots, code, PDFs, archives, or a directory. DSH itself follows an “everything is a plugin” architecture, and the community directory is an independent site, distinct from the DeepSeek / Hackerspace official app store.
dsh-airdrop solves a specific problem: in DSH’s web interface, dragging files into the window allows attachments to be sent with the message, and the AI automatically reads the file content.
What is this¶
dsh-airdrop is a plugin for DSH, maintained by demacia1314, and is licensed under the MIT License.
It targets the DSH Web scenario, supporting dragging files or folders into the browser and uploading attachments to the current session’s workspace. The repository name is dsh-airdrop, and the package name is dsh-universal-attachments.
Core Capabilities¶
The following capabilities are directly provided by the plugin:
- Supports dragging and dropping files/folders anywhere on the DSH window.
- Supports remote upload, sending bytes directly to the server session workspace.
- Supports attachments of any format, rejecting no files based on format.
- Preview attachments directly in the browser before sending.
- Attachments are sent with the message, and the AI automatically reads the file content.
- Files are only stored in the current session’s workspace, isolated between sessions.
- Chunked upload for large files, automatic resumption after network disconnection, automatic retry with reduced chunk size when a gateway returns 413, single file limit of 20 GiB.
The “any format” mentioned here means the plugin does not intercept byte content; it does not imply that the AI can necessarily read every format, nor does the plugin execute or unzip your files on its own.
Installation and Enabling¶
The plugin requires Node.js >= 22.
Installation commands are as follows:
dsh plugin --profile web add dsh-universal-attachments
dsh web
After installation, you need to restart dsh web for it to take effect. The current session must have a workspace directory, and the plugin places attachments in this workspace.
Note that the repository name and package name are different:
- Repository name:
dsh-airdrop - Package name:
dsh-universal-attachments
Keep the package name unchanged; do not modify it, otherwise it will break existing installations.
Remote Access: Using SSH Tunneling¶
DSH does not have built-in multi-user authentication, so do not expose DSH Web directly to the public internet. A more stable approach is to have DSH listen only on the local server, then access it locally via an SSH tunnel.
Execute on the server:
dsh web --port 3080
Execute on the local machine:
ssh -L 3080:127.0.0.1:3080 user@your-server
Then open in the local browser:
http://127.0.0.1:3080
This makes the remote DSH upload experience closer to local usage: after dragging in files, the attachments enter the current session’s workspace and are then sent to the AI with the message.
Typical Usage¶
- First, install the plugin and start DSH Web:
dsh plugin --profile web add dsh-universal-attachments
dsh web
-
Confirm that the current session has a workspace directory.
-
Drag files into the DSH web window, or drag an entire folder.
-
You can preview attachments in the browser before sending.
-
Click send; the attachments are sent with the message, and the AI automatically reads the file content.
If it is a large file, the plugin will upload in chunks; it will automatically resume after the network disconnects; if the gateway returns 413, the plugin will automatically retry with a smaller chunk size. The single file limit is 20 GiB.
Cleanup and Notes¶
If you only want to clean up dsh-airdrop attachment files, stop DSH first, then only delete the session directory corresponding to that plugin and its metadata file:
.dsh/uploads/.universal-attachments/<session-identifier>.json
Do not delete the whole thing:
.dsh/uploads/
Otherwise, it may affect other content.
When using this plugin, there are a few behaviors you should be aware of in advance:
- Browsers generally do not report empty directories, so completely empty folders might not be retained.
- Multiple tabs in the same session share a set of pending attachments; whoever clicks send first takes the files that were uploaded at that time.
- The plugin runs with the permissions of the current
dshprocess; you should check the source code and license before installing. - The plugin is only responsible for transferring files to the current session’s workspace; it is not responsible for executing, unzipping, or parsing the content of all files.
Links¶
- GitHub: https://github.com/demacia1314/dsh-airdrop
- Plugin Directory Page: https://www.skillhub.cn/plugins/demacia1314/dsh-airdrop