Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Yts1919/dsh-vision-complete --skill vision-multimodalgit clone --depth 1 https://github.com/Yts1919/dsh-vision-completeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yts1919/dsh-vision-complete/vision-multimodal)<a href="https://agentmods.dev/skills/yts1919/dsh-vision-complete/vision-multimodal"><img src="https://agentmods.dev/badge/skills/yts1919/dsh-vision-complete/vision-multimodal/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yts1919/dsh-vision-complete/vision-multimodal"><img src="https://agentmods.dev/badge/skills/yts1919/dsh-vision-complete/vision-multimodal.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00112 | $0.02279 |
| Opus 5 | $0.00056 | $0.01140 |
| Sonnet 5 | $0.00022 | $0.00456 |
| Haiku 4.5 | $0.00011 | $0.00228 |
Grade A, and why
vision-multimodal scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
完整视觉能力(Vision-Multimodal Complete)
DeepSeek 本身是纯文本模型,看不到图、听不到声。这个 skill 给它补上完整的多模态能力,按环境自动选择两种实现:
方式 A:MCP 工具(默认,通义千问 Qwen)
若工具列表里有 mcp__qwen-mm-plugins-*,直接使用(已注册、无需额外安装,只需 DASHSCOPE_API_KEY):
qwen-mm-plugins-core:本地读图 / 读视频 / 裁剪 / 画框 / 可视化任意文件 / 看媒体元信息。qwen-mm-plugins-api:调用 Qwen 多模态模型(理解、OCR、检测、视频+音频融合、语音转写、音乐分析、图像分割)。qwen-mm-plugins-video-memory:30 分钟以上长视频的语义记忆与检索。
方式 B:通用方式 —— 用本目录的 vision.py(接任意供应商)
环境里没有 MCP 工具、或想接别的模型(OpenAI / 智谱 GLM / Kimi / 通义千问 / 硅基流动 / 本地 Ollama …)时,用命令行调用 vision.py(零依赖,Python 3.7+):
python vision.py chat --image 图.png --prompt "描述这张图"
python vision.py ocr --image 图.png --lang zh
python vision.py grounding --image 图.png --prompt "所有猫"
python vision.py compare --image 图.png --prompt "描述这张图" --models qwen,glm,kimi
python vision.py providers
供应商切换:把 config.example.json 复制为 config.json,改 provider 一行即可;API Key 用环境变量设置。详见 references/providers.md。
截图直读(配合 screenshot-tool)
若用户装了截图自动保存工具(~/.dsh/tools/screenshot-tool),截图后剪贴板会自动变成文件路径(形如 ...\Pictures\DeepSeek-Shots\shot_xxx.png)。用户粘贴出来的是路径文字,直接把它当图片的绝对路径,走下面的工作流即可,无需额外处理。
快速决策:任务 → 工具
| 我想做什么 | 方式 A(MCP) | 方式 B(vision.py) |
|---|---|---|
| 描述一张图片 / 回答关于图的问题 | vision_chat |
python vision.py chat |
| 从图片/截图/票据里提取文字 | ocr |
python vision.py ocr |
| 找出物体在哪儿(画框定位) | grounding |
python vision.py grounding |
| 把框画到图上给用户看 | core draw_bbox 或 grounding(return_img=true) |
core draw_bbox(0–1000 坐标) |
| 裁剪图片某块区域 | core crop |
core crop |
| 低成本先瞄一眼图 | core read_image |
— |
| 同一张图对比多个模型 | 手动多次调用 | python vision.py compare |
| 理解一段视频(画面+声音) | omni_av_caption 等 |
core media_info → 抽帧 → vision.py chat |
| 视频/音频转文字 | transcribe_audio 或 omni_asr* |
接任意 ASR 服务 |
| 多说话人分别转写 | omni_multi_speaker_asr |
接任意 ASR 服务 |
| 分析一首音乐 | omni_music_caption |
— |
| 把物体从图里抠出来(分割掩码) | segmentation |
— |
| 看 PDF / Office / CSV / 代码 / 3D | core visualize / save_view |
— |
| 30 分钟以上长视频问答 | qwen-mm-plugins-video-memory 系列 |
— |
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 98 lines · 112 tokens per session scan A 176573cccc67
vision-multimodal is a skill published in the GitHub repository Yts1919/dsh-vision-complete (42 stars, last pushed 24d ago), licensed MIT. It adds 112 tokens to every session and 2,279 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
glmv-resume-screen
Screen and evaluate resumes against criteria using ZhiPu GLM-V multimodal model. Reads multiple resume files (PDF/DOCX/TXT), compares against user-defined screening criteria, and outputs a Markdown table with pass/fail analysis. Use when the user wants to filter resumes, compare candidates, or batch-evaluate job…
llamaindex
Data framework for building LLM applications with RAG. Specializes in document ingestion (300+ connectors), indexing, and querying. Features vector indices, query engines, agents, and multi-modal support. Use for document Q&A, chatbots, knowledge retrieval, or building RAG pipelines. Best for data-centric LLM…
paddleocr-text-recognition
An optical character recognition tool configuration for extracting text from images, photos, scans, screenshots, and scanned PDFs. OCR means converting text visible in an image into machine-readable text.
ade
Parse documents and extract schema-shaped data with the ADE (Agentic Document Extraction) v2 APIs through the ade CLI. A local job-item store makes every run idempotent, resumable, and citable — repeat runs are free, interrupted runs resume, and every answer can cite element ids with visual evidence.
configuring-vision
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter", wants local Ollama, or needs different cheap and strong models. Use this to configure provider-neutral visual understanding without tying Watch Skill to one agent or model vendor.
sharing-results
The user wants to share or hand off what was found in a video — "send this analysis to my team", "make a page I can share", "export the findings", "give me something I can attach to the ticket". Use this to render a self-contained offline HTML viewer page with the frames, transcript, and every cached answer with its…