dsh-plugin
DayuanJiang/next-ai-draw-iodsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
基于 qBittorrent WebAPI v2 的九个模型侧工具,写操作需显式 confirm,并提供孤儿种子诊断。
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.
dsh plugin --profile web add @wuzhican/dsh-qbittorrent
Restart dsh web if the profile does not compose patches on reload.
The plugin works with no configuration. Every key is optional and can be set
in the patch row's config:
| Key | Default | Meaning |
|---|---|---|
url | http://127.0.0.1:8080 | qBittorrent WebUI origin (QBT_URL env also honoured) |
tokenRef | QBT_API_KEY | Credential name holding the Bearer token (QBT_TOKEN_REF env also honoured) |
timeoutMs | 30000 | Per-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.
Nine tools are registered:
| Tool | Purpose |
|---|---|
qb_status | Version, WebAPI version, per-state torrent counts, transfer stats |
qb_list_torrents | List with filter / category / tag / hashes / sort, capped at 200 items |
qb_torrent_detail | One torrent's properties plus file list |
qb_list_categories | Every category and its save path |
qb_find_orphans | Torrents whose metadata never resolved, whose name is still the bare infohash, or that error / miss files |
qb_resume_torrent | Resume — requires confirm: true |
qb_pause_torrent | Pause — requires confirm: true |
qb_set_category | Move into a category — requires confirm: true |
qb_delete_torrent | Remove — 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.
>=0.2.0-rc.1fetch and AbortSignal.timeout)No runtime dependencies. @deepseek-ai/cordis and @deepseek-ai/dsh-tools are
peer dependencies supplied by the harness.
MIT