鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-maclens

苹果设备端 Vision 工具:本地 OCR(含中文)、图像分类、人脸检测、文档版面分析与综合描述,100% 离线、无需 API key,支持长截图切片。

视觉多模态
访问 GitHub
文档README

dsh-maclens 🍎🔍

将苹果设备端 Vision 框架桥接进 DeepSeek Harness(dsh),提供本地工具:OCR 文字识别、图像分类、人脸检测、文档版面分析——100% 离线,无需 API key,无常驻进程。

🔒 隐私每个像素都留在你的 Mac 上。无网络、无上传、无遥测。
⚡ 速度常见截图 OCR 亚秒级完成(神经网络引擎)。
🇨🇳 语言原生支持 zh-Hans 及 30+ 种识别语言。
🖼️ 长图slice 切片识别超长截图,小字不再丢失。
🧩 零依赖Swift CLI 随 npm 包内置,安装无需构建。

👤 人类读者 — 30 秒上手

▼
sh
复制代码
# 1. 安装到你的 dsh profile dsh plugin --profile desktop add dsh-maclens # 2. 重启 DSH,然后直接对模型说: # "OCR 这张截图:/Users/me/Desktop/shot.png"

模型可以调用的五个工具:

工具一句话说明
maclens_ocr"读出这张图的所有文字" — 每行文字 + 置信度 + 坐标框
maclens_classify"这是什么类型的图?" — 文档、图表、照片…
maclens_faces"图里有人吗?" — 人脸框 + 数量
maclens_document"解析这一页" — OCR + 左右双栏版面
maclens_describe"一次性全给我" — OCR + 分类 + 人脸 + 版面

maclens 与 VLM 怎么选: maclens 是 CV 工具箱——负责转写、分类、检测,但不会描述"这张图讲了什么"。需要开放式理解?搭配 VLM 桥(如 modlens + qwen-vl)。需要快速、免费、私密的 OCR/检测?用 maclens。


🤖 Agent 读者 — 精确契约

一句话摘要

▼
text
复制代码
插件: dsh-maclens(npm),dsh plugin add 安装 运行时: macOS 14+,需要 Xcode Command Line Tools(Swift 6+) 工具: maclens_ocr | maclens_classify | maclens_faces | maclens_document | maclens_describe 输入: 绝对本地图片路径(string)— 每个工具必填 输出: stdout 上一个 JSON 对象;失败时 {"error": "..."} + 退出码 1 二进制: 包内 bin/maclens(自动 chmod),否则 MACLENS_BIN,否则 PATH 无网络: CLI 零网络请求

安装(精确命令)

▼
sh
复制代码
# 从 npm 安装 — 含预编译二进制,无需构建: dsh plugin --profile desktop add dsh-maclens # 从 git 检出 — 先构建 Swift 桥: cd dsh-maclens && bash scripts/build.sh # 生成 bin/maclens dsh plugin --profile desktop add ./dsh-maclens

二进制解析顺序:包内 bin/maclens → $MACLENS_BIN → swift/.build/release/MaclensBridge → PATH 上的 maclens。插件在解析时会把二进制 chmod 为 0755(npm tarball 会丢执行位)。

工具参数

五个工具都接受 path(必填,string)。OCR 系工具额外支持:

字段类型默认含义
languagesstringzh-Hans,en-US逗号分隔的识别语言
maxLinesnumber—限制返回的 OCR 行数(超大截图)
slicebooleanfalse把长图切成重叠条带再 OCR
sliceHeightnumber4096切片条带高度(像素)
topnumber5仅 classify:返回几个分类

输出契约

maclens_ocr 返回:

▼
json
复制代码
{ "task": "ocr", "language": ["zh-Hans", "en-US"], "full_text": "跨境增长研究室\n从一个问题,抵达一个决定。", "lines": [ { "text": "跨境增长研究室", "confidence": 1.0, "bbox": { "x": 0.055, "y": 0.519, "width": 0.517, "height": 0.144 } } ], "line_count": 2, "truncated": false, "sliced": false }
  • bbox 是归一化(0–1),原点左上(已从 Vision 的右下原点转换,直观易用)。
  • slice: true 时,长图切成重叠条带、逐条 OCR、拼回整图坐标,重叠区的重复行去重。输出追加 "sliced": true 与 "slice_count": N。
  • maclens_document = ocr + layout.columns(左右)+ layout.image_dimensions。
  • maclens_describe = ocr + classification.observations + faces + layout。
  • maclens_faces → faces[] + face_count;maclens_classify → observations[](identifier、confidence)。

错误契约

退出码含义
0成功
1运行时错误 — stdout 是 {"error": "..."}(如 file does not exist: <path>)
2用法/未知任务 — stdout 是 {"error": "usage: ..."}

原始 CLI(dsh 外调试用)

▼
sh
复制代码
bin/maclens ocr --image /path/to/img.png bin/maclens classify --image /path/to/img.png --top 3 bin/maclens faces --image /path/to/img.png bin/maclens document --image /path/to/img.png --slice bin/maclens describe --image /path/to/img.png --slice --top 2

🏗️ 工作原理

▼
text
复制代码
dsh(纯文本模型) └─ maclens_* 工具(lib/index.js) └─ bin/maclens(Swift CLI,每次调用 spawn — 无常驻进程、无端口) └─ Apple Vision:VNRecognizeTextRequest / VNClassifyImageRequest / VNDetectFaceRectanglesRequest ← 设备端、离线

🧪 开发

▼
sh
复制代码
cd swift && swift build -c release swift test --package-path swift # 6 个行为测试

CI(GitHub Actions):macOS 上 Swift release 构建 + 冒烟测试;Ubuntu 上插件加载 + 打包内容检查。main 分支全绿。

📄 文档

  • AGENTS.md — agent 专用快速参考。
  • CHANGELOG.md — 版本历史。
  • SECURITY.md — 安全模型与报告。

许可

MIT — 见 LICENSE。

视觉多模态

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:Harzva/dsh-maclens

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-web-ui#packages/dsh-tool-describe-image
给纯文本模型补视觉:describe_image 把本地路径/URL/附件图片交给可配置的 OpenAI 兼容视觉端点,进会话的只有返回文本。
dsh-image-viewer
增强 DSH 原生图片查看体验,支持指针中心缩放、拖动、画廊、下载、键盘操作和图片区域备注(Beta)。
dsh-appshots
给 DSH Desktop 用的窗口截图,支持 macOS 和 Windows:macOS 按两边 Command、Windows 按两边 Ctrl(或点输入框旁相机)捕获当前前台窗口并附加到会话,同时把可读的窗口文字注入为隐藏上下文。
dsh-vision-pro-bridge
视觉桥:贴图先经 deepseek-v4-flash-vision-exp 转写为文字,再交给纯文本的 deepseek-v4-pro 回答,零第三方依赖。
dsh-tool-vision
通过 inspect_image 工具将本地图片或 HTTP(S) 图片链接发送至配置的 OpenAI 兼容视觉端点,并将文字结果带回对话。