AlloyPlane/dsh-eye-vision
项目介绍Project Overview
dsh-eye-vision 是 DSH 插件,为纯文本模型提供图像理解、OCR 与 UI 分析能力。它注册 image_understand 工具,调用 luma-mcp 引擎并转发到任意 OpenAI 兼容多模态 API,支持本地路径、URL、data URI 及多裁剪。需要让 DeepSeek Harness 看图、识别文档或分析界面时使用。注意:图片会发送到你配置的端点,且仅允许读取白名单目录。
dsh-eye-vision is a DSH plugin that gives text-only models image understanding, OCR, and UI analysis. It registers an image_understand tool, spawns the luma-mcp engine, and sends images to any OpenAI-compatible multimodal API, with built-in free providers, multi-crop handling, and live settings. Use it when a DeepSeek Harness session needs to inspect screenshots, documents, or interfaces. Caveat: images are sent to your configured endpoint, and file access is limited to allowed directories.
请帮我了解并安装插件:【dsh-eye-vision】【https://github.com/AlloyPlane/dsh-eye-vision】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add dsh-eye-vision
把 AlloyPlane/dsh-eye-vision 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-eye-vision
Give text-only DeepSeek Harness models eyes — image understanding, OCR, and UI analysis through any OpenAI-compatible multimodal API.
Fork of dsh-free-vision (MIT) v1.0.1, with:
- custom-provider fix —
CUSTOM_MODEL_NAMEis now forwarded, so arbitrary OpenAI-compatible endpoints (GPT-4o, Qwen-VL, GLM-4V, youtu-vita, vLLM, Ollama…) actually start - allowed-directories whitelist — the vision engine can read images from your configured workspace roots, not just the engine CWD and home directory
How it works
You send an image path
→ agent calls the image_understand tool
→ plugin spawns the luma-mcp vision engine (child process)
→ engine calls your multimodal API
→ text description comes back to the text-only model
The main model never needs image input support. Paste the image path, get answers.
Features
image_understandtool registered onctx.tools, visible to every session in the profile- Any OpenAI-compatible endpoint via
customprovider — bring your own multimodal API - Free-tier providers built in: qwen (Qwen3-VL-Flash), volcengine (Doubao), siliconflow (DeepSeek-OCR)
- Multi-crop for large images (detail preservation)
- Allowed-directories whitelist (
LUMA_ALLOWED_DIRS) — read images from your workspace - Proxy vars stripped for direct mainland-China API access
- Live settings — save via the settings route, no restart needed
Installation
# from a local checkout
dsh plugin --profile web add D:/xd/dsh-eye-vision
# once published
dsh plugin --profile web add dsh-eye-vision
Restart dsh web. The tool appears as image_understand.
Configuration
Settings file: ~/.dsh/free-vision.json (same path as upstream for drop-in compatibility):
{
"modelProvider": "custom",
"baseURLs": { "custom": "https://your-api.example.com/v1" },
"modelName": "your-vision-model",
"apiKey": "sk-...",
"allowedDirs": "D:/workspace",
"toolName": "image_understand"
}
Or use environment variables (fallback chain: settings file > env):
| Provider | Key env | Base URL env |
|---|---|---|
| custom | CUSTOM_API_KEY |
CUSTOM_BASE_URL + CUSTOM_MODEL_NAME |
| qwen | DASHSCOPE_API_KEY |
QWEN_BASE_URL |
| volcengine | VOLCENGINE_API_KEY |
VOLCENGINE_BASE_URL |
| siliconflow | SILICONFLOW_API_KEY |
SILICONFLOW_BASE_URL |
| zhipu | ZHIPU_API_KEY |
ZHIPU_BASE_URL |
| hunyuan | HUNYUAN_API_KEY |
HUNYUAN_BASE_URL |
allowedDirs: semicolon/comma-separated extra roots the engine may read images from (default: engine CWD + home directory).
Usage
看图:D:/path/to/screenshot.png
OCR:D:/path/to/document.png
UI 分析:D:/path/to/design.png (task_type: ui)
Tool arguments: image_source (local path / http(s) URL / data URI), prompt, task_type (auto|general|ocr|ui|debug|describe). PNG/JPG/WebP/GIF up to ~10 MB.
Security
- API keys live only in the settings file or environment variables — never in this repo
- Images are sent only to the endpoint you configured
- Proxy environment variables are deliberately stripped from the engine child process
- A gitguard-style pre-push scan is recommended before publishing forks
Development
cd dsh-eye-vision
pnpm install # installs luma-mcp engine + MCP SDK
pnpm test
The engine patches in scripts/patch-luma.mjs re-apply automatically on install (idempotent, pinned to luma-mcp 1.7.1).
License
MIT — see LICENSE. Upstream: dsh-free-vision (MIT) by FuzzySoul.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS