dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
自己日常用的一组 DeepSeek Harness (dsh) 插件,都在这个仓库里,从 npm 安装(源码在 GitHub)。
把下面命令里的 --profile web 换成你自己的 profile。
一键全套(推荐,桌面端同理——插件管理页的安装框里直接粘贴 tofu-box):
dsh plugin --profile web add tofu-box
tofu-box 是伞包:不含代码,以依赖拉入下面六个子包并用一个 patch 层注册全部插件行(dsh-base 同款 bundle 模式)。装伞包或逐个装子包,二选一,不要混装;伞包装完后在插件管理页是一个整体条目,不能单独禁用其中某一个。
| 插件 | 说明 | 支持的 dsh 版本 | 平台 | 安装 |
|---|---|---|---|---|
| model-tuning | 只补官方没有的两块:①官方「设置 → 模型」卡片里的兼容补丁——系统提示角色 compat.supportsDeveloperRole、Anthropic 思考格式 compat.forceAdaptiveThinking、内置目录路由的推理档位 modelOverrides.<id>.reasoningEfforts,官方 Models 页没有这些控件;经官方 settings.models.provider-card 席位内嵌,没有独立参数页。②绘图(绘图模型配置、generate_image / list_image_models 工具与直接绘图面板,原图逐字节保留)。v3 起标题路由交还官方 session-title-llm 行、模型参数交还官方 Models 页;标题字段已从 Config 移除,旧 profile 仍可加载。详见 README | 基线 0.2.1-rc.1 实测;provider-card 席位自 0.1.2-alpha 存在,但本包只按 rc 线验证 | Win11 实测;Linux/macOS 未测 | dsh plugin --profile web add dsh-plugin-model-tuning |
| read-image-preview | 会话里的图片(read_image、computer-use 截图、消息图片)共用一个查看器:缩放平移、标注、裁剪,回车直接放进输入框;输入框旁一键抓屏框选 | 1.6 起接官方图库 slot,需 ≥ 0.2.0-rc.2;0.2.1-rc.1 实测通过 | Win11 实测;Linux/macOS 未测 | dsh plugin --profile web add dsh-plugin-read-image-preview |
| shell-selector | 「设置 → Shell」里选 AI 执行命令用哪个 shell:PowerShell 7 / Windows PowerShell 5.1 / 自定义路径。只写宿主 pwsh-sandbox 条目本来就支持的 pwshPath,保存后下一条命令即生效,不重启、不替换执行器,沙箱 / 审批 / 超时 / 退出码全部沿用内置;选中 5.1 时额外注册一条方言上下文告知模型 &&、?? 不可用;Git Bash 因受限执行未验证而置灰并写明原因,详见 README | ≥ 0.1.7-alpha.2,实测 0.1.7-rc.1;0.2.0-rc.2 单测通过 | Win11 实测;Linux/macOS 未测 | dsh plugin --profile web add dsh-plugin-shell-selector |
| computer-use | 13 个 computer_* 工具:截图/元素树、鼠标、键盘、开应用,写操作有审批弹窗;v2 基于 Cua Driver 进程内 SDK(无守护/MCP/PowerShell),v2.3 起「打开应用」先在窗口表里复用已有窗口(含唤醒最小化),绝不重复启动已登录的应用,详见 README | ≥ 0.1.5-rc.1(peer 声明),实测 0.1.7-rc.1 与 0.2.0-rc.2(0.2.0 需 ≥ 2.4.1,审批探测不再依赖私有 API) | 跨平台(Windows 11 实测;macOS/Linux 未实测) | dsh plugin --profile web add dsh-plugin-computer-use |
| mcp-ui | 「设置 → MCP 服务器」配置页:增删改 stdio / streamable-http 服务器,写入 profile patch 标记块并热生效(官方暂不提供 MCP 配置界面),详见 README | ≥ 0.1.6-alpha.1(依赖 typert 网关,旧版不可用);0.2.0 需 ≥ 1.0.3——旧版 peer ^0.1.6 不覆盖 0.2.0,会被 profile 启动直接拒载;MCP 增删路径尚未实机验证 | Win11 实测;Linux/macOS 未测 | dsh plugin --profile web add dsh-plugin-mcp-ui |
| billing-card | 输入框下方实时显示当前会话的估算费用(DeepSeek 优先):Host 注册 billingUsage 会话投影,按模型折叠模型上报的 usage(重试尝试也计入),默认内置 DeepSeek 官方峰谷分时价(CNY/USD,含 v4-flash 旧名映射);0.2.0 起同时按会话日志统计 DeepSeek 官方网页搜索 / 抓取 API 的调用次数与按次费用(搜索服务端调用免费至 2026-11-01 00:00,web_fetch 直连 Fetch API 自上线起计费)。Client 是输入框下方只显示费用的药丸 + 点开的分模型/搜索明细卡片。价格表、峰谷窗口、节假日、搜索单价都可在插件 Config 里改,规则支持精确/通配 provider+model,便于扩展到其他厂商。详见 README | 基线 0.2.1-rc.1 实测;渲染在 0.2.1-rc.2 desktop 上也确认过;依赖 base 自带的 ctx.sessionProjections | Win11 实测(Web 渲染);Linux/macOS 未测 | dsh plugin --profile web add dsh-plugin-billing-card |
billing-card已加入tofu-box伞包(1.2.0 起),也可单独安装。本次发布先发子包dsh-plugin-billing-card@0.2.0再发伞包tofu-box@1.2.1(./publish.ps1 -Publish dsh-plugin-billing-card tofu-box)。
computer-use v2.5 起自动开启原生 Wayland,并内置 Ubuntu/GNOME 的 WinRects 扩展安装与诊断入口。GNOME 用户须安装扩展并注销登录一次;键鼠操作还需系统 portal 授权。安装步骤和实测范围见 computer-use README。
model-search(模型菜单搜索框)已在 2026-10 移除:官方模型菜单自 0.2.0-rc.2 起自带搜索,而本插件以 priority -1 整块替换官方菜单,会挡住官方后续加到菜单里的功能(如 0.2.1-alpha.4 的推理档位)。已装的用户dsh plugin --profile <p> remove dsh-plugin-model-search即可回到官方菜单;伞包 tofu-box 1.1.0 起不再包含它。
team-task-route(把某一次团队会话的 teammate 钉死在指定模型上)已在 2026-09 移除:它把 session id 写死在index.js里,只对一次性的调试会话有意义。需要时可在 git 历史里找回。
全部插件一次装完(npm 短名;tofu-box 伞包等价于此命令,见上):
dsh plugin --profile web add \
dsh-plugin-model-tuning \
dsh-plugin-read-image-preview \
dsh-plugin-shell-selector \
dsh-plugin-computer-use \
dsh-plugin-mcp-ui \
dsh-plugin-billing-card
当前 npm 版本:tofu-box 1.2.1 / model-tuning 3.0.0 / read-image-preview 1.6.0 / shell-selector 0.1.0 / computer-use 2.5.0 / mcp-ui 1.0.3 / billing-card 0.2.0。本次发布的下线插件清单、从 v2 升级的步骤与安装/卸载说明见 docs/RELEASE-model-tuning-v3-20261017.md;billing-card 0.2.0 / tofu-box 1.2.1 的发布说明见 docs/RELEASE-billing-card-20261019.md(0.1.0 见 docs/RELEASE-billing-card-20261017.md)。
装完重启 dsh 就能用。注册配置打进包里了(dsh.bundle.patch),不需要动 cordis 文件。卸载把 add 换成 remove。也可以从 git 直装(未发版 / 想追 HEAD 时):git+https://github.com/tofu-zyc/dsh-plugin-tofu-box.git#path:dsh-plugin-<name>,伞包同理 #path:tofu-box;npm 版走 semver,git 版 update 永远追 HEAD。首次安装 computer-use 时 pnpm 可能拦下 koffi 的构建脚本并让 dsh 报错——按提示在 profile 的 pnpm-workspace.yaml 写 allowBuilds: koffi: false(koffi 用预编译二进制,不需要构建)后重试即可。
要改本仓库的代码来调试?见 docs/DEVELOPMENT.md——把 profile 依赖换成指向本仓库的 link:,改完不用重装。要发版:./publish.ps1 -Publish(会先跑伞包同步校验,未入库的插件目录自动跳过)。
上表的版本区间为实测范围,未标注下限的插件不保证能在更早版本上运行。本轮迁移(0.1.7-alpha.2 → 0.1.7-rc.1)改动了 model-search、model-tuning、read-image-preview 三个插件,新增 shell-selector;image-generation 与 title-model 曾并入 model-tuning(v2);v3 起标题生成交还官方,绘图能力保留在 model-tuning 内(不再单独发包,升级指引见其 README);computer-use 与 mcp-ui 不需要改动,两者都在跑着 0.1.7-rc.1 的实际 profile 里加载通过:computer-use 的 13 个 computer_* 工具全部注册且被持续调用(截图 + 元素树、后台 element 点击、sequence、唤醒最小化窗口),mcp-ui 只到「加载与 compose 通过」这一步——它托管的 profile patch 里没有 MCP 块、当前 0 个 server,所以增删改的读写路径至今没有实机跑过,跟 dsh 版本无关。dsh 版本更新频繁,可能影响稳定性。并且插件均由 AI 完成,肯定会有很多潜在 bug。
v3 边界收缩(2026-10,基线 0.2.1-rc.1):model-tuning 3.0.0 删掉「用途(标题生成)」页,不再
disabled官方session-title-llm行——需要独立标题模型就在 profile 的cordis.patch.yml覆盖该行(字段见其 README);「模型参数」页的上下文窗口 / 最大输出 / 输入模态 / 模型发现交还官方「设置 → 模型」页;只保留官方没有的兼容开关、内置目录路由推理覆盖与绘图。官方可选组合包「随对话更新的标题」不再与本插件互斥。重叠盘点见 docs/PLUGIN-SCOPE-dsh-0.2.1-rc.1.md,发布、下线插件清单与迁移/安装说明见 docs/RELEASE-model-tuning-v3-20261017.md。
dsh 0.2.0 这一轮(详见 docs/UPGRADE-dsh-0.2.0-rc.2.md):四个契约面(bundle 机制 / 注入包 / slot / 服务方法)全部未变,唯一破坏点是 peer 版本门禁——^0.1.6 这类 caret 范围在 0.x 上不覆盖 0.2.0,运行时会直接拒载对应插件行。已发布的修复版:model-tuning 2.0.1、computer-use 2.4.1、mcp-ui 1.0.3(伞包 tofu-box 1.0.2 同步)。仍在 0.1.x 的用户升级 dsh 前先把这三个包升到上述版本即可。
升级 dsh 后起不来?多数是某个插件在新版本下坏了,而 dsh 默认一个插件崩就整个不启动。仓库自带一个启动急救工具(clone 本仓库后运行):
node tools/doctor/doctor.mjs --profile web
它会自动定位是哪个插件的问题(报错没点名也能靠二分测试查出来),先尝试 dsh plugin update 修复,修不好会问你要不要先禁用该插件让 dsh 跑起来,事后 enable 一键恢复。
未来可能新增更多插件。
A few DeepSeek Harness plugins I use daily. Install from npm — sources live on GitHub. Replace --profile web with your profile.
Everything in one shot (recommended; on the desktop client just paste tofu-box into the plugin manager's install box):
dsh plugin --profile web add tofu-box
tofu-box is an umbrella package: no code of its own, it pulls the six plugins below as dependencies and registers all their rows in one patch layer (the same bundle pattern dsh-base uses). Install the umbrella or pick individual plugins — not both; after the umbrella is installed it shows up as a single entry in the plugin manager and individual pieces can't be disabled from the GUI.
| Plugin | What it does | dsh versions | Platform | Install |
|---|---|---|---|---|
| model-tuning | Fills only what the official build lacks: (1) compat add-ons inside the official Models cards — per-model compat.supportsDeveloperRole, compat.forceAdaptiveThinking, and reasoning-level overrides for installed-catalog routes (modelOverrides.<id>.reasoningEfforts), none of which the official Models page exposes; registered through the official settings.models.provider-card seat, so there is no separate parameters page. (2) images — drawing-model config, the generate_image / list_image_models tools and a direct generation panel, originals kept byte-for-byte. Since v3 the title route belongs to the shipped session-title-llm row and model parameters to the official Models page; the old title fields are gone from the Config, though existing profiles still load (README) | baseline 0.2.1-rc.1 (tested); the provider-card seat exists since 0.1.2-alpha but this package is verified on the rc line only | Tested on Win11; Linux/macOS untested | dsh plugin --profile web add dsh-plugin-model-tuning |
| read-image-preview | One viewer for every image in a session (read_image, computer-use screenshots, message images): zoom, pan, annotate, crop, then Enter puts it into the composer; one-click screen capture with region select next to the composer | 1.6+ fills the official gallery slots and needs ≥ 0.2.0-rc.2; verified on 0.2.1-alpha.4 | Tested on Win11; Linux/macOS untested | dsh plugin --profile web add dsh-plugin-read-image-preview |
| shell-selector | A "Settings → Shell" page for picking which shell the AI runs commands in: PowerShell 7 / Windows PowerShell 5.1 / a custom path. It only writes the pwshPath field the host's own pwsh-sandbox entry already supports, so the next command uses your choice — no restart, no swapped executor, and sandboxing, approval, timeouts and exit codes stay exactly as shipped; when 5.1 is active it also registers a dialect note so the model knows && and ?? don't exist; Git Bash stays greyed out with the reason shown, because confined execution is unverified (README) | ≥ 0.1.7-alpha.2, tested on 0.1.7-rc.1; unit tests pass on 0.2.0-rc.2 | Tested on Win11; Linux/macOS untested | dsh plugin --profile web add dsh-plugin-shell-selector |
| computer-use | 13 computer_* tools: window screenshots + accessibility tree, mouse, keyboard, launching apps; input actions require approval; v2 runs on the in-process Cua Driver SDK (no daemon/MCP/PowerShell); since v2.3 "open app" reuses an existing window (restoring it when minimized) and never starts a second instance of an app that is already running (README) | ≥ 0.1.5-rc.1 (peer dep), tested on 0.1.7-rc.1 and 0.2.0-rc.2 (0.2.0 needs ≥ 2.4.1: approval probing no longer touches private APIs) | Cross-platform (tested on Windows 11; macOS/Linux untested) | dsh plugin --profile web add dsh-plugin-computer-use |
| mcp-ui | "Settings → MCP Servers" page: add/edit/remove stdio & streamable-http servers; writes them into the profile patch and hot-applies (the official build ships no MCP UI yet) (README) | ≥ 0.1.6-alpha.1 (needs the typert gateway; won't work on older dsh); 0.2.0 needs ≥ 1.0.3 — the old ^0.1.6 peer doesn't cover 0.2.0 and profile startup rejects the plugin outright; add/remove-server path not exercised yet | Tested on Win11; Linux/macOS untested | dsh plugin --profile web add dsh-plugin-mcp-ui |
| billing-card | Estimated cost for the current session, right under the composer (DeepSeek first): the Host registers a billingUsage session projection that folds model-reported usage per route (retried attempts included) and ships DeepSeek's official peak/off-peak prices (CNY/USD, legacy v4-flash names mapped); since 0.2.0 it also estimates the DeepSeek official web search / fetch API per-request charges from the Session log (server-side search is free until 2026-11-01 00:00 Beijing; web_fetch calls the Fetch API directly and is billed from launch). The Client is a cost-only pill plus a click-open per-model/search breakdown card. Prices, peak windows, holidays and search pricing are configurable, and rules match exact or wildcard provider+model pairs, so other vendors are a config change. See README | baseline 0.2.1-rc.1 (tested); rendering also confirmed on 0.2.1-rc.2 desktop; needs the base ctx.sessionProjections | Tested on Win11 (Web rendering); Linux/macOS untested | dsh plugin --profile web add dsh-plugin-billing-card |
billing-cardis now part of thetofu-boxumbrella (since 1.2.0) and can still be installed on its own. This release publishes the child packagedsh-plugin-billing-card@0.2.0first, then the umbrellatofu-box@1.2.1(./publish.ps1 -Publish dsh-plugin-billing-card tofu-box).
computer-use v2.5 automatically enables native Wayland and includes a WinRects installer and diagnostics for Ubuntu/GNOME. Install the extension, log out and back in once, and allow the system portal prompt for input. See the computer-use setup guide.
model-search(model picker search box) was removed in 2026-10: the official picker has had search since 0.2.0-rc.2, and this plugin replaced the whole official menu at priority -1, hiding whatever the official menu gains later (such as the reasoning levels in 0.2.1-alpha.4). Rundsh plugin --profile <p> remove dsh-plugin-model-searchto get the official menu back; the tofu-box umbrella drops it from 1.1.0.
team-task-route(pinning one specific agent-team session's teammates to a chosen model) was removed in 2026-09: it hardcoded a session id inindex.jsand only made sense for one throwaway debugging session. It can be recovered from git history if ever needed.
v3 scope cut (2026-10, baseline 0.2.1-rc.1): model-tuning 3.0.0 drops the "purposes (session titles)" tab and no longer disables the shipped
session-title-llmrow — set a custom title route by overriding that row in the profile'scordis.patch.yml(fields in its README). Context-window / max-output / input-modality editing and model discovery are back on the official "Settings → Models" page; only the compat add-ons, installed-catalog reasoning overrides and image generation remain. The official optional "titles that update with the conversation" bundle is no longer mutually exclusive with this plugin.
All plugins at once (npm names; the tofu-box umbrella is equivalent):
dsh plugin --profile web add \
dsh-plugin-model-tuning \
dsh-plugin-read-image-preview \
dsh-plugin-shell-selector \
dsh-plugin-computer-use \
dsh-plugin-mcp-ui \
dsh-plugin-billing-card
Restart dsh after installing. Registration is bundled in each package (dsh.bundle.patch), nothing to wire up. To remove: dsh plugin --profile web remove <name>. Git installs still work (git+https://github.com/tofu-zyc/dsh-plugin-tofu-box.git#path:dsh-plugin-<name>, or #path:tofu-box for the umbrella) when you want unreleased changes; npm installs update via semver, git installs always track HEAD. First-time computer-use installs may fail on koffi's blocked build script — follow dsh's hint and add allowBuilds: koffi: false to the profile's pnpm-workspace.yaml (koffi ships prebuilt binaries), then retry.
Hacking on this repo? See docs/DEVELOPMENT.md — point the profile at your checkout with link: and you stop reinstalling after every edit. Publishing: ./publish.ps1 -Publish (runs the umbrella sync check first and skips plugin directories that aren't committed).
The version ranges above are what has actually been tested; plugins without a stated lower bound aren't guaranteed to work on older dsh. This migration round (0.1.7-alpha.2 → 0.1.7-rc.1) touched model-search, model-tuning and read-image-preview and added shell-selector; image-generation and title-model were merged into model-tuning in v2, and since v3 the title route is back on the shipped row while only the drawing capability (plus the official gaps listed above) stays in model-tuning — none of them are published separately anymore (its README has the migration steps); computer-use and mcp-ui needed no changes and both load in a live 0.1.7-rc.1 profile — all 13 computer_* tools register and are in continuous use (screenshots with accessibility trees, background element clicks, sequences, restoring minimized windows), while mcp-ui is only verified as far as loading and composing: its managed patch block is absent and 0 servers are configured, so its add/edit/remove path has never been exercised, on any dsh version. dsh updates frequently, which may affect stability. All the plugins are completed by AI, so there will certainly be many potential bugs.
The dsh 0.2.0 round (details in docs/UPGRADE-dsh-0.2.0-rc.2.md): all four contract surfaces (bundle mechanics / injected packages / slots / service methods) are unchanged; the only breakage was the peer-version gate — a ^0.1.6 caret range doesn't cover 0.2.0 on 0.x, and the runtime rejects the plugin row outright. Fixed releases: model-tuning 2.0.1, computer-use 2.4.1, mcp-ui 1.0.3 (umbrella tofu-box 1.0.2). If you're still on 0.1.x, bump those three packages before upgrading dsh.
dsh won't boot after an upgrade? Usually one plugin broke under the new version, and dsh takes the whole process down with it. This repo ships a boot-recovery tool (clone it first):
node tools/doctor/doctor.mjs --profile web
It figures out which plugin is at fault (via bisection, even when the error names nobody), tries dsh plugin update first, and if that fails asks whether to disable the plugin so dsh can start. Re-enable anytime with enable <name>.
More plugins may be added in the future.