DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
D

dsh-doc-reader

Doc Reader

将 PDF、DOCX、XLSX、PPTX、TXT/MD/CSV/HTML 文档从磁盘或 URL 读取为代理工具——支持按页/工作表/幻灯片提取文本,并支持对扫描件和图像进行本地 OCR(DeepSeek Harness)。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:reg4916/dsh-doc-reader#9d809773f022200ca6684fe0c06a3c4ba10c4dfa
README兼容性版本

兼容性与来源证明

Doc Reader 以 dsh-doc-reader 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/27

版本

0.2.0stable
2026/10/27

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/27
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---

README

dsh-doc-reader

Read PDF, DOCX, XLSX, PPTX and text documents as agent tools for DeepSeek Harness (dsh).

The built-in read tool returns file text, and web_fetch rejects application/pdf — so a PDF, a spreadsheet or a slide deck currently ends up as curl + pip install pypdf inside the session. This plugin closes that gap with five typed tools that return page-, sheet- and slide-aware text, including local OCR for scans and screenshots.

Tools

ToolWhat it doesKey parameters
doc_readUniversal reader: PDF, DOCX, XLSX, PPTX, TXT/MD/CSV/HTML; auto-detects format by magic bytespath | url, format, pages, sheet, maxRows, maxChars
pdf_readPDF page by page with --- page N/M --- markers, title/author metadatapath | url, pages (e.g. "1-3,7"), maxChars
xlsx_readOne block per sheet, tab-separated rows, sheet by name or 1-based indexpath | url, sheet, maxRows, maxChars
doc_metaMetadata only: format, size, PDF page count/title, DOCX props, XLSX sheets, PPTX slide countpath | url, format
doc_ocrOCR for scanned PDFs and images (PNG/JPEG/WebP/BMP/TIFF/GIF), per-page confidencepath | url, pages, langs, scale, maxChars

Every tool accepts a local path or an http(s) URL. Prefer doc_meta first for large files, then read the pages/sheets you need — output is capped by maxChars (default 60000, hard cap 400000).

Example output

# invoice.pdf — PDF · 184.2 KB
# source: /work/invoice.pdf
# pages 1, 2 of 7 · title: Invoice 2026-10

--- page 1/7 ---
ACME Ltd — Invoice 0042
...
# budget.xlsx — XLSX · 12.4 KB
# source: https://example.com/budget.xlsx
# sheets: Data, Second

## sheet "Data" — 3 rows × 3 cols
1 | Year | Revenue | Note
2 | 2024 | 1000    | ok
3 | 2025 | 2000    | Привет

OCR

doc_ocr handles what pure text extraction cannot: scanned PDFs, photos and screenshots.

  • Engine: tesseract.js 7 (WebAssembly, no native OCR binary) — runs fully locally, nothing is uploaded.
  • PDF pages are rasterized with pdf-to-img (pdf.js + @napi-rs/canvas) at scale 2 (~200 DPI), then recognized with one shared worker.
  • Fax-style CCITT G4 and JBIG2 scans are decoded through pdf.js wasm/JS decoders (wasmUrl is wired to the installed pdfjs-dist/wasm), so two-tone scans rasterize instead of returning blank pages.
  • Default languages: rus+eng (langs overrides, e.g. "deu", "eng"). Order matters: with eng+rus tesseract reads uppercase Cyrillic as Latin lookalikes (ПРИВЕТ → NMPUBET); Cyrillic-first keeps Latin accuracy identical (measured 94–95% on both fixture sets).
  • First use downloads the language data (~4 MB per language) into ~/.dsh/cache/dsh-doc-reader/tesseract; later calls are fast (a page takes ~0.3–1 s). For offline machines set DSH_DOC_READER_OCR_LANG_PATH to a directory containing <lang>.traineddata (optionally .gz), and/or DSH_DOC_READER_OCR_CACHE for the cache location.
  • At most 20 PDF pages per call; narrow with pages. Use scale: 1 for speed, scale: 3 for small print.
  • Rotation/handwriting/low-resolution scans are best-effort: tesseract has no layout magic, and confidence is reported per page so you can judge the result.
# scan.pdf — PDF (OCR) · 1.8 MB
# source: /work/scan.pdf
# OCR: tesseract rus+eng · pages 1, 2 of 12

--- page 1/12 (ocr, 91.4%) ---
INVOICE 2026-042
...

Limits and security

  • Local files: up to 50 MB; URLs: downloaded with a 20 s timeout and the same 50 MB cap.
  • Private/local hosts are refused (localhost, 127.0.0.1, RFC1918, .local, .internal) so the tool cannot become an SSRF primitive. Download the file and pass a path instead.
  • Only http(s) URLs.
  • PDF text extraction is text-based: scanned PDFs (images only) return (no extractable text on this page) — use doc_ocr for those.
  • DOCX conversion is handled by mammoth; charts, comments and tracked changes are not materialized as text.
  • XLSX returns displayed values, not formulas; rows are paged with maxRows.

Install

Published on npm as dsh-doc-reader. Install from the built-in plugin market, or manually into a profile:

cd ~/.dsh/profiles/desktop
npx pnpm add dsh-doc-reader

Then add the bundle to the profile's package.json:

"dsh": { "profile": { "bundles": ["dsh-doc-reader", "..."] } }

Restart DSH (the plugin loads on boot; DSH composition is all-or-nothing). The five tools appear in the next session.

For local development, install the working copy instead: npx pnpm add link:~/dsh-plugins/dsh-doc-reader.

pnpm 12 may report an ignored build script for tesseract.js. That postinstall is only the OpenCollective banner — approve it with pnpm approve-builds or ignore it; OCR works either way.

Develop

npm install
npm test          # node --test, runs against test/fixtures
node --check index.js

The readers live in lib/ and have no host dependency, so they can be exercised directly:

import { readDocument, documentMeta } from "./lib/read.js";
await readDocument({ path: "report.pdf", pages: "1-3" });

index.js imports @deepseek-ai/dsh-tools for defineTool; outside a DSH host the import falls back to an identity definition (the registry consumes the plain object).

Roadmap

  • .doc, .rtf, .odt, .epub readers.
  • Layout hints from OCR (word boxes, tables) and page-number citations.
  • Page/sheet images for vision models (presentResult image parts).
  • Caching of parsed documents within a session.

License

MIT