截图自动 OCR 识别并合并存入 Obsidian 笔记
28.3/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wangzhanchao883/dsh-plugin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 73 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 43 处,展示前 42 条)
- 写入本地文件dsh-screenshot-capture/clipboard.mjs:39
mkdirSync(this.workDir, { recursive: true }); - 读取本地文件dsh-screenshot-capture/clipboard.mjs:40
if (existsSync(this.logPath)) this.offset = statSync(this.logPath).size; - 读取本地文件dsh-screenshot-capture/clipboard.mjs:40
if (existsSync(this.logPath)) this.offset = statSync(this.logPath).size; - 写入本地文件dsh-screenshot-capture/clipboard.mjs:44
writeFileSync(cfgFile, JSON.stringify({ - 执行外部命令来自配置/变量dsh-screenshot-capture/clipboard.mjs:61
this.child = spawn(POWERSHELL, args, { - 执行外部命令固定命令dsh-screenshot-capture/clipboard.mjs:118
const killer = spawn("taskkill", ["/PID", String(child.pid), "/T", "/F"], { - 读取本地文件dsh-screenshot-capture/clipboard.mjs:128
if (!existsSync(this.logPath)) return; - 读取本地文件dsh-screenshot-capture/clipboard.mjs:129
const size = statSync(this.logPath).size; - 读取本地文件dsh-screenshot-capture/clipboard.mjs:133
const fd = readFileSync(this.logPath); - 读取本地文件dsh-screenshot-capture/config.mjs:39
if (existsSync(configPath())) { - 读取本地文件dsh-screenshot-capture/config.mjs:40
file = JSON.parse(readFileSync(configPath(), "utf8")); - 写入本地文件dsh-screenshot-capture/config.mjs:50
mkdirSync(configDir(), { recursive: true }); - 写入本地文件dsh-screenshot-capture/config.mjs:51
writeFileSync(configPath(), JSON.stringify(config, null, 2), "utf8"); - 写入本地文件dsh-screenshot-capture/config.mjs:75
for (const dir of folders) mkdirSync(dir, { recursive: true }); - 删除本地文件dsh-screenshot-capture/core.mjs:23
try { unlinkSync(path); } catch { } - 删除本地文件dsh-screenshot-capture/core.mjs:31
try { unlinkSync(path); } catch { } - 删除本地文件dsh-screenshot-capture/core.mjs:45
try { unlinkSync(path); } catch { } - 读取密钥环境变量dsh-screenshot-capture/ocr.mjs:12
const apiKey = config.ocr?.apiKey || process.env.DASHSCOPE_API_KEY; - 读取本地文件dsh-screenshot-capture/ocr.mjs:15
const b64 = readFileSync(imagePath).toString("base64"); - 发起网络请求dsh-screenshot-capture/ocr.mjs:24
const res = await fetch(endpoint, { - 写入本地文件dsh-screenshot-capture/organize.mjs:75
mkdirSync(join(config.vaultPath, config.knowledgeFolder, cat), { recursive: true }); - 写入本地文件dsh-screenshot-capture/organize.mjs:76
writeFileSync(notePath, body, "utf8"); - 读取本地文件dsh-screenshot-capture/organize.mjs:99
if (!existsSync(dir)) return []; - 读取本地文件dsh-screenshot-capture/organize.mjs:100
return readdirSync(dir) - 读取本地文件dsh-screenshot-capture/organize.mjs:112
if (existsSync(indexPath)) { - 读取本地文件dsh-screenshot-capture/organize.mjs:113
text = readFileSync(indexPath, "utf8"); - 写入本地文件dsh-screenshot-capture/organize.mjs:118
writeFileSync(indexPath, text, "utf8"); - 写入本地文件dsh-screenshot-capture/organize.mjs:123
mkdirSync(dir, { recursive: true }); - 写入本地文件dsh-screenshot-capture/organize.mjs:143
writeFileSync(path, lines.join("\n"), "utf8"); - 读取本地文件dsh-screenshot-capture/organize.mjs:149
if (!existsSync(dir)) return []; - 读取本地文件dsh-screenshot-capture/organize.mjs:150
return readdirSync(dir) - 写入本地文件dsh-screenshot-capture/storage.mjs:28
copyFileSync(srcPath, dest); - 读取本地文件dsh-screenshot-capture/storage.mjs:40
if (!existsSync(path)) { - 写入本地文件dsh-screenshot-capture/storage.mjs:41
writeFileSync(path, NOTE_HEADER.replace("{date}", date), "utf8"); - 读取本地文件dsh-screenshot-capture/storage.mjs:63
const existing = readFileSync(path, "utf8"); - 写入本地文件dsh-screenshot-capture/storage.mjs:65
writeFileSync(path, updated, "utf8"); - 读取本地文件dsh-screenshot-capture/storage.mjs:72
if (!existsSync(path)) return null; - 读取本地文件dsh-screenshot-capture/storage.mjs:73
const text = readFileSync(path, "utf8"); - 写入本地文件dsh-screenshot-capture/storage.mjs:82
writeFileSync(path, updated, "utf8"); - 读取本地文件dsh-screenshot-capture/storage.mjs:110
return existsSync(path) ? readFileSync(path, "utf8") : ""; - 读取本地文件dsh-screenshot-capture/storage.mjs:110
return existsSync(path) ? readFileSync(path, "utf8") : ""; - 写入本地文件dsh-screenshot-capture/storage.mjs:119
renameSync(src, dest);
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 截图自动OCR识别
DeepSeek Harness 插件合集:自研 DSH 插件(截图、OCR、Obsidian)。
README
由 DeepSeek 最新模型翻译生成DSH 插件合集
本人自研的 DeepSeek Harness(DSH)插件统一仓库。
每个插件一个子目录,按需扩展。
仓库结构
dsh-plugin/
├── LICENSE # MIT
├── README.md
└── dsh-screenshot-capture/ # 「指哪拍哪」截图入库插件
已收录插件
| 插件 | 子目录 | 功能 | 状态 |
| 截图入库 | dsh-screenshot-capture/ | 剪贴板监听 + 系统级悬浮窗(复制/存文档/存图片)+ 通义千问 OCR + Obsidian 按天合并笔记 + 晚间 AI 整理打双链 | 可用(Win) |
安装(DSH 插件)
每个插件都是标准 DSH 插件,安装方式见对应插件 README。通用流程:
用本地目录安装
dsh plugin --profile add ./dsh-screenshot-capture
或用 npm 包(若已发布)
dsh plugin --profile add dsh-screenshot-capture
说明
- 本仓库仅存放代码与文档,不含任何密钥;各家插件用到的 API key 一律走环境变量。
- 插件运行在 Windows(依赖系统自带 PowerShell 5.1)。
- 欢迎提 issue / 建议;本仓库遵循 MIT 许可证。
License
MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wangzhanchao883/dsh-plugin
截图自动 OCR 识别并合并存入 Obsidian 笔记
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目