dsh-scan2md

DSH PLUGIN工具与能力

仓库 Qiujiyuantiantian/dsh-scan2md

工具与能力 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

把扫描件 PDF(没有文字层、拍照或复印的书)OCR 成 Markdown:可断点续跑,带逐页溯源和质量报告。

一句话选型结论

按资料字段整理

dsh-scan2md 是工具与能力类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类工具与能力 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 未标注 复刻 未标注 · 未关闭 issue 未标注
最近更新 未标注 创建于 未标注
README 5.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按仓库说明试装。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在工具与能力场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-scan2md当前 未做沙盒验证 未标注 未标注 未标注 无
loopx 未做沙盒验证 未标注 6,233 未标注 无
dsh-startup-screen 未做沙盒验证 未标注 633 未标注 有
minara-skills L4 · 沙盒安装通过 中风险 360 未标注 有
dsh-blender-plugin 未做沙盒验证 未标注 211 未标注 无
tokenledger L5 · 运行验证通过 低风险 204 0.2.0-rc.2 等 11 个 有

仓库档案

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Qiujiyuantiantian仓库 dsh-scan2md · 默认分支 未标注
分类工具与能力skill
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证未标注商用或二次分发前请确认条款原文
星标 / 复刻 / issue未标注 / 未标注 / 未标注收录时的数值,非实时
创建 / 更新未标注 · 未标注最后推送 未标注
本站收录2026-10-30首次进入本站目录的时间

README 全文

5.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-scan2md

把扫描件 PDF(没有文字层、拍照或复印的书)OCR 成 Markdown:可断点续跑,带逐页溯源和质量报告。

A DSH skill that OCRs scanned PDFs into Markdown — resumably, with per-page
provenance, and honest about what OCR damages.

为什么做这个

dsh-pdf2md 遇到扫描件会拒绝(exit 2),因为写一个空文件比报错更糟。但拒绝之后你得有下一步——这个 skill 就是那一步。

它和一般的 OCR 脚本差在三件事:

一般脚本 这个
351 页跑到一半崩了 从头再来 --resume 复用已完成页,零成本
不知道跑到哪了 看屏幕 progress.jsonl 每页一行,随时读
不知道哪页不可信 靠猜 quality.json 列出低置信行和空白页

安装

作为 DSH 插件(推荐)

dsh plugin --profile web add dsh-scan2md

桌面客户端把 profile 名换成你的(默认 desktop):

dsh plugin --profile desktop add dsh-scan2md

dsh plugin add 会把包装进 profile,并自动登记到 dsh.profile.bundles(实测:全新 profile 一条命令,bundles 就多出这一项)。重启后技能清单出现 scan2md。

不用 dsh 命令的话,也可以 pnpm add dsh-scan2md,再手动把包名加进 profile package.json 的 dsh.profile.bundles。

Python 依赖(必须;Python 3.11–3.12)

-m pip install -r skills/scan2md/requirements.txt
# 国内加镜像
-m pip install -r skills/scan2md/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

体积与联网说明(实测,不是估计):

  • OCR 模型打在包里,pip install 时就下完了,首次运行不再联网。 rapidocr_onnxruntime 自带 PP-OCRv4 三个模型——检测 4.5 MB、识别 10.4 MB、方向分类 0.6 MB,合计 15.4 MB(wheel 本身 14.2 MB)。
  • 真正占体积的是它的依赖,Windows 下五个主包合计约 142 MB 下载量:pymupdf 约 60 MB、opencv-python 约 42 MB、onnxruntime 约 14 MB、rapidocr_onnxruntime 约 14 MB、numpy 约 12 MB。其余平台量级相近。
  • 所以:装一次要等一会儿,但装完之后跑多久都不再联网。 如果公司网络需要白名单,放行的是 pypi.org(或镜像站),不需要额外的模型下载域名。

Python 版本是有上界的:rapidocr_onnxruntime 声明 requires_python <3.13,所以这套依赖在 Python 3.13 上装不上,不是"没测过",是 pip 直接拒绝。CI 覆盖 3.11 / 3.12 两个版本,这两档是实测可用的。3.10 未在 CI 覆盖——理论上应当可用,但没跑过就不写进承诺。

验证:

-c "import pymupdf, numpy, rapidocr_onnxruntime; print('ok')"

用法

# 1. 先判断:这书到底要不要 OCR
python scripts/scan2md.py probe book.pdf

# 2. 转(一本书几十分钟,中途可以断)
python scripts/scan2md.py convert book.pdf --out book.md --resume --verbose

# 3. 看质量
python scripts/scan2md.py report book.jobdir
参数 作用
--out 输出的 Markdown 文件(必填)
--job-dir 检查点目录,默认 .scan2md
--start / --end 页码范围
--resume 复用已有检查点(重跑时务必加)
--dpi 渲染分辨率,默认 300(低于 200 中文笔画会丢)
--force 已有文字层也强行 OCR

实测速度

第 2 本书(204 页)前 3 页:30 秒,约 10 秒/页。

  • 204 页 ≈ 34 分钟
  • 351 页 ≈ 58 分钟

所以:不要让这个任务阻塞对话,起后台,然后轮询 progress.jsonl。

它到底做了什么

  • 透印:按识别框内暗像素比例过滤(<1.5% 且置信度 <0.90 判为背面透字)
  • 行聚簇:按垂直中心聚类,同行按左到右拼接,间距 >0.9 倍行高才加空格
  • 页眉页脚:全文词频(≥20% 页重复)+ 上下 12%/15% 区域
  • 标题识别:只有带小数点的编号才升为标题(裸整数多半是符号表里的希腊字母误读)
  • 页码可引用:&lt;!-- page 18 --&gt;

它做不到什么(务必转告下游)

  • 公式会坏:上下标、分式、积分都变成碎片。任何定量结论必须回原书核对
  • 希腊字母最差:φ 变 中,λ 变 入。符号表不能作为符号含义的依据
  • 双栏可能串行
  • 错误是静默的:读起来通顺,但可能错。引用时要能定位到页

用于拆书/蒸馏时,OCR 文本是阅读辅助,不是引用来源。

沙箱提示

子进程常被限制在工作区内写文件。工作区外 PermissionError 是沙箱边界,不是 skill 坏了——输出放进工作区。

开发

node --check lib/startup.js
python -m py_compile skills/scan2md/scripts/scan2md.py

许可

MIT。依赖各自独立:PyMuPDF 是 AGPL-3.0(不随本包分发,由用户安装),RapidOCR 是 Apache-2.0。

常见问题

4 问
答案由本站依据条目字段整理,不引用上游原文
dsh-scan2md 怎么安装?

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

dsh-scan2md 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-scan2md 安全吗?

未标注。

dsh-scan2md 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

工具与能力
按星标排序,可作替代方案

loopx

loopx

LoopX 是面向长周期 Agent 的本地优先控制平面,作为 DSH plugin 为 DeepSeek Harness 提供持久目标、证

未标注验证等级 6,233 星

dsh-startup-screen

dsh-startup-screen

DeepSeek Harness 的启动界面与启动动画插件。

未标注验证等级 633 星

dsh-blender-plugin

dsh-blender-plugin

让 AI 模型通过直连 TCP 通道实时驱动 Blender 的 DSH plugin:15 个工具覆盖视口取帧、任意角度渲染、内循环搜索、

未标注验证等级 211 星

tokenledger

TokenLedger

TokenLedger 为 DeepSeek Harness 提供零配置的 Token 用量记账,自动归属到实际服务请求的中转站,无需凭据即

L5 · 运行验证通过 204 星

deepseek-harness-jev

deepseek-harness-jev

把 TypeSafe Jev 接入 DeepSeek Harness 作为 System One 决策层,为技能与文件选择、任务监督、纠偏和

未标注验证等级 203 星

Qiujiyuantiantian 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。