DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Vision Translation Dsh — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

vision-translation-dsh

Vision Translation Dsh

用于 vision-translation 的原生 dsh (DeepSeek Harness) Cordis 插件适配器:通过 Python CLI(PROTOCOL v1)将图像信息映射到 <vision-context> 中。启动 cli.py,从不重新实现核心逻辑。

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

npx -y @deepseek-ai/dsh plugin --profile web add vision-translation-dsh@0.2.2
README兼容性版本

兼容性与来源证明

Vision Translation Dsh 以 vision-translation-dsh 发布,当前版本为 0.2.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.2.2stable
2026/8/19
0.2.1stable
2026/8/17
0.2.0stable
2026/8/17
查看其余 1 个版本收起版本
0.1.0stable
2026/8/17

相关插件

正在加载相关插件…

最新版
0.2.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
65.2 kB
文件数
9
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
43
最近提交
2026/8/22
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Tool Describe Image@linxin666/dsh-tool-describe-image面向模型的 describe_image 工具,用于 dsh Web GUI:通过在兼容 OpenAI 的端点调用视觉语言模型,为文本模型提供图像理解能力,以描述一张图像(本地路径、http(s) URL 或附件引用)。可热插拔 —Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio,以及 27 个可编辑视频模板,以原生 DeepSeek Harness 对话视图呈现。Imagegen@dickpy/dsh-imagegendsh Web GUI 的 AI 图像生成插件:通过可配置的提供商渠道实现文生图和图生图(gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3,支持原生 xAI Grok Imagine、Google Nano Banana a

README

vision-translation-dsh — native dsh adapter

A native dsh (DeepSeek Harness) Cordis plugin that lets any dsh profile ground images through the vision-translation pipeline. It registers one tool, vision_translate, and returns a structured <vision-context> block that the main model reasons over.

Chosen npm package name: vision-translation-dsh (checked free on the npm registry at implementation time via npm view vision-translation-dsh). This adapter lives in the repo at adapters/dsh/. For an MCP-based alternative see adapters/mcp/.

Discoverability (official dsh plugin tag)

Per the dsh README, plugin repos get discovered through the dsh-plugin topic and the npm keywords of the published package. This adapter ships the required tags:

  • GitHub topic: dsh-plugin (add it on the repository's About/Topics page).
  • npm keywords: dsh, dsh-plugin, deepseek-harness, deepseek-harness-plugin, cordis, cordis-plugin, vision, vision-translation, visual-primitives, mcp, grounding.

The dsh profile installs the plugin by package name (vision-translation-dsh) via the bundle patch, so discoverability does not affect the plugin id or tool id (vision-translate).

How it works

The plugin is the thin non-Python shell the architecture prescribes (ADAPTERS.md, CONTRIBUTING.md):

dsh agent ──tools──▶ vision_translate(image, question?, model?, max_objects?)
                          │  (uses the dsh attachment ref directly)
                          ▼
                    spawn `python cli.py`  (PROTOCOL v1 stdin envelope)
                          │  b64 envelope (attachment) or image.path
                          ▼
                    core (vision_translation.py) → <vision-context>

Key difference vs the MCP preset: the dsh Web UI hands images to the model as ImageBlock attachments — an opaque sha256:<hex> reference, not a file path. A stdio MCP tool can only ever receive strings, so the MCP path cannot see Web-uploaded images. This native plugin resolves the ref through ctx.attachments.readImage and ships the bytes to the CLI over a stdin b64 envelope — no shared filesystem required. This is the host integration the ADAPTERS.md registry marks as the native-plugin trigger.

Install

With a dsh workspace, add the package as a profile dependency and merge the bundle patch:

npm add vision-translation-dsh          # or pnpm add / yarn add

Then append the - insert: block from cordis.patch.yml to your profile's cordis.patch.yml (e.g. ~/.dsh/profiles/web/cordis.patch.yml) or mount it as a deployment bundle patch. The block registers the plugin row id: vision-translate for the vision-translation-dsh package.

Zero runtime dependencies; the only peer packages are dsh's @deepseek-ai/dsh-tools and @deepseek-ai/dsh-attachment, which any dsh profile already provides.

Profile configuration

config keydefaultmeaning
cliPath"" (auto)Absolute path to cli.py. Resolution order: cliPath → env VISION_TRANSLATION_CLI → package-relative ../../cli.py (in-repo adapters/dsh layout).
pythonBin"python3"Python binary used to run cli.py.
toolCallTimeoutMs120000Cooperative tool-call timeout; also the CLI kill timer.

Merging via the bundle patch:

- insert:
    - id: vision-translate
      name: vision-translation-dsh
      config:
        cliPath: ""            # "" = auto-detect
        pythonBin: "python3"
        toolCallTimeoutMs: 120000

Tool usage

vision_translate(image, question?, model?, max_objects?)

  • image — required. A local absolute/relative file path or a dsh image attachment reference (sha256:<hex> / attachment:sha256:<hex>).
  • question — optional guiding question for the parse focus.
  • model — optional auxiliary VLM override (empty → the CLI's default chain).
  • max_objects — optional primitive cap (1..16, default 16, clamped).

Returned value is a string: the <vision-context> text when vision succeeded, or an explicit vision unavailable (reason: …) message when it could not produce context (no key, VLM down, …). When the result says vision is unavailable, tell the user you cannot see the image — do not guess or fabricate it. error states surface as a failed tool call.

Comparing with the MCP preset

axisMCP preset (adapters/mcp/)native plugin (this adapter)
image inputlocal file path onlyfile path or dsh attachment ref (Web uploads work)
processone stdio MCP server per hostspawns python cli.py per call only; no server
lifecyclelong-lived server processCordis plugin, HMR with the profile
bytesCLI reads the fileb64 stdin envelope for attach-ments; path for files
depsmcp + venvzero runtime deps (peer-only)

Privacy

  • Images are sent to the configured OpenRouter auxiliary VLM (default xiaomi/mimo-v2.5) by the Python core. See vision_translation.py.
  • The API key is never hardcoded or read by this plugin. The CLI resolves it itself, in order: process env OPENROUTER_API_KEY, ~/.hermes/.env, or ~/.env (see cli._ensure_key / PROTOCOL.md).
  • No image bytes, OCR text, or full request is written to logs.

Development / test

Node ≥ 20 required (uses node:test). Tests are offline and dependency-free:

cd adapters/dsh
npm test        # = node --test "tests/**/*.test.js" (Node ≥ 20 built-in glob)

npm pack --dry-run verifies the publishable tarball (only lib/, cordis.patch.yml, README.md package.json contents).

License

MIT © 2026 Binglun Li. See LICENSE.