Introduction

When developing or debugging with DeepSeek Harness (DSH) Web composer, directly referencing workspace file paths is a common requirement. Manually entering relative paths is error-prone, and the default paste function usually only supports images. The following introduces the dsh-file-mention plugin, which solves this pain point through an @ trigger and provides secure session-level file references, Git-aware indexing, and drag-and-drop/paste file upload.

Plugin Positioning

This is a client-side plugin for DSH Web composer, maintained by tipoLi5890. It does not directly inject file contents; instead, it generates lightweight path reference markers (<workspace-reference>) before the Agent step, which are then validated and marked by the Host.

Core Features

  • File and folder indexing: Enter @ to open the workspace list, with filtering by basename or path.
  • Git-aware and controllable indexing: Supports Git-tracked and untracked files, with index content controlled by .aiinclude rules.
  • Fast input and keyboard operation: Single session index request, with arrow keys + Tab/Enter selection.
  • Non-image file upload: Supports dragging or pasting non-image files, automatically manages uploads, and inserts the path.
  • Path reference management: Includes a reference tray and settings center to manage inserted references and upload history.

Installation and Enablement

Before installation, ensure that you are using a compatible DSH Web profile.

dsh plugin --profile web add github:tipoLi5890/dsh-file-mention

After installation, restart DSH Web.

Typical Usage

  • @: Opens the workspace file/folder list.
  • @readme: Matches file names (e.g., README.md).
  • @src/ma: Searches full relative paths.
  • Pick src/main.js: Inserts @src/main.js.
  • Pick docs/file with spaces.md: Inserts @"docs/file with spaces.md" (paths with spaces require quotes).
  • Pick docs/: Inserts @docs/.
  • Arrow keys + Tab: Accepts the highlighted candidate file.

Upload Mechanism

For non-image files, the plugin takes over the upload process. After dragging or pasting a file, the file is copied to the hosted upload directory, and the path is inserted at the cursor position. The upload process supports progress display and cancellation, and is subject to quota limits (50 MiB per file, 250 MiB per session, 2 GiB globally).

Limitations and Notes

  • The index entry limit is 20,000 entries.
  • For non-Git workspaces, the traversal depth limit is 32 levels.
  • Non-image files are retained for 7 days after upload (configurable).
  • Git repositories follow .gitignore, while non-Git mode skips hidden files, symbolic links, caches, and similar items.

Summary

This plugin integrates without a build step and provides a complete file reference and upload experience. It is suitable for developers who frequently need to reference local code or documentation in Agent steps.
Source code and detailed documentation are available at: GitHub.