Preface

DeepSeek Harness (DSH) Web is a developer tool for building agents. In a Web environment, directly handling the upload, preview, and download of non-image files and agent-generated files usually requires extra configuration or bypassing official mechanisms. The dsh-filetransfer plugin provides a native experience for draft file management and local deliverable download, offloading file interaction logic to the local service.

Plugin Introduction

  • Name: dsh-filetransfer
  • Maintainer: kerlyken
  • Core value: Local file draft confirmation, file card rendering, and localhost-loopback-only deliverable download in DeepSeek Harness Web.

Core Features

  • Draft file management: Supports drag-and-drop or selecting non-image files, and previewing them as draft cards before sending.
  • Flexible sending: Files can be sent as standalone messages or combined with normal user text.
  • File rendering: Supports rendering Word, Excel, and generic files as distinct transcript cards.
  • Safe deletion: Removes draft files through the close button without exposing hidden reference placeholders.
  • Deliverable download: Downloads agent-generated files through a localhost-loopback-only deliverables panel.
  • Upload mechanism: Uploads occur only during the local stage and do not call session.prompt. Files are passed to the agent only after the user presses the normal DSH send button.

Installation and Activation

Ensure your Node.js version is 22.19 or newer. Version 0.2.5 targets DSH 0.1.0-rc.7. Run the following commands in the DSH workspace directory:

npx @deepseek-ai/dsh plugin --profile web add github:kerlyken/dsh-filetransfer
npx @deepseek-ai/dsh --profile web --dump-config
npx @deepseek-ai/dsh web

Note: Do not install @deepseek-ai/dsh-cordis-host-runner; DSH Web already includes a Host runner.

Typical Usage

Configuration Paths

The plugin uses the following configuration by default and can be overridden on the filetransfer line in cordis.patch.yml:

  • Host endpoint: http://127.0.0.1:3199
  • Inbox: <workspace>/bridge/inbox
  • Deliverables: <workspace>/deliverables
  • Allowed origins: http://127.0.0.1:3080 and http://localhost:3080

File Markers

Use XML tags in user text blocks to reference files:

<dsh-file path="bridge/inbox/example.docx"></dsh-file>

Applicable Scenarios and Notes

  • Applicable scenarios: Web development scenarios that require handling document files (Word/Excel) or obtaining local deliverables from the agent side.
  • Security and permissions: The upload/download server binds to 127.0.0.1, checks origins, sanitizes file names, enforces path constraints, and limits upload size. Do not expose port 3199 without authentication and a separate threat model.
  • Integration notes: The integrations/ directory contains optional dependency modules such as WeCom. This directory is excluded from the npm package but is tested in CI. The core plugin has no dependency on third-party messaging platforms.

Summary

dsh-filetransfer provides a complete local file processing solution, filling the gap in DSH Web for non-image file interaction. Through draft cards and localhost-loopback mechanisms, it simplifies the interaction workflow between agents and the local file system.