dsh-gopeed-downloader
Agent tools for a local Gopeed downloader: create, inspect, pause, resume and remove downloads, diagnose or launch the Gopeed process, and receive download-complete events through a DSH background job that wakes an idle agent. Process diagnostics and launching are Windows-only; the download tools wo
Install
dsh plugin --profile web add dsh-gopeed-downloader
Sandbox test
This plugin has not been tested yet. Submit a test →
README
<p align="center">
<img src="icon.svg" width="88" height="88" alt="dsh-gopeed-downloader">
</p>
<h1 align="center">dsh-gopeed-downloader</h1>
<p align="center">
English | <a href="https://github.com/Keridium/dsh-gopeed-downloader/blob/main/docs/README.zh.md">Chinese</a>
</p>
<p align="center">
<b>7 tools</b> | HTTP, magnet and <code>.torrent</code> URLs | process control <b>Windows-only</b> | needs <b>Gopeed 1.9.3+</b>
</p>
[!IMPORTANT]
Reading this as an agent? Stop and open docs/AGENTS.md instead.
That file is the contract: the seven tools with the result fields DSH validates, the do-not-poll rule
forgopeed_add, the save-location order, an error playbook keyed onverdict, and an explicit do-not
list. This README is the human landing page and deliberately does not repeat it.
If you maintain an agent that uses this plugin, point it at that URL -- not at this file.
Turn a local Gopeed download manager into agent tools inside **DeepSeek Harness
(DSH)**: start downloads, follow them, steer them, diagnose or launch the Gopeed process, and receive
download-complete events -- including a background job that wakes an idle agent.
Any link Gopeed itself accepts works: HTTP/HTTPS direct links, magnet links and **remote .torrent
URLs**. A local .torrent file is not accepted -- there is no upload path, so hand over the URL it came
from instead. BitTorrent detail (peers, DHT, trackers, seeding) stays with Gopeed; the plugin creates the task
and reads its progress, nothing more.
The agent hands a URL to Gopeed over its loopback HTTP endpoint; Gopeed owns the outbound traffic and the
files on disk, so nothing passes through the model or a shell. Gopeed's desktop build listens on a random port
per launch by default, so the plugin reads the live port from the running process (port: 0) unless you pin
one. See [Configuration](#configuration).
What it does
Goal · Tool
Start a download and be told when it ends · gopeed_add -- takes a direct link, a magnet link or a remote .torrent URL, and returns a background job; the completion notice is DSH's own, so a busy agent reads it next step and an idle agent is woken.
Watch progress · gopeed_list, gopeed_status -- one flat task shape (percent, sizeKnown, speed, real save directory).
Steer a download · gopeed_control -- pause / resume / remove through an action enum. remove deletes the files too unless force: false.
Fix the setup · gopeed_process -- one of six verdicts plus pid, memory, version, executable path and webhook status.
Start a stopped Gopeed · gopeed_launch -- the agent-side equivalent of double-clicking the icon.
Hear downloads finish · gopeed_events -- reads the DOWNLOAD_DONE / DOWNLOAD_ERROR pushes Gopeed sent; action: "apply" saves the webhook address into Gopeed's config in auto mode.
What it does not do
- No tool can restart or kill Gopeed. Restarting is the red Restart Gopeed button on the plugin
settings page, a user action, because it interrupts downloads in flight. gopeed_launch only starts an
absent process and has no parameters.
- Process control is Windows-only.
gopeed_process,gopeed_launch, the restart button and executable
auto-discovery all call Windows tools. The download tools work wherever Gopeed runs.
- The webhook listener binds
127.0.0.1only. A Gopeed in Docker or on another machine cannot push to it
without extra networking; poll gopeed_list / gopeed_status instead.
- The plugin never writes into the conversation. No user-role messages, no forged follow-ups; guidance
rides inside a tool's own result.
Requirements
- DSH, running, with a profile that can install bundles (the
plugin_managertool, or the Web
Plugins page).
- Gopeed 1.9.3 or newer, reachable on
host:port. Verified against 1.9.3. - No Node.js, npm or pnpm is needed to run this plugin. It is a Cordis plugin inside the DSH host process
and never shells out to a package manager.
- Windows PowerShell 5.1 is enough -- the process helpers only use
tasklist,taskkill,
powershell.exe, netstat and netsh.
Installation
dsh-gopeed-downloader is on npm. In any DSH session, tell the agent:
Install the dsh-gopeed-downloader bundle from npm.
That is plugin_manager with action: "install_bundle" and target: "dsh-gopeed-downloader". DSH installs it
with its own package manager and enables the bundle; restart DSH when it asks.
Nothing needs to be installed on your machine first -- no Node.js, no npm, no pnpm. The profile carries its
own package manager; this plugin only needs DSH and Gopeed. If you would rather use a shell,
dsh plugin --profile web add dsh-gopeed-downloader is the equivalent.
From Git instead -- for a development build, or to pin a commit:
Install thedsh-gopeed-downloaderbundle fromgithub:Keridium/dsh-gopeed-downloader.
Both forms accept a version pin: dsh-gopeed-downloader@0.3.2, or
github:Keridium/dsh-gopeed-downloader#v0.3.2.
Uninstall with action: "remove_bundle", target: "dsh-gopeed-downloader". The Web UI equivalent is
Plugins -> Installed.
Then open Plugins -> Installed -> Gopeed Downloader -> row gopeed -> Configure and, if Gopeed uses a
token or a fixed port, enter them there. A first run looks like this:
gopeed_add { "url": "https://example.com/file.iso" }
# -> taskId, path, jobId; stop here -- the completion notice arrives on its own
<details>
<summary>Accepted <code>target</code> forms (read from the DSH plugin manager)</summary>
target · Accepted · Notes
dsh-gopeed-downloader · yes · An npm package name, resolved from the
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::3,最后更新 2026-11-01