DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Pseudo Vision — DeepSeek Harness 插件(DSH Plugin)
← Plugins
P

@dsh-external/dsh-pseudo-vision

Pseudo Vision

为仅支持文本的提供商添加可选择启用的图像兼容同级路由,并在委托前将图像块转换为受预算限制的本地增强 OCR、颜色统计、像素扫描和元数据证据。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:DDDFXYqiming/dsh-pseudo-vision#484202492027a89f2bd64fec80dd52b46d3c7fc2
README兼容性版本

兼容性与来源证明

Pseudo Vision 以 @dsh-external/dsh-pseudo-vision 发布,当前版本为 0.7.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.7.0stable
2026/9/25

相关插件

正在加载相关插件…

最新版
0.7.0
DSH
*
HMR
重启进程
Tree shaking
已声明 sideEffects: false
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/9/25
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

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

Tool Describe Image@linxin666/dsh-tool-describe-image面向模型的 describe_image 工具,用于 dsh Web GUI:通过在兼容 OpenAI 的端点调用视觉语言模型,为文本模型提供图像理解能力,以描述一张图像(本地路径、http(s) URL 或附件引用)。可热插拔 —Vision Routerdsh-vision-router为纯文本 DeepSeek Harness 代理提供视觉能力:内置免费视觉链(无需密钥)+ 像素级视觉工具(问答、定位、裁剪、像素差异、颜色、OCR、SVG 描摹、抠图、截图)。一条命令即可安装,无需 Python,图像回合的使用方式与普通工具相同Imagegen@dickpy/dsh-imagegen适用于 dsh 网页 GUI 的 AI 图像生成插件:通过可配置的提供商渠道进行文生图和图生图(gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3,原生支持 xAI Grok Imagine、Google Nano Banana aVoice Modedsh-voice-mode适用于 DeepSeek Harness 的全双工语音插件:本地 zipformer2 流式 ASR(无需 API 密钥)→ 可编辑草稿;Edge TTS 或本地 VITS / Kokoro 朗读并显示实时字幕;真正的抢话;强化的 HTTP 接口 + 模型 SHA256 固定;兼容所有 ds

README

简体中文 | English

dsh-pseudo-vision

Gives text-only providers in DeepSeek Harness a layer of "tool vision". Image attachments are broken down into OCR text + color statistics + pixel scan + metadata on the LLM dispatch path, so any text-only model can read an image through those words. Everything runs locally, with only local OCR and pixel statistics.

What it does

  • The plugin takes over the deepseek-official route, which already handles images natively. Other text-only providers get sibling routes named dsh-pseudo-vision/<provider> through the bridgeProviders whitelist (shown as · Pseudo Vision in the model selector), or all at once via bridgeOtherProviders.
  • Sibling routes declare inputModalities: ["text", "image"], which is what lets the request pass the host image-admission gate.
  • On LLM dispatch there are two paths. Native vision models pass through untouched. For text-only models, the plugin reads the attachment, runs the 4 local tools to turn the image into text, replaces the image block, injects <pseudo-vision-context>, then delegates to the original provider.
  • Evidence is tiered by turn. Images from the last fullEvidenceTurns (default 2) user turns get the full pipeline; older-turn images degrade automatically to compact evidence (metadata + colour + scan, no OCR) with a vision_ocr(file_path=…) re-fetch pointer, so the model can pull the text back on demand. Re-attaching an old image in a new message restores its full tier.
  • Two per-request guards: maxImages (default 8) bounds full-tier conversions, maxTotalEvidenceChars (default 96 000 characters, ≈24K tokens) bounds the combined evidence text. Over the limit the plugin degrades instead: unconverted images keep an explicit [图片 N 未转换…] placeholder and a [⚠️ 图片处理摘要] summary line tells the model exactly which images did not take effect.

Tools exposed

ToolPurposeImplementation
vision_ocrExtract every text line (with normalized coordinates)tesseract.js (chi_sim + eng), pipeline below
vision_color_stats9-bucket pixel share + average luminancesharp + histogram
vision_pixel_scanRow + column multi-bucket scan emitting focusY/focusXsharp raw pixel access
vision_metaDimensions, format, color space, 4-corner + center samplessharp metadata

OCR pipeline (v5)

  1. Preprocessing resizes the image on a budget (small/normal/large/mega, snapped to a 28 grid), then detects dark mode (light themes are not inverted), converts to greyscale, and stretches contrast. Salt-pepper noise is detected next, and the 3×3 median denoise runs only when noise is present; clean images skip it so 1px thin strokes are not erased. A light sharpen (σ0.3) and a white border finish the step.
  2. First pass runs full-page tesseract recognition and emits every text line with per-line confidence; non-text blocks (image/separator) are filtered out.
  3. Low-confidence retry covers up to 8 regions, with text-like lines ranked first so icon noise lines no longer exhaust the budget. Each region is cropped, upscaled 3× with Lanczos, and re-read in single-block mode (PSM 6). A re-read replaces the main line only when its confidence is higher (the evidence block is still emitted).
  4. CJK post-process merges inter-character spaces (通 知 → 通知) and strips leading icon symbols.
  5. Digit verification re-reads IP/URL/port/long-number tokens with an ASCII whitelist in single-line mode. Punctuation keeps the first-pass skeleton, and only same-length re-reads with a confidence gain ≥5 are accepted; the [数字复核 N 处] audit block records each fix.

The key point in the OCR pipeline is that the tesseract.js PSM argument must be a Number; the string "3" breaks full-page detection.

Install

The GitHub route is the recommended one, assuming network access. When schannel or pnpm blockers hit on Windows, fall back to a local path.

# GitHub (recommended)
dsh plugin --profile web add github:DDDFXYqiming/dsh-pseudo-vision

# Local path when schannel / pnpm blockers hit on Windows
git clone https://github.com/DDDFXYqiming/dsh-pseudo-vision.git
cd dsh-pseudo-vision && pnpm install && pnpm build
dsh plugin --profile web add <local absolute path>

The GitHub route triggers the prepare script, which builds lib/ from source. On the first add, pnpm >= 10 refuses to run build scripts of git dependencies: copy the exact package key pnpm prints into the profile's pnpm-workspace.yaml, then re-run add:

allowBuilds:
  '@dsh-external/dsh-pseudo-vision': true

Treat this approval as "let this package run code on your machine at install time". Pin a commit (github:DDDFXYqiming/dsh-pseudo-vision#<sha>) if you want later pushes to stop changing what gets built.

Usage

It works out of the box with the default configuration. The deepseek-official route keeps handling images natively. Other providers get no sibling route by default, so opt in explicitly.

- id: dsh-pseudo-vision
  config:
    bridgeProviders: ["kimi-for-coding"]   # only this provider gets a sibling route
    ocrBudget: auto                        # also small | normal | large | mega
    ocrNoResize: false                     # true: skip budget resize/upscale
    evidenceMaxChars: 32000                # per-image character cap on model-visible evidence text
    # tessdataDir: "D:/tessdata"           # offline traineddata dir; wins over the PV_TESSDATA env fallback
    maxImages: 8                           # full-tier image count cap per request (1-32)
    maxTotalEvidenceChars: 96000           # combined evidence character cap (16000-320000)
    fullEvidenceTurns: 2                   # recent user turns kept full; older degrade (1-8)

You can also set bridgeOtherProviders to bridge every provider except the excluded list in one go. The tradeoff is one extra entry per model in the selector, so think before turning it on.

    bridgeOtherProviders: true

Once configured, sibling routes show up as dsh-pseudo-vision/<provider> (· Pseudo Vision). Text-only models go through the local pseudo-vision conversion, while native vision models stay untouched.