Introduction¶
When a DSH agent needs to obtain a file, the common approach is for the model to stream bytes within the process itself: reading while thinking. For larger files, this consumes context and reasoning quotas, is slow, and prone to timeout interruptions. Below is an introduction to the plugin dsh-rayburst, maintained by cat-Logan. It does not change how DSH operates; it simply offloads the step of “converting a URL to a local file” entirely to the Rayburst (aria2-next kernel) download engine. It relies on resume downloads and multi-threading to transfer the bytes, then returns the results (status, byte count, path, sha256) to the agent.
What is it¶
dsh-rayburst is a plugin for DeepSeek Harness, maintained by cat-Logan, categorized under “Network Tools” in the community directory. It solves a single problem: letting DSH handle downloads via an external engine instead of having the model read bytes directly. The plugin source code is on GitHub (cat-Logan/dsh-rayburst), licensed under MIT.
Core Features¶
After installation, three new tools are added:
| Tool | Function |
|---|---|
rayburst_download |
Gives the URL to the Rayburst engine, saves to disk via dir / out / moveTo, and returns status, byte count, path, and sha256 after completion (or reaching the waitSeconds limit). |
rayburst_wait |
Continues waiting for an existing gid, can be called repeatedly. |
rayburst_status |
Lists active/recently finished tasks, or queries a single one by gid. |
Their division of labor is: initiation, continued waiting, and querying. Resume downloads and multi-threading come from the Rayburst engine itself; the plugin is responsible for translating requests into calls the engine understands and then retrieving the results.
How it connects to Rayburst¶
According to the README, no configuration is needed by default:
- The RPC address defaults to
http://127.0.0.1:29000/jsonrpc; - The key is read from Rayburst’s own
aria2.confat call time (rpc-secret, while also readingrpc-listen-port), so changing the key or port in Rayburst settings does not require restarting DSH; - To override, set environment variables:
DSH_RAYBURST_RPC,DSH_RAYBURST_SECRET,DSH_RAYBURST_CONF.
Configuration file search path (from original README):
%LOCALAPPDATA%\dev.aninsomniacy.rayburst\engine\aria2.conf
%APPDATA%\dev.aninsomniacy.rayburst\engine\aria2.conf
~/.config/rayburst/aria2.conf
When Rayburst is not running, the tool will explicitly state “Cannot connect to Rayburst (…)” instead of failing silently. This is important for debugging: if it cannot connect, it reports an error directly so there is no need to guess why the download isn’t moving.
Installation and Usage¶
Installation command from the original README, using the local directory method:
dsh plugin --profile web add <local_directory>
You can also install via local directory in the plugin management interface. Restart DSH after installation.
To uninstall:
dsh plugin --profile web remove dsh-rayburst
According to the README, this plugin only registers tools; it does not write sessions or modify the DSH core itself.
Typical Usage¶
The core flow brought by the plugin is: initiate download → return within the wait budget → continue waiting if not finished. Below are the dependent tool calls, with parameters taken from the disk and wait fields listed in the README.
First, initiate a download, specifying the save directory and filename:
- Call
rayburst_download, passing the target URL,dirto specify the directory,outto specify the filename, andwaitSecondsfor the wait budget. - If the download completes within the budget, the return value includes status, byte count, path, and sha256.
- If it is not finished within the budget, it returns
status: active, and records the returned gid.
Next, continue waiting and querying:
- Use the gid to call
rayburst_waitto continue waiting; this step can be called repeatedly. - To see the overall situation, call
rayburst_status: without parameters lists active/recently finished tasks; with a gid queries a single one.
The scenario for large files is exactly this path: wait once within the budget, continue waiting if not done, and no tasks will be lost.
Self-Test¶
The plugin comes with a self-test script, executed in the plugin directory:
node verify/verify-host.mjs
According to the README, it performs 10 assertions: host tool contract (pure object definition, JSON Schema parameters, output.render), parameter guards, error reporting when the engine is unreachable, and (when Rayburst is running) one real download + sha256 verification. Running this after modifying the plugin covers most contract issues.
Applicable Scenarios and Notes¶
Suitable for: people who need to batch pull large files like model weights, datasets, and BT seeds in DSH, require resume and multi-threading, and do not want the model to read bytes itself.
A few boundary points, clarified in the README:
- Only responsible for “downloading”; does not take over
web_fetchfor HTML scraping, as that is HTTP semantics, not file transfer; - Intranet or downloads requiring login state: The Rayburst engine itself does not carry cookies; use
web_fetchor manually export links if necessary; - If a large file is not finished within the wait budget, it returns
status: active; callingrayburst_waitafterwards will not lose the task.
Additionally, note that the plugin runs with the permissions of the current DSH process. It can write to any directory it has permission to read. It is recommended to review the source code and the MIT license before installing to confirm you accept these trust boundaries.
Conclusion¶
The value of dsh-rayburst lies in taking the download task completely out of DSH’s execution path. Relying on Rayburst’s resume and multi-threading, it secures predictable wait times and verifiable results. The directory page is https://www.skillhub.cn/plugins/cat-Logan/dsh-rayburst, and the source code is at https://github.com/cat-Logan/dsh-rayburst.