Introduction¶
When developing with the DeepSeek Harness (DSH) web profile, a common bottleneck is file entry. To hand a screenshot or a log snippet to the agent within the session, the input box lacks a native channel for pasting files; users can only manually copy the path or return to the terminal to operate.
dsh-inbox-paste is a DSH web plugin that fills this gap: it allows pasting or selecting files directly in the input box. Once sent, the file is automatically written to the inbox/ directory of the current session workspace, where the agent can then read it using tools. Below is an introduction to its features, installation, and usage.
What is it¶
dsh-inbox-paste (repository address: JarszmLovesAI/dsh_upload_file) is a DSH web bundle plugin maintained by JarszmLovesAI, currently at version 0.1.0 under the MIT license. It solves the problem of enabling web sessions to have a paste/select file entry and handing files to the agent via a predefined path.
It is worth noting that the plugin name and repository name are inconsistent: the plugin name in the README and package.json is dsh-inbox-paste, while the GitHub repository name is dsh_upload_file. The installation command uses the repository name, and the uninstallation command uses the plugin name.
Core Features¶
- Paste by pressing Ctrl+V / Cmd+V in the input box, or select a file by clicking the paperclip.
- Before sending, a thumbnail of the file to be sent is displayed above the input box and can be removed using ×; the file is not yet written to disk at this stage.
- Upon sending, the file is written to the
{session.cwd}/inbox/directory. - The user message bubble can display thumbnails, controlled by the
customizeUserBubbleconfiguration; when set tofalse, the built-in bubble is used, which may display the raw path. - The agent reads text files via two tools:
list_inboxandread_inbox. - It includes an optional built-in
image-readerskill for image understanding, which requires you to setARK_API_KEY. - It does not use Harness’s native image attachments (see “Upload ≠ Multimodal Understanding” below for details).
Installation and Enablement¶
Prerequisites: DeepSeek Harness with the web profile, Node.js ≥ 22, and the dsh CLI.
First install the plugin, then start the web session:
dsh plugin --profile web add github:JarszmLovesAI/dsh_upload_file
dsh web
To uninstall:
dsh plugin --profile web remove dsh-inbox-paste
Typical Usage¶
After installing the plugin, the daily workflow is as follows:
- Paste the file in the input box by pressing Ctrl+V / Cmd+V, or select a file by clicking the paperclip.
- The thumbnail of the file to be sent appears above the input box; if pasted incorrectly, remove it by clicking × before sending, as the file will not be written to disk at this stage.
- After sending, the file lands in the
inbox/directory of the session workspace, and the message bubble can display the thumbnail. - On the agent side: use
list_inboxto list the contents of the inbox first, then useread_inboxto read text files; for images, use the built-inimage-readerskill or your own visual tools.
Configuration¶
The configuration file is located at ~/.dsh/profiles/web/cordis.patch.yml (adjust the profile name according to your actual situation). Find the section with id: inbox-paste:
- id: inbox-paste
config:
uploadMaxBytes: 26214400
inboxDirName: inbox
allowedExtensions: []
customizeUserBubble: true # false = 内置用户气泡(可能显示原始路径)
Meaning of the four configuration items: uploadMaxBytes limits the single file size (default is approx. 25 MB); inboxDirName specifies the directory name on disk; allowedExtensions being an empty array means no filtering by file extension; customizeUserBubble controls whether to use a custom user bubble to display the thumbnail.
Modifying the configuration requires restarting dsh web for changes to take effect.
The plugin includes tests, which can be run within the repository:
npm test
Upload ≠ Multimodal Understanding¶
This is a point that must be clearly understood before use: this plugin does not use Harness’s native image attachments. By default, the main model only receives a path marker and does not “see” the image content. To enable the agent to understand images, you have two options:
- Install the optional
image-readerskill included with the plugin and setARK_API_KEYin~/.dsh/.env; - Have built-in visual capabilities, such as vision MCP, vision-related skills, or directly use a multimodal model.
If you only need the agent to read text files, no additional configuration is needed; list_inbox and read_inbox are sufficient.
Difference from dsh-file-upload¶
There is another plugin in the community with a similar positioning, dsh-file-upload. The differences between the two are as follows:
| dsh-inbox-paste | dsh-file-upload | |
|---|---|---|
| Paste | Supported | Not supported |
| Storage Location | {cwd}/inbox/ |
{cwd}/.dsh-uploads/ |
| Built-in PDF Processing | None | Yes |
In short: if you need to paste files and want them to land in a clear inbox directory, choose this plugin; if you need built-in PDF capabilities, consider dsh-file-upload.
Use Cases and Precautions¶
Suitable users: Developers working under the DSH web profile who need to hand screenshots, logs, or text snippets to the agent for processing; especially scenarios where you don’t want to leave the input box and are used to Ctrl+V.
Please note two points before installing:
- The plugin runs with the permissions of the current
dshprocess and can access files that your process can access. Before installing, it is recommended to read the repository source code and license to confirm the behavior meets expectations. - When involving image understanding, plan your visual solution in advance (add
image-readerskill andARK_API_KEY, or bring your own vision tools), otherwise the main model will only receive a path marker.
Additionally, the philosophy of DSH is “everything is a plugin,” and the plugin ecosystem is maintained by the community. The plugin directory mentioned in this article is an independent community site and has no official affiliation with DeepSeek or Fenxiang.
Summary¶
dsh-inbox-paste solves the file entry problem for web sessions with a small but effective approach: paste to upload, send to write to disk, and list_inbox / read_inbox to read. The path convention is clear, text scenarios are out-of-the-box ready, and image scenarios leave the choice to the user.
- Directory Page: https://www.skillhub.cn/plugins/JarszmLovesAI/dsh_upload_file
- GitHub: https://github.com/JarszmLovesAI/dsh_upload_file