Plugin directory / Developer / dsh-local-ocr
dsh-local-ocr
Verified · install-tested on dsh littlewrite
What it does
An on-demand local OCR plugin for DeepSeek Harness, powered by macOS Vision and Windows Media OCR.
Works — verified, early-stage project
An on-demand local OCR plugin for DeepSeek Harness, powered by macOS Vision and Windows Media OCR. It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
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.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-local-ocr for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:littlewrite/dsh-local-ocr Headless (CLI) profile:
dsh plugin --profile headless add github:littlewrite/dsh-local-ocr Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.