Foreword

When running agents with the DeepSeek Harness (DSH) Web interface, starting from version 0.1.1-rc.2+, the official adapter supports the DeepSeek Files API. Images are uploaded via the Files API and file_id is reused. These files remain on the DeepSeek cloud and expire after 7 days by default.

To check exactly which files are in the account or clean up unused ones, you previously had to manually call the https://api.deepseek.com/files interface or write temporary scripts. deepseek-files-panel brings these operations into the DSH Web interface: a collapsible panel on the right that lists, copies, and cleans up files uploaded via the Files API, with the key never leaving the host process.

What is it

deepseek-files-panel is a DSH Web plugin maintained by iskshadow195563 and licensed under MIT. One-sentence positioning: it provides a collapsible sidebar on the right for the DSH Web interface to list, copy, and clean up images uploaded via the DeepSeek Files API, with zero exposure of the key.

It is a standard DSH bundle package (declared in package.json as dsh.bundle.patch) and can be installed directly using the official plugin command. DSH’s philosophy is “everything is a plugin”; such packages load with the profile and take effect with dsh web.

Note its scope of management: it only manages files uploaded via the Files API (images generated when uploading via Files API). Plain text conversations and content not processed via the Files API are not included.

Core Features

  • List all uploaded files: Filename (DSH auto-names dsh-<content_hash>.<ext>), file_id, size, creation time, expiration time (default 7 days, managed by DeepSeek; the panel displays remaining validity when expired)
  • One-click refresh: Synchronize with the DeepSeek cloud at any time
  • Copy file_id: Convenient for referencing in requests or scripts
  • Delete file: Red button with secondary confirmation; real deletion only happens if clicked again within 3.5 seconds to prevent accidental deletion
  • Theme adaptation: Follows DSH page theme variables (--dsw-*), supports both dark and light skins
  • No key leakage: The plugin itself contains no keys; keys are parsed by the DSH credential service on the host side

Keys and How it Works

“No key leakage” is the most noteworthy feature of its design. The call chain is as follows: the browser page only accesses local dsh web routes; the host side parses DEEPSEEK_API_KEY through DSH’s credential service and then requests https://api.deepseek.com/files to complete listing and deletion.

In other words, the API Key only exists within the host process; between the page and the DeepSeek API, it only passes through local same-origin routes, and the key never enters the browser. Combined with the secondary confirmation for deletion, the risk of accidentally deleting cloud files is also mitigated.

Installation and Activation

First, confirm two prerequisites:

  • DeepSeek Harness dsh >= 0.1.0-rc.6 (recommended 0.1.1-rc.2+ (version with official adapter support for Files API));
  • DEEPSEEK_API_KEY configured in DSH credentials for calling https://api.deepseek.com/files.
dsh plugin --profile web add github:iskshadow195563/DeepSeek_Harness_Files_Panel#v1.1.0

--profile is required; change it to the actual profile name you use, web is the default Web interface profile. After installation, the plugin joins the Profile’s bundle layer and takes effect after restarting dsh web.

Method 2: Manual Installation

Place dsf-files-panel.mjs into the Web Profile directory $DSH_HOME/profiles/web/ (Windows default %USERPROFILE%\.dsh\profiles\web\):

# macOS / Linux (default $DSH_HOME is ~/.dsh when not set)
cp dsf-files-panel.mjs "${DSH_HOME:-$HOME/.dsh}/profiles/web/"

# Windows PowerShell
Copy-Item dsf-files-panel.mjs "$env:USERPROFILE\.dsh\profiles\web\"

Then edit cordis.patch.yml in the same directory, merging the insert patch:

- insert:
    - id: deepseek-files-panel
      name: ./dsf-files-panel.mjs?v=1

If the file is [] or does not exist, paste the whole block above; if there are other insert items, append the - id: deepseek-files-panel line. ?v=1 is used to break ESM cache; increment the number when upgrading the plugin.

Manual installation patches take effect immediately upon saving; if it doesn’t work within 5 seconds, restart dsh web.

Verification

Refresh the browser page (F5), and a “📁 DeepSeek Files” handle will appear in the middle of the right side, indicating the plugin has loaded.

Uninstallation

For package installation, one command:

dsh plugin --profile web remove deepseek-files-panel

For manual installation, delete dsf-files-panel.mjs in the profile directory and remove the corresponding entry from the insert list in cordis.patch.yml, then refresh the page.

Regardless of the method, uninstalling the plugin will not delete files already uploaded to the DeepSeek cloud. To clean up, please delete them in the panel or call DELETE https://api.deepseek.com/files/{file_id}.

Typical Usage

The following operations are completed on the DSH Web page, with the default local address looking like http://127.0.0.1:3080:

  1. Expand/Collapse: Click the right-side handle “📁 DeepSeek Files” to expand the panel; click the “▶” in the top right of the panel to collapse.
  2. Refresh: Click the “↻” button in the title bar to pull the cloud list again.
  3. Copy ID: Click the “Copy ID” button on a file, which copies a file_id like file-api-..., which can be pasted directly into requests or scripts.
  4. Delete: Click “Delete”, the button turns red to “Confirm Delete?”, real deletion from the cloud only happens if clicked again within 3.5 seconds.
  5. Quick Open: Add ?dsf-open=1 to the browser address bar, e.g., http://127.0.0.1:3080/?dsf-open=1, the panel automatically expands after the page loads.

Use Cases and Notes

Suitable for users who frequently upload images via the DSH Web interface, need to reuse file_id in subsequent requests, or want to periodically clean up cloud files. Content not processed via the Files API will not appear in the panel; this is not a bug, just a boundary.

A few reminders:

  • Uploaded files expire after 7 days by default; expiration is managed by DeepSeek, and the panel displays remaining validity when expired.
  • If the right-side handle doesn’t appear, first confirm the .mjs file is in the profile directory, the patch line has been merged, and restart dsh web then refresh the page with F5.
  • If the list reports “DEEPSEEK_API_KEY not configured”, configure this credential in DSH Settings/Models.

Finally, a general reminder: the plugin runs with the current dsh process permissions. Before installing any third-party plugins, it is recommended to read the source code and check the license. This plugin is MIT; the LICENSE is attached in the repository.

Conclusion

deepseek-files-panel solves a specific small problem: files uploaded via the Files API are scattered across the cloud; the panel gathers them into the DSH Web interface, allowing listing, copying, and deleting locally without the key leaving the host process. If you are using DSH 0.1.1-rc.2+ and uploading images via the Web interface, it is worth a try.

  • GitHub Repository: https://github.com/iskshadow195563/DeepSeek_Harness_Files_Panel
  • Community Plugin Directory: https://www.skillhub.cn/plugins/iskshadow195563/DeepSeek_Harness_Files_Panel

The directory page comes from a community-maintained independent site and has no official affiliation with DeepSeek or Huaan.