dsh-tool-ocr
Manifest valid★ 4Local OCR plugin: give text-only generative LLMs the ability to read images
dsh-tool-ocr
English | 中文
Local image text recognition for DeepSeek Harness models without vision input, backed by the standalone newbee-ocr (nbocr) engine over PP-OCRv6 models. Fully out-of-tree: depends only on published dsh base packages.
Features
| Item | Description |
|---|---|
ocr tool | recognize / status / install / check actions |
| Image inputs | Local path, or attachment_id (an image already in the conversation) |
| Output | Reading-ordered text, per-block bounding boxes, review flags (low confidence / amounts / numbers / dates / quantities), heuristic Markdown tables |
| Robustness | Survives MNN diagnostics in engine stdout; honors cancellation and timeout |
| Settings card | On dsh ≥ 0.1.0-rc.7 the plugin registers the tool-ocr namespace: the web Settings → Plugins page renders a card that edits the engine command, model tier, and run bounds live — no composition edit needed |
Quick start
1. Install the engine — grab nbocr from the newbee-ocr-cli releases (one-line installer or prebuilt archive):
curl -LsSf https://github.com/zibo-chen/newbee-ocr-cli/releases/latest/download/newbee_ocr_cli-installer.sh | sh
# Windows PowerShell: irm https://github.com/zibo-chen/newbee-ocr-cli/releases/latest/download/newbee_ocr_cli-installer.ps1 | iex
2. Install the plugin
dsh plugin --profile web add dsh-tool-ocr
# or: cd ~/.dsh/profiles/web && pnpm add dsh-tool-ocr
3. Mount it in your profile's cordis.patch.yml:
- insert:
- id: ocr
name: 'dsh-tool-ocr'
inject: [tools, subprocess, systemPrompt]
config:
command: 'C:/path/to/nbocr.exe' # required — the nbocr executable
That's it — restart dsh, then point the model at an image: ocr { path: "C:/screenshot.png" }. To tune recognition (language, model tier, limits), open Settings → Plugins → Plugin config and edit the OCR card; changes apply on save, no restart needed. command is the only field that must come from the composition.
Image inputs
pathworks on every dsh build: the model reads the file from disk.attachment_idneeds a build that admits images for text-only models (e.g. the dsh fork withapi-gateway.allowImagePlaceholder: true): images enter the session, the llm layer substitutes[image attachment <id>]text, and the model hands the id toocr.
Configuration
| Field | Default | Meaning |
|---|---|---|
command | — (required) | The nbocr executable: absolute path or PATH-resolved name. |
args | [] | Extra arguments before the nbocr subcommand (no shell). |
env | {} | Extra environment entries. |
language | chinese | Recognition model/language alias. |
detModel | v6-tiny | Detection model tier. |
modelsDir | '' | Model directory for non-embedded models; empty uses embedded models. |
maxImageBytes | 26214400 | Largest accepted image in bytes. |
maxOutputBytes | 2000000 | Largest collected engine stdout in bytes. |
maxTextChars | 12000 | Largest recognized text returned in text. |
timeoutMs | 600000 | Tool-call timeout budget in ms. |
Tool usage
ocr { path | attachment_id, action?, include_boxes?, table?, max_text_chars? }
status probes readiness without engine work; check runs a real end-to-end 1x1 probe.
Development
pnpm typecheck # tsc --noEmit
pnpm test # vitest
pnpm lint # oxlint
Real-engine smoke (skipped unless both env vars are set):
NBOCR_BIN=/path/to/nbocr OCR_E2E_IMAGE=/path/to/image.png pnpm test
License
MIT
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.1.0 | — | — |
| 0.1.1 | — | — |
| 0.1.2 | — | — |
| 0.1.3 | — | — |
Comments
Loading…
Similar plugins
by haifeiWu
DSH plugin: local OCR and image understanding for dsh — inlined image previews in Web tool cards
★ 0
TypeScript
Aug 15, 2026
dsh plugin --profile web add dsh-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-ocrby jing-hy
DSH plugin: pixel-to-text image reading for text-only models. image_scan/image_ocr/image_sample tools + image-reading skill (34-image trained methodology). Pure local, optional PaddleOCR.
★ 35
MIT
JavaScript
Aug 24, 2026
dsh plugin --profile web add picturereaderby maxwell-feng
Local OCR for attached images via Tesseract: only the recognized text is sent to the model, never the image bytes; vision passthrough is opt-in.
★ 4
MIT
TypeScript
Sep 13, 2026
dsh plugin --profile web add dsh-tesseract-ocrby littlewrite
An on-demand local OCR plugin for DeepSeek Harness, powered by macOS Vision and Windows Media OCR.
★ 0
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-local-ocrby tdf1995
Vision for text-only LLMs in DeepSeek Harness (DSH): describe images / OCR / VQA via free Gemini & GLM vision APIs
★ 4
↓ 26/wk
MIT
JavaScript
Aug 15, 2026
dsh plugin --profile web add dsh-plugin-vision