dsh-local-ocr
Manifest validAn on-demand local OCR plugin for DeepSeek Harness, powered by macOS Vision and Windows Media OCR.
dsh-local-ocr
An independent local OCR library and DeepSeek Harness tool plugin for macOS and Windows. It does not modify deepseek-harness, own a cache, or decide when OCR should run.
The native adapter uses @napi-rs/system-ocr, which exposes macOS system OCR and Windows Media OCR through one Node.js API. Its native work credits win-ocr-rs and mac-system-ocr.
Install
Requirements: Node.js 20 or newer, pnpm, and an installed DeepSeek Harness dsh command.
Install the plugin into the Web profile directly from GitHub:
npx -y github:littlewrite/dsh-local-ocr install
The installer adds the bundle to the selected Harness profile. Restart dsh web after installation. To select another profile:
npx -y github:littlewrite/dsh-local-ocr install --profile web
To remove it:
npx -y github:littlewrite/dsh-local-ocr uninstall --profile web
For local development, clone the repository and install its dependencies:
git clone https://github.com/littlewrite/dsh-local-ocr.git
cd dsh-local-ocr
pnpm install
The current native dependency supports macOS and Windows. Linux is not supported by this MVP.
DeepSeek Harness plugin
The bundle loads dsh-plugin/index.js. It registers one model-facing tool, local_ocr_image, and creates the OCR service without loading the native addon. The addon loads only when the model calls the tool.
Start Harness normally from the Harness repository:
cd /path/to/deepseek-harness
pnpm dsh web
When the plugin is loaded from a source checkout, it expects the Harness checkout to be the current working directory. Set DSH_HARNESS_ROOT only when it is loaded from another launcher or packaged installation.
Ask the agent to call local_ocr_image with an absolute local image path:
Please call the `local_ocr_image` tool instead of `read_image`.
Read all text from this local image:
/absolute/path/to/image.png
Library API
import { createOcrService } from './src/ocr.js'
const ocr = createOcrService()
const result = await ocr.recognize({
path: '/tmp/image.png',
languages: ['zh-cn', 'en-US'],
mode: 'accurate',
signal,
})
The result contains stable fields only:
{
"text": "recognized text",
"confidence": 0.8,
"engine": "darwin-system-ocr",
"durationMs": 12
}
An image with no detectable text returns an empty text value and confidence: 0. Set emptyWhenNoText: false to preserve the native no-text error.
Development
pnpm test
Tests inject a fake engine, so they do not require a host OCR runtime. Native smoke tests should run on each supported operating system.
Comments
Loading…
Similar plugins
by vitas
Local OCR for DeepSeek Harness: Apple Vision on macOS, no install, no network, no capability claims
★ 0
JavaScript
Oct 1, 2026
dsh plugin --profile web add dsh-ocr-freeby leozou320-ai
Offline macOS Vision OCR for DeepSeek Harness — accurate, local, API-key free. | DeepSeek Harness 本地离线 OCR 插件
★ 0
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-macos-vision-ocrby CoraEJones
DeepSeek Harness native plugin for real browser interaction, PDF reading, offline Chinese/English OCR and video frames.
★ 1
MIT
JavaScript
Oct 25, 2026
dsh plugin --profile web add dsh-web-workbenchby Favio8
DeepEye vision plugin for DeepSeek Harness (DSH): image description, OCR, VQA, UI layout, and clipboard analysis.
★ 3
↓ 114/wk
MIT
TypeScript
Aug 17, 2026
dsh plugin --profile web add dsh-plugin-deepeyeby ferstar
本地 OCR 插件:让纯文本生成 LLM 也能读懂图片 | Local OCR plugin: give text-only generative LLMs the ability to read images
★ 4
↓ 36/wk
MIT
TypeScript
Aug 18, 2026
dsh plugin --profile web add dsh-tool-ocrby maxwell-feng
dsh plugin: OCR attached images locally with the built-in Windows OCR engine — text-only models can see, privacy-first
★ 8
↓ 239/wk
MIT
TypeScript
Sep 13, 2026
dsh plugin --profile web add dsh-windows-ocr