Introduction

The design philosophy of DSH (DeepSeek Harness) is “everything is a plugin.” However, in the native implementation of the DSH Desktop client, file upload capabilities are limited to images. When an Agent needs to read documents (such as docx, xlsx, pdf), the official Files API only supports image formats such as JPEG/PNG and cannot directly send non-image files. dsh-periscope fills this capability gap by directly modifying core DSH files. It supports dragging or pasting any file type and allows the Agent to process these files by reading them via their paths.

What It Is

dsh-periscope is a plugin that provides generic file attachment capabilities for DSH Desktop. It modifies the core app.asar file to extend file type validation and storage logic. The project is maintained by lmh-2026 and is licensed under the MIT License.

Core Features

  1. Generic file attachments: Supports dragging or pasting files of any type (including docx, xlsx, pdf, txt, zip, etc.), no longer limited to images.
  2. File type icons: Attachment cards display colored type squares based on file extensions for quick recognition.
  3. Persistent storage: Files are saved to the local path ~/.dsh/attachments/v1/files/, and the conversation history retains attachment blocks with full absolute paths.
  4. Core patching: Extends the file upload logic by injecting patch files into the DSH core package.

Installation and Activation

This plugin is only compatible with the DSH Desktop client on Windows and requires a Node.js 22+ environment.

  1. Completely exit DSH Desktop.
  2. Navigate to the plugin repository directory and run the following commands to bypass PowerShell execution policy restrictions and execute the installation script:
Set-ExecutionPolicy -Scope Process Bypass -Force
.\install.ps1

Alternatively, install it globally via npm and then run the installer:

npm install dsh-periscope
npx dsh-periscope-install

The installation script automatically backs up app.asar, repackages it in place, and verifies the installation result. After installation, restart DSH to activate the changes.

Typical Usage

After installation, in the DSH Desktop chat window:

  1. Drag or paste any file (such as .docx or .pdf) directly into the input box.
  2. The system generates an attachment card with a type icon.
  3. After sending the message, the Agent reads the file via its path and performs follow-up processing based on its contents.

Applicable Scenarios and Notes

  • Platform limitation: Supports only the Windows + DSH Desktop client form factor; Web, CLI, or source-code forms are not supported.
  • Permission requirement: The installation script requires manually exiting the DSH Desktop process.
  • Upgrade maintenance: Each DSH upgrade repackages app.asar, causing the plugin to stop working. After each upgrade, the installation script must be rerun.
  • Unofficial behavior: The plugin is implemented by directly modifying core files and is therefore unofficial. Please assess the risks yourself.

Conclusion

dsh-periscope addresses the weakness in document processing for DSH Desktop. By using path-based access, it enables the Agent to handle local files like Codex. For users who need to develop or test Agents in local environments, this is an essential tool. For more details and source code, visit the project page or GitHub repository.