DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Vision Unlock — DSH Plugin for DeepSeek Harness
← Plugins
V

dsh-vision-unlock

Vision Unlock

Remove the restriction that causes DSH to refuse sending or reading images because the model has not declared multimodal capabilities.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:wmk66ds/dsh-vision-unlock#ba8b3630185bd1f9c71c976290cb001dc9b2b616
READMECompatibilityVersions

Compatibility and provenance

Vision Unlock is published as dsh-vision-unlock and currently resolves to version 1.0.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
10/14/2026

Versions

1.0.0stable
10/14/2026

Related plugins

Loading related plugins…

Latest
1.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/14/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in vision-media.

Vision Routerdsh-vision-routerEyes for text-only DeepSeek Harness agents: built-in free vision chain + pixel-level tools. Remote vision providers, including the default free fallback, receive image content unless strict local-only use is configured.Imagegen@dickpy/dsh-imagegenAI image generation plugin for the dsh web GUI: text-to-image and image-to-image through configurable provider channels (gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3, with native xAI Grok Imagine, Google Nano Banana aExperimental Voice Input Bundle@deepseek-ai/dsh-experimental-voice-input-bundleExperimental voice input with local SenseVoice; downloads its runtime on first useCodexdsh-codexChatGPT OAuth, Codex models, search, read_image URL support, and configurable GPT Image generation for DeepSeek Harness

README

dsh-vision-unlock

去掉 DeepSeek Harness(DSH)「当前模型不支持图片」的拒绝限制,让未声明多模态能力的模型也能发送和读取图片。

不修改 app.asar 里任何一行代码,也不改配置树——纯运行时接缝,随 DSH 升级继续可用。

为什么会被拒绝

DSH 判定一条路由能否吃图片,依据两处能力声明:

  • LlmModelInfo.inputModalities(可选字段)。缺这个字段,或数组里没有 "image", 就被当成纯文本模型。这是所有门禁的唯一判定来源:

    位置表现
    会话控制器 prompt()发送时弹「当前模型不支持图片,请切换支持图片的模型」
    子代理 assertImageCapable向子代理发图被拒
    read_file 读图does not declare image input
    MCP / ACP 图片注入同上
  • 适配器自己持有的模型表(不经过上面那处)。pi-ai 在发请求前查 model.input.includes("image");deepseek 适配器序列化前查 connection.models[].inputModalities。

典型触发场景:自定义/本地网关路由(如 Agent2API、自建 OpenAI 兼容网关)在配置里只写了 id / name / contextWindow / maxTokens,没写 input,于是落到默认值 ["text"], 被判定为不支持图片——哪怕上游模型其实支持。

本插件怎么做

只用两个运行时接缝:

  1. 包装 llm.resolveModelInfo,给结果补上 "image" → 拆掉上表中所有门禁。
  2. 遍历 llm.adapters,把适配器模型表里的 input / inputModalities 补上 "image" → 拆掉 pi-ai 的自检。适配器换快照(配置热更新)时自动重做。

安装

方式 A:用 plugin_manager 安装(推荐)

在 DSH 里让 agent 执行:

plugin_manager  action: install_bundle  target: github:wmk66ds/dsh-vision-unlock

或在 Web UI 的 设置 → 插件 面板里,把上面这串填进安装框。

target 也可以写完整 URL,两种等价:

写法说明
github:wmk66ds/dsh-vision-unlockGitHub 简写,推荐
https://github.com/wmk66ds/dsh-vision-unlock完整 git URL

锁定版本用 # 加 ref:

github:wmk66ds/dsh-vision-unlock#v1.0.0

若本机访问 GitHub 不畅,DSH 走的是它自己的网络栈;必要时先确认你的代理环境 能被 DSH 进程继承(例如 Clash Verge 的 TUN / 系统代理)。

方式 B:手动安装(CLI 或插件管理不可用时的降级方案)

  1. 把本仓库放到一个稳定的路径,例如 D:\workbench\dsh-vision-unlock。

  2. 在你的 profile 目录(默认 ~/.dsh/profiles/desktop/)的 node_modules 下建立指向它的链接:

    cmd /c "mklink /J `"%USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-vision-unlock`" `"D:\workbench\dsh-vision-unlock`""
    
  3. 编辑该 profile 的 package.json,在 dsh.profile.bundles 数组加入 "dsh-vision-unlock", 并在 dependencies 加入 "dsh-vision-unlock": "link:D:/workbench/dsh-vision-unlock"。

  4. 重启 DSH。

Windows 上用 junction(mklink /J)而不是符号链接——后者需要管理员权限。 注意 desktop profile 由 Electron 应用独占管理,dsh plugin --profile desktop 会拒绝执行,所以才有这里的手动步骤。

配置

cordis.patch.yml 里的 config:

- insert:
    - id: vision-unlock
      name: 'dsh-vision-unlock'
      config:
        providers: []   # 留空 = 所有 provider;否则只放行列出的
        models: []      # 留空 = 所有模型;否则只放行列出的

两个白名单都为空时全部放行;非空时需同时命中才放行。

已知边界

  • deepseek 适配器的模型表来自它自己的 plugin config,不经由 llm.adapters 暴露, 本插件改不到。该路由如需图片,请在设置页给模型勾选 Image(等价于写 inputModalities: [text, image])。
  • 放行后图片真的会发出去。若上游实际不支持多模态,报错会从模型侧返回, 不再是 DSH 本地拒绝——这是预期行为,不是 bug。

卸载

从 profile 的 package.json 中删掉 dsh-vision-unlock(bundles 与 dependencies 两处), 删除 node_modules/dsh-vision-unlock,重启 DSH。

适用版本

针对 DSH 桌面版(含 dsh-llm / dsh-llm-pi-ai / dsh-api-session-controller)验证。 依赖的是 llm.resolveModelInfo 与 llm.adapters 这两个接口,若上游改动需要同步调整。

许可证

MIT