@liustack/modlens
Vision bridge for text-only models: paste an image, get structured JSON evidence (OCR, layout, semantics).
Install
dsh plugin --profile web add @liustack/modlens
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | — |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<p align="center">
<img src="https://raw.githubusercontent.com/liustack/modlens/main/assets/banner.jpg" width="100%" alt="ModLens" />
</p>
<h1 align="center">ModLens</h1>
<p align="center"><b>为纯文本模型补上视觉能力,直接粘贴图片就能识别。</b></p>
<p align="center">🥇 <b>全网最强的 DeepSeek Harness(dsh)视觉插件</b> 🥇</p>
<p align="center">
<a href="./README.md">English</a> ·
<a href="skills/modlens/references/configure.zh-CN.md">配置</a> ·
<a href="docs/troubleshooting.zh-CN.md">故障排查</a> ·
<a href="docs/security.zh-CN.md">安全</a> ·
<a href="https://github.com/liustack/modsearch"><b>🔍 ModSearch(DSH 最强免费联网搜索插件)</b></a>
</p>
<p align="center">
<a href="https://x.com/liustack"><img src="https://img.shields.io/badge/follow-%40liustack-black?style=flat-square&logo=x&logoColor=white" alt="Follow @liustack on X"></a>
<a href="https://www.npmjs.com/package/@liustack/modlens"><img src="https://img.shields.io/npm/v/@liustack/modlens?style=flat-square&label=npm&color=cb3837" alt="npm"></a>
<a href="https://nodejs.org"><img src="https://img.shields.io/node/v/@liustack/modlens?style=flat-square" alt="Node.js"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License"></a>
<img src="https://img.shields.io/badge/Not%20backed%20by-Y%20Combinator-FF6600?style=flat-square&logo=ycombinator&logoColor=white" alt="Not backed by Y Combinator">
<img src="https://img.shields.io/badge/users-unknown-lightgrey?style=flat-square" alt="Users unknown">
</p>
DeepSeek 的主力对话模型和 GLM-5.3 本体仍是纯文本,无法读图。GLM-5.3-Flash 已是原生多模态。ModLens 借助外挂视觉引擎,为纯文本模型补上视觉能力。ModLens 支持直接粘贴图片识别,无需先保存成文件再提供路径。
交流
有问题随时提issue。推荐你关注公众号 liustack,也欢迎你来 X 上聊:@liustack。你用它做了什么、在哪个 harness 上跑、接下来该做什么,都会在公众号和 X 同步更新。社群正在筹备中。
亮点
🥇 全网最强的 DeepSeek Harness(dsh)外挂视觉识别插件:一条命令即刻安装 npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.27.2。更多安装与更新细节参考 [配置手册](docs/harness-setup.zh-CN.md) 。如果用不惯命令行,也想想玩玩 DSH,推荐食用全网最轻量级的 DeepSeek Harness 桌面版封装 <a href="https://github.com/liustack/aimanager"><b> AIManager</b></a>,零代码零配置起手,一键帮你安装所有依赖环境。
DeepSeek Harness 粘贴识图有两种玩法。
① 直接粘贴 贴进来的图片自主转换成文件路径进输入框(与 OpenCode、Pi 同款交互),modlens_read_image 工具接手读图。
② 切到带 (modlens vision) 后缀的模型变体(选择器有记忆,选一次就行)再粘贴:缩略图直接可见、所见即所得,体验更接近 Codex App。变体由插件自动发现生成:每条承载纯文本 DeepSeek 或 GLM 模型的 provider 路由各得一组包装条目(默认安装下就是 DeepSeek-V4-Flash (modlens vision) 和 DeepSeek-V4-Pro (modlens vision),装了 opencode-go、zai 等额外路由的机器会各自多出一组),两家自己的视觉型号(含 GLM-5.3-Flash)自动排除。走哪条通路由 host 依据真实模型元数据逐个裁决:只有被元数据确认纯文本的模型才会被接管,确认不了的一律不动,视觉模型因此保留原生贴图([细节](docs/harness-setup.zh-CN.md))。
所有 Harness 直接粘贴图片识别 无需先保存成文件再提供路径。
需要快捷键把屏幕截进 DeepSeek Harness 时,用独立插件 dsh-screenshot。
- 全网最轻量。 不用 hook,不套壳,不跑本地代理进程,不改任何 harness 配置的一行字:在 skill 类 harness 里它就是一个 skill 文件夹,在 dsh 里就是一个插件。卸载等于删个文件夹,你的 agent 立刻回到原样。
- 零配置起手。 复用 Claude Code、Codex、OpenCode、Pi 已有配置,直接复用你本机的其他多模态模型。如果你本机什么都没安装?Antigravity CLI 是免 key 的免费通道,配一个免费 Gemini key 可将识别耗时降至 5 到 10 秒。也支持所有主流的 OpenAI 兼容格式 API key。
- 多个密钥用英文逗号分隔,鉴权、限流或配额失败时自动轮换。 其他失败会跳过剩余密钥,并继续走现有的 provider 故障转移。
- 基于证据,而非想象。 全文转录、按阅读顺序划分的版面区块、实体与关系列表,模型引用的是具体内容。
- 一次安装,多端可用。 Claude Code、Codex、Pi、OpenCode 均经真机验证。
在其他 Harness 中安装
方式一,通过 skills.sh 一条命令安装:
npx -y skills add liustack/modlens --skill modlens --global
这会把 modlens skill 安装到用户级目录。重启 Harness 后,让 AI 配置
modlens 并运行体检即可。
方式二,把安装交给你的 AI。 把这句话发给它:
按 https://github.com/liustack/modlens 的 INSTALL.md 安装并配置 modlens skill,完成后运行体检并把结果告诉我。
安装会先盘点你机器上已有的东西。Claude Code、Codex、OpenCode 或 Pi 里任何一个已有的登录态都可能就够了:modlens 复用前一定先征得你同意,体检报告会说清现状。
两种方式完成后,只在体检两手空空时,才需要你配一个免费引擎。 推荐免费的 Gemini api key(到 Google AI Studio 领取,约三分钟,无需信用卡),配上后每次识别 5 到 10 秒。其他平台的免费 openai 兼容 key 也行。想完全免注册就装 Antigravity CLI,然后完成登录:
curl -fsSL https://antigravity.google/cli/install.sh | bash agy # 浏览器完成登录后退出
安装还会盘点本机其他 harness CLI(Codex、OpenCode、Pi)里可触达的视觉能力,并逐个询问是否允许 modlens 复用。获准的登录态与你自己配的引擎平级入池,每次复用都会在结果里标明花的是谁的额度。
DeepSeek Harness(dsh)用户不走 skill 流程,本包就是原生 dsh 插件:
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.27.2
装完即有 modlens_read_image 工具,选「(modlens vision)」模型变体即可直接粘贴识图。引擎配置同样在 ~/.modlens,详见[宿主接入](docs/harness-setup.zh-CN.md)。
命令行不是唯一入口。dsh 设置页的「插件 → 插件配置」里有一张 ModLens 卡片(dsh 0.1.7 起改到侧栏的「插件」页,在「已安装」里点开 @liustack/modlens):切换引擎,勾选 auto 模式可以复用本机哪些 CLI,在网页上点几下保存就生效。
用法
装好之后不需要记任何命令。正常聊天,粘贴图片或给出图片路径,提问即可,skill 自动触发:图片交给视觉引擎,答案基于读到的内容返回。贴一次,后面追问同一张图不用再贴。
视觉引擎:六个内置 provider,四家可复用 CLI,一条故障转移链
ModLens 不绑定任何单一视觉服务。视觉来源一共十个:六个内置 provider(配好任意一个就能用),加四家本机 agent CLI 的登录可以复用。先看内置的:
Provider · 需要什么 · 单次识别耗时 · 适合谁
gemini-api · 免费 Gemini key(三分钟领取,无需信用卡) · 5-10 秒 · 推荐默认
openai · 任意 OpenAI 兼容端点(key + baseUrl + model) · 5-10 秒 · qwen-vl、GLM、自建网关
anthropic · Anthropic API key · 5-10 秒 · 手上已有 key 的机器
antigravity-cli · 免费的 agy CLI,浏览器登录一次,无需 key · 15-45 秒 · 完全免注册起步
claude-cli · 已登录的 Claude Code · 20-45 秒 · 复用现有 Claude 订阅
kimi-cli · 已登录的 Kimi Code · 20-45 秒 · 复用现有 Kimi 订阅,需显式点名
不钉死 provider 时,所有配好的引擎组成一条故障转移链:API 快车道先试,a
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::94,最后更新 2026-10-23