Introduction

When executing tasks in DSH web, download progress may be scattered across URL downloads, shell commands, SSH transfers, and workspace file growth. Developers usually only rely on terminal logs, tool outputs, or manual inspection of target files, making it difficult to determine how much is remaining or if a task is stalled.

DSH extends web capabilities through plugins. dsh-download-progress is one such DSH web plugin. It consolidates URL downloads, agent shell/SSH transfers, and workspace black-box downloads into the same bottom-right panel, displaying bytes, speed, percentage, and estimated remaining time in real-time.

What is it

dsh-download-progress is a DSH web plugin. The repository address is:

https://github.com/Fro2en12/dsh-download-progress

It mainly solves three categories of problems:

  1. Lack of centralized progress display when initiating downloads from URLs.
  2. Progress is mixed in with tool output when the agent triggers downloads via pwsh/bash or SSH tools.
  3. Lack of a fallback observation entry when download files appear in the workspace that cannot be clearly parsed as targets.

The project is open source under the MIT license. The project states it is an AI product: functional design, architectural choices, code writing, testing, and documentation were all iterated and completed by AI in the conversation, with human involvement limited to providing requirements and acceptance feedback.

Core Features

The following introduces features based on task source.

Panel URL Downloads and Model Tools

The plugin provides two model tools: download_url and download_status.

  • download_url: Allows the agent to download URLs in the background, displaying percentage, speed, and ETA.
  • download_status: Queries the real-time progress of tasks.

Users can also directly input a URL in the panel to initiate a download.

Shell Command Transfer Tracking

The plugin parses common download commands from pwsh/bash tool commands:

curl -o
Invoke-WebRequest -OutFile
wget -O

Upon successful parsing, it extracts the target path and URL, and displays the progress in the panel.

For commands that cannot parse the target file, such as wsl, apt, pip, npm, git clone, docker pull, etc., they are also displayed as install/download tasks, at least showing the elapsed time.

SSH Transfer Tracking

The plugin automatically tracks ssh_download and ssh_upload transfer progress and maintains backward compatibility.

Note: The official DSH 0.1.1 package no longer contains the SSH tool; ssh_download/ssh_upload tracking only takes effect when third-party/legacy tools exist.

Workspace Black-box Monitoring

The plugin scans all workspace top-level items in workspaceRegistry every 1.5s, capturing black-box downloads of files growing by ≥64 KB or new directories.

Panel Interaction

The capsule button in the bottom right and the panel are draggable, and can be reset with one click. Active tasks show real-time percentage, speed, and elapsed time.

Installation and Activation

Method 1: Plugin Marketplace

Open the plugin marketplace in the GUI, search for:

dsh-download-progress

Then install with one click.

Method 2: dsh plugin add

Run:

dsh plugin --profile web add https://github.com/Fro2en12/dsh-download-progress

Method 3: Manual Mounting

First clone the repository:

git clone https://github.com/Fro2en12/dsh-download-progress

Then append the insert configuration to plugins in profiles/web/cordis.patch.yml.

After completing any of the above steps, restart dsh web. If a download capsule button appears in the bottom right, the installation is successful.

Typical Usage

Manual Download

Click the capsule to expand the panel, paste the http(s) link, and optionally fill in the save path.

The save path can be an absolute path or a path relative to the workspace root directory. Press Enter or click “Download” to complete.

Automatic Tracking

No additional configuration is needed. The following tasks will automatically appear in the list:

  • agent’s ssh_download/ssh_upload
  • curl, Invoke-WebRequest, wget inside pwsh/bash
  • Any growing files in the workspace

Cancellation and Cleanup

  • URL downloads initiated by the panel can be cancelled in the panel or automatically cancelled by tool call signals.
  • For SSH/shell transfers, please interrupt the corresponding tool call.
  • You can remove a single record or clear all completed/failed records.

Environment and Dependencies

The plugin requires:

node >=20

And declares the following peerDependencies:

@deepseek-ai/cordis ^4.0.1
@deepseek-ai/dsh-host-webserver ^0.1.1-rc.2
@deepseek-ai/dsh-tools ^0.1.1-rc.2
@deepseek-ai/schemastery ^3.18.0

Configuration is validated by the embedded Schemastery Config in the plugin, and illegal values will fail loudly during the loading phase.

Applicable Scenarios and Notes

Suitable for developers and AI agent users who frequently execute URL downloads, package manager installations, or SSH transfers in DSH web, or need to observe workspace file growth.

Notes before use:

  1. The plugin runs with the permissions of the current dsh process; check the source code and license before installing.
  2. This project is an AI product. While it has been verified on real devices during development, edge cases cannot be exhausted. Please review and test it yourself before using it in production.
  3. The download engine relies on curl; the target directory must already exist.
  4. Servers without Content-Length (chunked transfer) only show bytes/speed, no percentage.
  5. If variable paths in commands cannot be parsed, the black-box monitoring acts as a fallback and does not provide a percentage.
  6. Upload tasks cannot observe remote write amounts, only showing indeterminate progress.
  7. Black-box monitoring only scans the workspace top-level and newly created directories, and counts a maximum of 500 files per directory. Downloads nested in existing deep directories may not be captured.

Closing

The value of dsh-download-progress is to centralize scattered download states in DSH web into one draggable panel, allowing URL downloads, shell/SSH transfers, and workspace file growth to be viewed directly.

GitHub:

https://github.com/Fro2en12/dsh-download-progress

Directory page:

https://www.skillhub.cn/plugins/Fro2en12/dsh-download-progress