go-farther-and-farther/dsh-tool-eyes
DeepSeek Harness (DSH) 本地视觉眼睛插件:screen 工具(截图/图片交给本地视觉模型描述)+ ocr 工具(Windows 内置 OCR 逐字提取文字)。零云端、OCR 零 GPU、图片不出本机。
项目介绍Project Overview
dsh-tool-eyes 是 DeepSeek Harness 的本地视觉插件,提供两个工具:screen 通过本地 OpenAI 兼容视觉端点(llama.cpp、LM Studio、Ollama 等)截屏或描述图片并返回文字;ocr 用 Windows 内置 OCR 逐字提取屏幕或图片中的全部文本,无需模型、GPU 或云端。适合让纯文本代理看懂屏幕、转录错误对话框或读取界面文字。注意:仅支持 Windows 10/11,screen 需自备本地 VLM 端点,且图像会发往配置的 baseUrl。
dsh-tool-eyes is a local vision plugin for DeepSeek Harness that adds two tools: screen captures the screen or describes an image via a local OpenAI-compatible vision endpoint (llama.cpp, LM Studio, Ollama) and returns text; ocr uses the built-in Windows OCR engine to extract all verbatim text with no model, GPU, or cloud. Use it to let a text-only agent understand screens or transcribe dialogs. Caveat: Windows 10/11 only, and screen requires a configured VLM endpoint.
请帮我了解并安装插件:【dsh-tool-eyes】【https://github.com/go-farther-and-farther/dsh-tool-eyes】
把上面这条消息直接发给当前会话里的 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 https://github.com/go-farther-and-farther/dsh-tool-eyes
把 go-farther-and-farther/dsh-tool-eyes 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-tool-eyes
Local vision "eyes" for DeepSeek Harness (DSH).
Give your text-only agent eyes with two model-facing tools:
screen— capture the screen (or describe an existing image file) through a local OpenAI-compatible vision endpoint (llama.cpp with--mmproj, LM Studio, Ollama, ...) and return the vision model's text description.ocr— extract ALL text verbatim with the Windows built-in OCR engine: zero model, zero GPU, zero cloud, milliseconds.
screen = screenshot / image -> local VLM -> text description (understanding)
ocr = screenshot / image -> Windows OCR -> verbatim text (extraction)
Why
DeepSeek's chat-completions line is text-only. Instead of switching your whole conversation to a vision model, keep the text brain and add eyes as tools:
- Private by default — point
screenat a local endpoint and images never leave your machine. - Cheap — a 0.8B–4B local VLM is plenty for describing screens;
ocrcosts nothing at all. - Honest by default — the
screenprompt tells the VLM to describe only what is visible and never guess app/game/character names unless confirmed by on-screen text (this measurably cuts small-model name hallucination).
Requirements
- Windows 10/11 (the
ocrtool uses WinRT OCR;screenuses .NET for capture) - Node.js >= 22.19, DeepSeek Harness >= 0.1.0-rc.6
screenadditionally needs any OpenAI-compatible VLM endpoint, e.g.:- llama.cpp:
llama-server -m model.gguf --mmproj mmproj.gguf --port 1235 - LM Studio (loaded vision model), Ollama, or any OpenAI-compatible gateway
- llama.cpp:
Install
This package is published on GitHub only (not on npm).
dsh plugin --profile web add https://github.com/go-farther-and-farther/dsh-tool-eyes
Then restart dsh web. The screen and ocr tools appear in the agent's
toolkit automatically.
Manual install (offline / from source)
Copy this package into the profile's node_modules, then register it in
$DSH_HOME/profiles/<profile>/cordis.patch.yml:
- insert:
- id: tool-eyes
name: 'dsh-tool-eyes'
config:
baseUrl: http://127.0.0.1:1235/v1
model: ''
timeoutMs: 180000
Configuration
Plugin config (all optional):
| key | default | meaning |
|---|---|---|
baseUrl |
http://127.0.0.1:1235/v1 |
OpenAI-compatible endpoint for screen |
model |
'' |
model id to send; empty lets the server decide (llama.cpp serves one model) |
timeoutMs |
180000 |
hard cap for one capture call |
captureScript |
bundled capture.ps1 |
override path to an alternate capture script |
Override in your profile's cordis.patch.yml (id-targeted):
- id: tool-eyes
name: 'dsh-tool-eyes'
config:
baseUrl: http://127.0.0.1:1235/v1
model: qwen3.5-4b
timeoutMs: 120000
Usage
In a conversation, the agent can now:
screen— "what is on my screen?", "describe this image file", with an optionalpromptto focus on a region or detail.ocr— "read all the text on screen", "transcribe this error dialog".
Both accept an optional image path; without it they capture the screen.
The bundled PowerShell scripts can also be run standalone:
powershell -NoProfile -ExecutionPolicy Bypass -File lib\capture.ps1 -Prompt "..." -BaseUrl http://127.0.0.1:1235/v1
powershell -NoProfile -ExecutionPolicy Bypass -File lib\ocr.ps1 -Image C:\path\x.png
Privacy
ocris fully local (WinRT OCR, no network).screensends the captured image to the configuredbaseUrl. Point it at a local endpoint (llama.cpp / LM Studio / Ollama) to keep images on your machine.
Related
- dsh-vision-proxy — automatic transcription of attached images in the chat input (Chatbox-style), so you don't need to give file paths. Pairs well with this plugin.
Development
npm test # node --test tests/
License
MIT
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