Zum Hauptinhalt springen
W

dsh-qbittorrent

wuzhican/dsh-qbittorrent

Nine model-facing tools over the qBittorrent WebAPI v2, with confirm-gated mutations and an orphan-torrent diagnostic.

Installation

dsh plugin --profile web add github:wuzhican/dsh-qbittorrent

README

dsh-qbittorrent

English | 中文

A DeepSeek Harness (DSH) plugin that registers qBittorrent's WebAPI v2 as model-facing tools: list and inspect torrents, triage stuck downloads, and apply a small set of guarded mutations. No browser window, no MCP subprocess — the tools are registered natively through @deepseek-ai/dsh-tools.

Install

dsh plugin --profile web add @wuzhican/dsh-qbittorrent

Restart dsh web if the profile does not compose patches on reload.

Configuration

The plugin works with no configuration. Every key is optional and can be set in the patch row's config:

KeyDefaultMeaning
urlhttp://127.0.0.1:8080qBittorrent WebUI origin (QBT_URL env also honoured)
tokenRefQBT_API_KEYCredential name holding the Bearer token (QBT_TOKEN_REF env also honoured)
timeoutMs30000Per-request deadline
- insert:
    - id: qbittorrent
      name: '@wuzhican/dsh-qbittorrent'
      config:
        url: http://192.168.1.10:8080
        tokenRef: QBT_API_KEY

The token is never stored in a patch file. It is resolved through the DSH credential service by name, falling back to process.env. qBittorrent v5.2.x accepts only Authorization: Bearer <token> here; X-API-Key, api-key and query-parameter forms all return 403.

Tools

Nine tools are registered:

ToolPurpose
qb_statusVersion, WebAPI version, per-state torrent counts, transfer stats
qb_list_torrentsList with filter / category / tag / hashes / sort, capped at 200 items
qb_torrent_detailOne torrent's properties plus file list
qb_list_categoriesEvery category and its save path
qb_find_orphansTorrents whose metadata never resolved, whose name is still the bare infohash, or that error / miss files
qb_resume_torrentResume — requires confirm: true
qb_pause_torrentPause — requires confirm: true
qb_set_categoryMove into a category — requires confirm: true
qb_delete_torrentRemove — requires confirm: true plus expect matching the hash count; max 20 per call; deleteFiles: true also erases data on disk

Write calls refuse to run without confirm: true. An API failure returns as a tool result rather than an exception, so one bad call does not end the turn.

A GitHub Release carries a version-free dsh-qbittorrent.tgz built by CI, for prebuilt installs.

Requirements

  • DSH >=0.2.0-rc.1
  • Node >= 18 (global fetch and AbortSignal.timeout)
  • qBittorrent WebAPI v2 with an API token

No runtime dependencies. @deepseek-ai/cordis and @deepseek-ai/dsh-tools are peer dependencies supplied by the harness.

License

MIT

Ähnliche Plugins