DeepSeek Harness plugin

dsh-qwen-multimodal

DSH bundle: Qwen multimodal bridge — vision (qwen3-vl), speech-to-text (qwen3-asr), text-to-image (qwen-image), via the deepseek-vision skill scripts

Jump to install

Source facts

Repository
wuwangmao/dsh-qwen-multimodal
Latest update
Aug 14, 2026
Category
Models & Providers
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/wuwangmao/dsh-qwen-multimodal
Plugin: dsh-qwen-multimodal
Author: wuwangmao

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-qwen-multimodal

A DSH bundle that gives text-only main models (e.g. DeepSeek) three multimodal skills in one plugin through Qwen APIs: vision, speech-to-text, and text-to-image — with a built-in generate-then-verify quality loop.

ToolCapabilityBackend
describe_imageImage / screenshot / OCR / chart understanding (multiple images at once)Qwen VL (default qwen3-vl-flash)
transcribe_audioSpeech / recording transcription (wav/mp3/m4a/aac/flac/ogg/amr)Qwen3-ASR (qwen3-asr-flash)
generate_imageGenerate images from text and save them locallyQwen-Image (qwen-image-plus)

Media never enters the main model context: visual/audio content is converted to text, and generated images are saved to local files with paths returned by the tool.

How it works

All API calls reuse the original Python scripts in skills/deepseek-vision/scripts/*.py and the .env configuration (vision/audio use the Alibaba Cloud Bailian OpenAI-compatible endpoint; image generation uses the native multimodal-generation endpoint). The plugin itself is a pure-JS Cordis bundle depending only on the host's mounted subprocess / tools services — no build step required for git installs.

Install

From GitHub

dsh plugin --profile demo add github:wuwangmao/dsh-qwen-multimodal

Local checkout / tarball

dsh plugin --profile demo add ./dsh-qwen-multimodal
# or
pnpm pack   # then
dsh plugin --profile demo add ./dsh-qwen-multimodal-0.1.0.tgz

Before first use, configure your API key: copy skills/deepseek-vision/.env.example to skills/deepseek-vision/.env and fill in VISION_API_KEY (create one in the Alibaba Cloud Bailian console; new users get free quota, college students get a ¥300 annual voucher). Vision/audio/image reuse the same key by default, or configure them separately (see .env.example).

Python

Python 3.10+ is required (the image-generation script uses int | None type-annotation syntax).

python is resolved from the system PATH by default. If it cannot be resolved, restate the plugin row in your profile's cordis.patch.yml and set config.pythonPath.

Configuration overrides

The plugin uses the bundled skill directory by default. To point it at an external directory (e.g. to reuse an existing .env and scripts, or to keep your key outside node_modules), restate the row:

- insert:
    - id: qwen-multimodal
      name: dsh-qwen-multimodal
      config:
        skillDir: 'D:/qwen-vision'
        pythonPath: 'C:/path/to/python.exe'

Usage

Once loaded, the model can call the three tools directly:

  • describe_image({ images: ['screenshot.png'] }) — verbatim extraction of text/code/errors in images
  • describe_image({ images: ['chart.png'], prompt: '逐字提取图中所有文字,保留原样' }) — custom prompt
  • transcribe_audio({ audios: ['recording.m4a'], language: 'zh' }) — specify language for accuracy
  • generate_image({ prompt: 'a cute orange cat on a windowsill watching the sunset', out_dir: './out' }) — generate and save locally
  • generate_image({ prompt: '...', out_dir: './out', verify: true }) — generate, then automatically re-check the result with Qwen VL against the prompt (quality loop)

Layout

dsh-qwen-multimodal/
├── package.json              # dsh.bundle manifest
├── cordis.patch.yml          # bundle layer: inserts the plugin row
├── src/index.js              # plugin: registers the three model tools (pure JS)
├── scripts/selfcheck.mjs     # self-check: node scripts/selfcheck.mjs
└── skills/deepseek-vision/   # skill assets: SKILL.md + Python scripts + .env.example

License

MIT