Introduction

In DSH (DeepSeek Harness) conversations, common requirements involve passing external files to the model or adding selected text as context to messages. dsh-utility-tools provides a DSH conversation utility plugin: drag and drop any file into the conversation area, and generate a quote block at the beginning of the message after selecting text.

What is this

dsh-utility-tools is a DSH conversation utility plugin maintained by sharkymew, licensed under MIT.

It solves two input-side problems:

  • Drag and drop any file into the conversation area and view the filename, size, and remove them one by one before sending.
  • After selecting text, add the selected content to the message to be sent in the form of a quote block.

The plugin supports two import methods: static mounting (one-line command installation) and dynamic loading (via cordis_define, zero dependencies). The static version uploads attachment bytes via the HTTP route /dsh-utility-tools/save.

Core Features

Drag and Drop File Attachments

After dragging a file into the conversation area, the file enters the attachment list. Before sending, you can view the filename and size, and remove them one by one.

When sending a message, attachments are submitted along with the message:

  • In an Electron environment, the original path is referenced directly.
  • Regular browsers temporarily store files in the system temporary directory.

Select Text Quoting

After selecting text in the conversation, a quote bar appears above the input box. When sending, the quoted content is placed at the beginning of the message in a > Quote: block.

Import Methods

Static mounting is suitable for one-line command installation, with the target profile being web.

Dynamic loading uses cordis_define to create and run the plugin, with zero dependencies.

Installation and Activation

Static Mounting

First, install it to the web profile:

dsh plugin --profile web add dsh-utility-tools

Restart dsh web for the changes to take effect after installation.

Dynamic Loading

First, clone the repository:

git clone https://github.com/sharkymew/dsh-utility-tools

Then, use the full text of dynamic/host.body.js and dynamic/client.body.js with cordis_define to create the plugin, and execute cordis_run to run it. The dynamic plugin is loaded within the process; unloading results in cleanup; during runtime, a runtime request needs to be approved in the UI.

Typical Usage

  1. Restart after static installation. Execute the installation command:
dsh plugin --profile web add dsh-utility-tools

Then restart dsh web.

  1. Drag in a file. Drag any file into the conversation area. Before sending, expand the attachment capsule management menu to view the filename and size, and remove unwanted files. When sending, attachments are submitted along with the message.

  2. Quote text. Select the text to be quoted in the conversation and click the quote menu above the selection. When sending, the quote block will be placed at the beginning of the message.

  3. Dynamic loading. Clone the repository and use the full text of dynamic/host.body.js and dynamic/client.body.js with cordis_define to create the plugin, then execute cordis_run to run it.

Use Cases and Notes

Suitable for attaching files and quoting context in DSH web profile conversations, or referencing the original file path in an Electron environment.

Notes before use:

  • Regular browsers cannot access the real disk path of dragged files; they can only reference by name or store them temporarily in the system temporary directory; the Electron environment can reference the original path directly.
  • Single file limit is 8MB; exceeding this only shows a warning and does not store the file.
  • The temporary storage directory may be cleared after the system restarts.
  • Plain text quote limit is 2000 characters.
  • The static version’s HTTP route /dsh-utility-tools/save only listens on the loopback address and only writes to the system temporary directory.
  • The dynamic plugin is loaded within the process; unloading results in cleanup, and a runtime request needs to be approved in the UI.
  • The plugin runs with the permissions of the current dsh process. It is recommended to check the source code, license, and source repository before installation.

Conclusion

dsh-utility-tools integrates file dragging and text quoting into the DSH conversation input flow, making it suitable for temporarily supplementing file attachments or context references in conversations.

Directory Page: https://www.skillhub.cn/plugins/sharkymew/dsh-utility-tools

GitHub: https://github.com/sharkymew/dsh-utility-tools