DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
M

@ljwei-stak/dsh-model-router

Model Router

适用于官方 DeepSeek Harness Desktop 的模型路由器:支持成本感知的任务路由、依赖工作包,以及官方供应商 CLI 的发现、安装和执行。GAL 可通过 @ljwei-stak/dsh-galgame 单独获取。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Alice-Marx/dsh-model-router#6bafde17dd59304deac17cc41ede4c1655eecd66
README兼容性版本

兼容性与来源证明

Model Router 以 @ljwei-stak/dsh-model-router 发布,当前版本为 0.51.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/11/4

版本

0.51.0stable
2026/11/4
0.49.0stable
2026/11/4
0.33.0stable
2026/11/4
查看其余 89 个版本收起版本
0.32.1stable
2026/11/4
0.32.0stable
2026/11/4
0.31.1stable
2026/11/4
0.31.0stable
2026/11/4
0.30.11stable
2026/11/4
0.30.10stable
2026/11/4
0.30.9stable
2026/11/4
0.30.8stable
2026/11/4
0.30.7stable
2026/11/4
0.30.6stable
2026/11/4
0.30.5stable
2026/11/4
0.30.4stable
2026/11/4
0.30.3stable
2026/11/4
0.30.2stable
2026/11/4
0.30.1stable
2026/11/4
0.30.0stable
2026/11/4
0.29.3stable
2026/11/4
0.29.2stable
2026/11/4

相关插件

正在加载相关插件…

最新版
0.51.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 717
周下载
1,094
最近提交
2026/11/4
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.29.1stable
2026/11/4
0.29.0stable
2026/11/4
0.28.4stable
2026/11/4
0.28.3stable
2026/11/4
0.28.2stable
2026/11/4
0.28.1stable
2026/11/4
0.28.0stable
2026/11/4
0.27.1stable
2026/11/4
0.27.0stable
2026/11/4
0.26.12stable
2026/11/4
0.26.11stable
2026/11/4
0.26.10stable
2026/11/4
0.26.9stable
2026/11/4
0.26.8stable
2026/11/4
0.26.7stable
2026/11/4
0.26.6stable
2026/11/4
0.26.5stable
2026/11/4
0.26.4stable
2026/11/4
0.26.3stable
2026/11/4
0.26.2stable
2026/11/4
0.26.1stable
2026/11/4
0.26.0stable
2026/11/4
0.26.0-preview.10prerelease
2026/11/4
0.26.0-preview.9prerelease
2026/11/4
0.26.0-preview.8prerelease
2026/11/4
0.26.0-preview.7prerelease
2026/11/3
0.26.0-preview.6prerelease
2026/11/3
0.26.0-preview.5prerelease
2026/11/3
0.26.0-preview.4prerelease
2026/11/3
0.26.0-preview.3prerelease
2026/11/3
0.26.0-preview.2prerelease
2026/11/2
0.26.0-preview.1prerelease
2026/11/2
0.26.0-preview.0prerelease
2026/11/1
0.25.5stable
2026/10/26
0.25.4stable
2026/10/26
0.25.3stable
2026/10/26
0.25.2stable
2026/10/25
0.25.1stable
2026/10/24
0.25.0stable
2026/10/24
0.24.0stable
2026/10/23
0.23.1stable
2026/10/23
0.23.0stable
2026/10/23
0.22.2stable
2026/10/20
0.22.1stable
2026/10/19
0.22.0stable
2026/10/19
0.21.1stable
2026/10/18
0.21.0stable
2026/10/18
0.20.2stable
2026/10/17
0.20.1stable
2026/10/15
0.20.0stable
2026/10/15
0.19.0stable
2026/10/12
0.18.2stable
2026/10/12
0.18.1stable
2026/10/12
0.18.0stable
2026/10/11
0.17.1stable
2026/10/11
0.17.0stable
2026/10/11
0.16.4stable
2026/10/9
0.16.3stable
2026/10/9
0.16.2stable
2026/10/9
0.16.1stable
2026/10/8
0.16.0stable
2026/10/4
0.15.0stable
2026/10/3
0.14.0stable
2026/10/3
0.14.0-beta.4beta
2026/10/3
0.14.0-beta.3beta
2026/10/3
0.14.0-beta.2beta
2026/10/3
0.14.0-beta.1beta
2026/10/3
0.13.3stable
2026/10/2
0.13.2stable
2026/10/2
0.13.1stable
2026/10/2
0.13.0stable
2026/10/2

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundle扩展推理的实验性机器翻译Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Our Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — 在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型,桌面端另有 EAC 协付渠道;2.0 起接入 LobsterAI、Qoder、TRAE、Cline、Loomy、Raccoon、MiniMax、ZCode、Gemini 十个账号渠道(原有匿名免费通道保留)(登录、账号池、积分领取、本地 OpenAI 网关与局域网转发、数据看板与运行日志),六页毛玻璃界面统一呈现。Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编程套餐配额,并实时记录令牌使用情况;侧边栏 Settings 行上方显示紧凑的价格概览卡片

README

Model Router · DS Bot for DeepSeek Harness

English · 简体中文

dshfind

Want release notes only? Click Watch → Custom → Releases (you do not need Watching all activity).

One plugin that turns DeepSeek Harness into a Bot team: routing, budgets, official CLIs, remote computers and a supervision workbench, mounted once inside the Harness you already run.

It is not a second application. There is no extra agent loop, no separate session store and no other UI shell: every Bot keeps its own DSH Session, memory and interface, and the plugin adds authority, accounting and control around them.

  • Package: @ljwei-stak/dsh-model-router
  • Version: 0.27.1
  • Harness: DeepSeek Harness Desktop 0.2.1-rc.4 / 0.2.1-rc.5

Install

Harness Desktop → Plugins → Add plugin, then enter the exact version:

@ljwei-stak/dsh-model-router@0.27.1

Upgrading keeps Bot configuration, credentials, session history, budgets and the operation ledger. The plugin's own update check follows latest; prerelease builds ride the preview tag.

What you get

Bot team on one task system

Every Bot is a persistent identity with its own DSH Session, tools, machine and model binding. Work is planned into packages, ordered by dependency, then executed with concurrency limits, review, cancellation, reassignment and recovery. A task, its attempts, its budget reservation and its receipt live in one transactional ledger, so a retried step cannot run twice or be billed twice.

Model and tool authority bound per Bot

A Bot's grant is compiled from committed Host state — never from model arguments or role text. The same model can serve several Bots that keep separate identities. When a bound model is unavailable the Bot pauses with a named reason instead of silently switching routes. Official CLI runs record the requested model and the model the CLI actually reported; a reported reroute fails the step instead of being accepted.

Official tools, including dsh-TUI

Thirteen registry entries with fixed install methods (npm, pnpm, vendor scripts, verified archives): Kimi Code, Claude Code, Codex CLI, MiniMax Code, MiMo Code, Grok Build, Gemini CLI, OpenCode, Step Code, Pi, Hermes Agent, ZCode CLI, and dsh-TUI — the DeepSeek terminal UI, which DeepSeek providers name as their tool. Probe, version, login state and terminal launch come from the same registry; nothing installs from a model-supplied URL or command.

Codex runs as a first-class sub-task (cli/codex) inside the task system. Claude's read-only step keeps its normal reading tools, and the Host proves it changed nothing — a run that touches the workspace fails with READ_ONLY_RUN_CHANGED_WORKSPACE instead of being reported as a successful read.

Remote computers, and their desktop

Pair a machine running remote-computer-agent to get filesystem roots, shell_exec, artifacts and a durable operation record per call. Model-facing remote tools and the human workbench share one authorization path: a model never supplies an endpoint, executable path, task id or operation id.

电脑操作 (0.27.0) watches one desktop frame and acts on it. Frame and action are separate owner calls; every action carries the id of the frame the person actually saw (single use, 15 s), clicks map back to frame pixels, and each action runs as the chosen Bot under the same machine ceiling and is recorded as an operation.

A workbench that answers the first question first

  • 需要你处理 — derived from committed state: a paused budget, interrupted spend, a failed check, a failed run, a tool that needs login, an unconfirmed remote effect. Healthy state renders nothing.
  • 演练 (dry run) — plan and price a run, list what each package would call, call nothing.
  • 两本账 — API money (settled, reserved, limits, unknown prices) and subscription quota (calls, reported tokens) as two books that are never added together.
  • Terminals — PowerShell/system shell and the registry CLIs, with live output and sessions.

Routing that states its reasons

Economy / balanced / quality presets, exact model assignment per package, manual reassignment, historical P90 estimates, dependency-aware search and quality evidence. A preview shows packages, permissions, required confirmations and estimated cost before anything runs, and the Host rechecks the plan at start.

First run

  1. Add a model route in Harness's Models page, then bind it to a Bot in Bot 绑定.
  2. Open 模型路由工作台 and read 需要你处理 — it stays empty until something actually needs you.
  3. Install the official tools you use; each card shows the exact command and target directory first.
  4. To use a remote machine, install remote-computer-agent there, pair it with a ceiling of Bots, roots and tools, then save its pairing token as a Host-only secret.
  5. Grant the Bot the remote tools it should have. A Bot that lacks a tool fails with a named reason instead of falling back to something else.

Remote computer tutorial

This walks through giving a Bot a real computer: install the agent on that machine, pair it, grant exactly what the Bot may do, then use it from chat or from the workbench.

1. How the three parts fit

your machine (DSH Host)            the target machine (Agent)          the Bot
┌──────────────────────┐   grant   ┌─────────────────────────┐   tools  ┌──────────────┐
│ machine catalog      │ ────────► │ <agent-host>:9701 /mcp      │ ◄─────── │ session-…    │
│ ceiling, secretRef   │  ticket   │ roots, ceiling, ledger  │  call    │ grant        │
└──────────────────────┘           └─────────────────────────┘          └──────────────┘
  • The Agent runs on the target machine and owns the filesystem roots, the operation ledger and every side effect.
  • The Host (your Harness) stores the machine's pairing secret, issues a short-lived grant per call, and keeps the Bot's authority.
  • The Bot may only use tools that both its own grant and the machine ceiling allow. A model never supplies an endpoint, path or task id.

2. Prepare the machine

RequirementDetail
OSWindows 10/11 (x64) or Linux (x64/arm64). Desktop tools are Windows-only.
Node.js22.19 or newer (24.x recommended). Check with node -v.
AccountA normal account is enough; a dedicated low-privilege account is better. Do not run it as a Session 0 service if you want desktop control.
NetworkReachable from your Harness: a WireGuard/Tailscale private address, or HTTPS. A private IP is not trusted by itself — you attest the tunnel.
DiskA workspace directory for each root you expose, e.g. D:\workspaces\project.

3. Install the agent

Windows

powershell -File deploy/remote-agent/install-windows.ps1 `
  -SourceRoot . -Prefix D:\dsh-agent -AuthorizedRoot D:\workspaces\project

Linux

sh deploy/remote-agent/install-linux.sh ./source ./dsh-agent /srv/workspaces/project

The installer copies the agent into a versioned directory, runs npm ci and the build, then initializes config.json. It does not touch Node, the firewall, the VPN or any service.

No checkout on the target? Copy the agent folder (package.json, package-lock.json, build.mjs, src/), run npm ci && npm run build, then node dist/cli.mjs init <config.json> <authorized-root>.

4. Configure config.json

{
  "dataDir": "D:\\dsh-agent\\data",
  "roots": { "project": "D:\\workspaces\\project" },
  "isolation": "application",
  "network": {
    "mode": "wireguard",
    "host": "<agent-host>",
    "port": 9701,
    "protectedTunnel": true,
    "allowedHosts": ["<agent-host>:9701"]
  },
  "executables": { "node": "D:\\Program Files\\nodejs\\node.exe" },
  "windowsJobRunner": "D:\\dsh-agent\\native\\dsh-process-job.exe",
  "desktop": {
    "pipeName": "dsh-desktop-<host>",
    "secretFile": "D:\\dsh-agent\\desktop.secret"
  },
  "browserOrigins": []
}
FieldMeaning
rootsRoot ids the agent may touch. Tool paths are relative to one of them; traversal, ADS and symlink escapes are rejected.
network.modeloopback (default), wireguard, tailscale, cloudflare-tunnel, public-tls.
network.hostMust be an address that exists on that machine (bind interface). Wildcards are rejected.
network.protectedTunnelYour explicit attestation that the address is reachable only over a private tunnel. Required for plain HTTP on a non-loopback address.
network.allowedHostsExact host:port accepted in the Host header.
windowsJobRunnerJob Object launcher. Without it Windows shell_exec fails explicitly instead of pretending to isolate.
desktopPipe name and secret for the interactive desktop helper. Without it the five desktop_* tools are not exposed.

5. Pair the Host

Write a ceiling — the most any client may ever ask for:

{
  "botIds": ["<bot-session-id>"],
  "roots": ["project"],
  "tools": ["machine_ping", "fs_list", "fs_read", "fs_write", "shell_exec",
            "operation_status", "operation_cancel", "artifact_stat", "artifact_read",
            "desktop_screenshot", "desktop_click", "desktop_type", "desktop_key", "desktop_scroll"]
}
node dist/cli.mjs pair config.json host-office-pc ceiling.json

It prints three values once:

{ "clientId": "host-office-pc",
  "token": "…43 characters…",
  "machineId": "machine-…",
  "secretRef": "remote-agent/machine-…/host-office-pc" }
  • token goes into a Host-only secret and nowhere else. Never paste it into a chat, a config file, a model argument or a URL.
  • machineId identifies the machine in the Host catalog.
  • Re-running pair with an existing id fails by design; use rotate to reissue, revoke to disable.

6. Keep the agent running

Windows — run it in the interactive session so the desktop helper can attach:

@echo off
cd /d D:\dsh-agent
"D:\Program Files\nodejs\node.exe" dist\cli.mjs serve D:\dsh-agent\config.json >> D:\dsh-agent\agent.log 2>&1
schtasks /create /f /tn dsh-remote-agent /tr D:\dsh-agent\start.cmd /sc onlogon /it
schtasks /run /tn dsh-remote-agent
netsh advfirewall firewall add rule name=dsh-remote-agent dir=in action=allow ^
  protocol=TCP localport=9701 remoteip=10.0.0.0/24

Linux — use deploy/remote-agent/remote-agent.service.example as the template.

Check from the Host side: curl -i http://<agent-host>:9701/mcp must answer 401 (alive and authenticated), never 200 and never a connection refusal.

7. Register the machine in the workbench

远程电脑 → 添加或重新配对电脑, in this order:

  1. 保存宿主专用凭据 — name it REMOTE_AGENT_OFFICE_PC (uppercase letters, digits, underscores) and paste the 43-character token. The result is ds-secret/REMOTE_AGENT_OFFICE_PC.
  2. Pairing form:
    • 电脑名称: anything readable, e.g. office-pc · Win11
    • Agent machineId: the machineId printed by pair
    • Agent 地址: http://<agent-host>:9701
    • 凭据 secretRef: ds-secret/REMOTE_AGENT_OFFICE_PC
    • 已配对根目录 ID: project
    • 用于核验的 Bot: the Bot that will own this machine
    • ☑ 受保护隧道 — required for plain HTTP on a private address
  3. Click 核验并配对, then 官方工具 · 体检 → 重新体检; the machine should be listed.

8. Grant the Bot its tools

A machine binding lists what the machine offers; the Bot's own grant lists what that Bot may use. Both must contain a tool before a call succeeds.

ToolDoesNotes
machine_pingAgent health, OS, capabilitiesSafe default
fs_list / fs_readList and read inside a rootRead-only
fs_writeAtomic write with expectedHashMutating; null means create-only
shell_execFixed executable id or allowed interpreter, argv onlyNeeds windowsJobRunner on Windows
cli_probe_v1 / cli_task_v1Versioned container/CLI backendsOnly when a container profile exists
operation_status / operation_cancelReconcile or stop an operationA stop is not a confirmation
artifact_stat / artifact_readRead bounded output artifactsLarge output lands here
worktree_create / worktree_diff / worktree_integrateIsolated Git worktree and patch integrationRequires Git on the target
browser_*Playwright contexts with allowed originsBrowser presence is probed, not assumed
desktop_screenshot / desktop_click / desktop_type / desktop_key / desktop_scrollInteractive desktopNeeds the helper in the interactive session

Start narrow: machine_ping + fs_list + fs_read. Add fs_write and shell_exec only when the job needs them, and give them to one Bot rather than to Main.

9. Use it

From chat, ask the Bot directly: "read project/README.md", "run the tests", "open the internal wiki and summarise it". The Bot picks a tool, the Host issues a grant for that one call, and the record is kept.

From the workbench:

  • 远程电脑 → 电脑操作: pick the machine and the Bot, click 截取当前画面, then click the picture (that is a real click), or use the key row, the text box and the scroll buttons. Every action is stamped with the frame id it came from; if the frame expired, take another one.
  • 任务 / 运行记录: each call shows its operation id, status and artifact. Unknown outcomes are reconciled there and never retried blindly.

10. Troubleshooting

SymptomCauseFix
401 / AUTH_INVALIDWrong, old or truncated tokenReissue with rotate, paste all 43 characters
TLS_REQUIREDPlain HTTP on a private address without attestationTick 受保护隧道 and re-pair
BIND_INTERFACE_NOT_FOUNDnetwork.host is not an address on that machineUse the IP ipconfig / ip addr shows for the tunnel
Connection refusedAgent not running, or bound elsewhereCheck netstat; it must listen on the exact address
MACHINE_BOT_DENIEDBot grant or machine ceiling lacks the tool or rootAdd it to both, re-save the binding
MACHINE_GRANT_CHANGEDCeiling changed mid-callRe-run the action; the new revision applies
INVALID_MACHINE_SECRETSecret name or token shape is wrongREMOTE_AGENT_* plus a 43-character token
OPERATION_CONFLICTSame operation id with a different requestUse a new operation; never reuse ids
FRAME_UNAVAILABLEDesktop helper not running, session locked, or UAC secure desktopUnlock the machine, restart dsh-desktop-helper
OUTCOME_UNKNOWNProcess died mid-operationReconcile with operation_status; do not replay

11. Operate it

  • Rotate: node dist/cli.mjs rotate config.json <clientId>, then update the Host secret.
  • Revoke: node dist/cli.mjs revoke config.json <clientId>, then archive the machine.
  • Upgrade: stop the agent, reconcile active operations, back up data/ and config.json, install the new version alongside, point the launcher at it, start again.
  • Uninstall: stop tasks, remove the version directory, and delete config and data only after the pairing is revoked.

12. What the agent does not promise

Roots are an application-level boundary, not an OS sandbox: a shell grant carries the account's own permissions. For a real boundary use a dedicated OS account or a container profile. Desktop control needs an unlocked interactive session, and one screenshot is not a video stream.

Security model in one screen

  • Authority comes from committed Host state. Model arguments carry no tools, machines, credentials, endpoints or task identity.
  • Unknown is neither zero nor success. Unpriced calls stay unknown, unconfirmed remote effects stay unknown, and only reconciliation resolves them.
  • A stop is not a confirmation. A stop request is recorded; a remote operation counts as stopped only with its own receipt.
  • Every remote action is an operation. Duplicate ids return the original result; a changed request with an old id is refused.
  • Read-only is proven. A read-only CLI step that changes the workspace fails.

Compatibility and limits

Verified: the package installs and boots on 0.2.1-rc.4 and rc.5; the desktop app and packaged build pass; the test suites pass offline; remote agent operations were exercised against a real machine over WireGuard.

Not claimed: real-vendor acceptance for every CLI tool, a multi-monitor or DPI matrix for desktop control, and installer/uninstaller acceptance on macOS. Where a capability is unverified the interface says so instead of implying support.

Repository layout

.dsh-plugin/               host plugin: authority, tools, workbench RPC, client bundle
modules/bot-runtime/       the Bot runtime (vendored from ds-bot) and its policy scope
packages/                  orchestration, capability broker, funding, tasks, remote execution
apps/integration-client/   product panels rendered inside the Harness sidebar
remote-computer-agent/     machine-side agent (MCP transport, operation ledger)
native/                    Windows desktop and process-job helpers

together with each release's validation report.

License

MIT