@liustack/modlens 2.7.10 → 2.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  DeepSeek-V4-Flash gives you a lot of model for very little money: fast, cheap, capable, and blind. It is not just DeepSeek either. Any text-only model running inside Codex, Claude Code, Pi, or OpenCode hits the same wall: you throw it a screenshot of an error and it sees nothing.
13
13
 
14
- ModLens gives it sight, and **you just paste**. Every other bridge makes you save the image to a file and then mention the path in the chat. ModLens pulls the pasted image back out of session storage instead. What comes back is not "this is a screenshot of an error", it is structured evidence: full OCR text, layout regions in reading order, semantic entities, visual clues, all of it quotable.
14
+ ModLens gives it sight, and **you just paste**. Every other bridge makes you save the image to a file and then mention the path in the chat. ModLens pulls the pasted image back out of session storage instead. What comes back is not "this is a screenshot of an error", it is evidence you can quote: every word in the image transcribed, the layout cut into regions in reading order, and the entities and relations on screen listed separately.
15
15
 
16
16
  No model swap, no prompt surgery, no local proxy. It starts with no key at all.
17
17
 
@@ -52,7 +52,7 @@ All four harnesses are verified on real machines: Claude Code pinpoints the exac
52
52
  | :-- | :-- | :-- | :-- |
53
53
  | Your chosen model | has to change | stays | stays |
54
54
  | An image pasted into the chat | visible if the model supports it | out of reach, save a file and report the path | handled directly |
55
- | What you get back | the model's own reading | usually a description | OCR text, layout regions, semantics, visual clues |
55
+ | What you get back | the model's own reading | usually a description | full transcription, layout regions, entities and relations, visual clues |
56
56
  | Where it cannot read | may invent | may invent | says so in `uncertainty` |
57
57
  | Cost | multimodal model pricing | usually per API call | agy's free quota, or a free Gemini key |
58
58
  | Setup | change config, change model | install a server, edit config | one CLI or one skill |
@@ -193,7 +193,7 @@ Pointing OpenCode at DeepSeek takes two lines of setup: `opencode auth login`, p
193
193
  ## Why a bridge instead of a multimodal model?
194
194
 
195
195
  - **Keep your model.** You picked DeepSeek-V4-Flash (or gpt-oss, or whatever else) for its price and its reasoning, not its eyesight. ModLens adds sight without touching that choice.
196
- - **Evidence beats pixels.** Text models reason best over structured text, not raw pixels. ModLens hands them OCR plus layout plus semantics, already decoded, not a base64 blob.
196
+ - **Evidence beats pixels.** Text models reason best over structured text, not raw pixels. ModLens hands them the transcribed words, the segmented layout, and the extracted meaning, not a base64 blob.
197
197
  - **Engines die, the bridge survives.** v1 ran on Gemini CLI's free tier until Google shut it down in June 2026. v2 moved to its successor, Antigravity CLI, behind the same provider interface, so the next engine swap costs one file, not a rewrite.
198
198
 
199
199
  ModSearch, ModLens's sibling project, plays the same trick for web search and page fetching: [liustack/modsearch](https://github.com/liustack/modsearch).
package/README.zh-CN.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  DeepSeek-V4-Flash 碗大又好吃,速度快、便宜、能打,唯独没有多模态。不止它,任何纯文本模型跑在 Codex、Claude Code、Pi、OpenCode 里,都撞同一堵墙:你甩过去一张报错截图,它看不见。
13
13
 
14
- ModLens 给它装上视力,而且**你直接粘贴就行**。别的方案都要你先把图存成文件、再在对话里报一句路径,ModLens 直接从会话存储里把粘贴的图捞回来。回来的不是一句「这是一张报错截图」,是结构化证据:OCR 全文、按阅读顺序排好的版面区块、语义实体、视觉线索,模型能引用具体内容。
14
+ ModLens 给它装上视力,而且**你直接粘贴就行**。别的方案都要你先把图存成文件、再在对话里报一句路径,ModLens 直接从会话存储里把粘贴的图捞回来。回来的不是一句「这是一张报错截图」,是能引用的证据:图里的字一句不落地抄下来,版面按阅读顺序切成区块,画面里的实体和关系单列一份。
15
15
 
16
16
  模型不用换,提示词不用改,本地不装代理。零 key 就能开跑。
17
17
 
@@ -52,7 +52,7 @@ ModLens 走的是另一条路。图片字节在发给模型之前,早被 harne
52
52
  | :-- | :-- | :-- | :-- |
53
53
  | 你选的模型 | 得换掉 | 不用换 | 不用换 |
54
54
  | 粘贴进对话的图 | 模型支持就能看 | 接不住,得先存文件报路径 | 直接接住 |
55
- | 拿到手的是什么 | 模型自己的理解 | 通常一段描述 | OCR 全文、版面区块、语义、视觉线索 |
55
+ | 拿到手的是什么 | 模型自己的理解 | 通常一段描述 | 全文转录、版面区块、实体关系、视觉线索 |
56
56
  | 读不准的地方 | 可能编 | 可能编 | 进 `uncertainty`,明说读不准 |
57
57
  | 花费 | 多模态模型的价格 | 多数按 API 计费 | agy 免费额度,或免费 Gemini key |
58
58
  | 上手 | 改配置换模型 | 装 server、改配置 | 一个 CLI 或一个 skill |
@@ -193,7 +193,7 @@ OpenCode 接 DeepSeek 只要两步:`opencode auth login` 选 DeepSeek 贴上 k
193
193
  ## 为什么外挂,而不是换多模态模型?
194
194
 
195
195
  - **模型不用换。** 你选 DeepSeek-V4-Flash(或 gpt-oss,或别的什么)图的是价格和推理能力,不是视力。ModLens 只加视力,不碰这个选择。
196
- - **证据强过像素。** 文本模型最会在结构化文本上推理,不是盯着原始像素。ModLens 递过去的是 OCR 加版面加语义,都是解好码的证据,不是一坨 base64。
196
+ - **证据强过像素。** 文本模型最擅长在结构化文本上推理,不是盯着原始像素。ModLens 递过去的是转录好的文字、切好的版面、拆好的语义,不是一坨 base64。
197
197
  - **引擎会死,桥不会死。** v1 跑在 Gemini CLI 免费档上,2026 年 6 月被 Google 一刀切停掉。v2 换到继任者 Antigravity CLI,还是同一个 provider 接口,下次再换引擎,改一个文件就行,不用重写。
198
198
 
199
199
  姊妹项目 ModSearch 用同一招补上联网搜索和网页抓取:[liustack/modsearch](https://github.com/liustack/modsearch)。
package/dist/main.js CHANGED
@@ -1478,7 +1478,7 @@ function recoverPastedImages(options = {}) {
1478
1478
  return result;
1479
1479
  }
1480
1480
  const program = new Command();
1481
- program.name("modlens").description("Plug-in vision for text-only LLMs: image in, structured JSON evidence out").version("2.7.10");
1481
+ program.name("modlens").description("Plug-in vision for text-only LLMs: image in, structured JSON evidence out").version("2.7.11");
1482
1482
  program.command("analyze", { isDefault: true }).description("Analyze an image into structured JSON evidence (default command)").requiredOption("-i, --input <path|url>", "Input image path or https URL").option("-o, --output <path>", "Write result JSON to a file").option("-m, --model <name>", "Provider model name").option("-p, --provider <name>", `Vision provider (${listProviders().join(", ")})`).option("--prompt <text>", "Extra focus for this image").option("--timeout <ms>", "Provider timeout in milliseconds", "180000").option("--provider-bin <path>", "Provider binary path (default: agy)").option("--workdir <path>", "Working directory for the provider").action(async (options) => {
1483
1483
  try {
1484
1484
  const timeoutMs = Number.parseInt(options.timeout, 10);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liustack/modlens",
3
- "version": "2.7.10",
3
+ "version": "2.7.11",
4
4
  "description": "Plug-in vision for text-only LLMs, powered by the free Antigravity CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: modlens
3
- description: "Plug-in vision for text-only models. Use whenever the user shares an image (local path, screenshot, photo, chart, document scan, or image URL) and the active model cannot see images or has no vision tool. Runs the modlens CLI to convert the image into structured JSON evidence: OCR text, layout, semantics, visual clues. Also use when the user asks how to install, configure, or switch modlens providers (Gemini API key, OpenAI-compatible endpoints, Claude API or Claude Code CLI)."
3
+ description: "Plug-in vision for text-only models. Use whenever the user shares an image (local path, screenshot, photo, chart, document scan, or image URL) and the active model cannot see images or has no vision tool. Runs the modlens CLI to convert the image into structured JSON evidence: every word transcribed, layout regions, semantics, visual clues. Also use when the user asks how to install, configure, or switch modlens providers (Gemini API key, OpenAI-compatible endpoints, Claude API or Claude Code CLI)."
4
4
  allowed-tools:
5
5
  - Bash
6
6
  ---
@@ -11,7 +11,7 @@ Use this skill when:
11
11
 
12
12
  - The user provides an image path or image URL and asks anything about it
13
13
  - The active model has no native vision (text-only model in a coding agent)
14
- - You need OCR text, layout, or chart/document structure as evidence before reasoning
14
+ - You need the text inside an image, its layout, or a chart's structure as evidence before reasoning
15
15
  - The user asks how to configure modlens, get an API key for it, or switch its provider: follow `references/configure.md` and run the commands for them
16
16
 
17
17
  Do not use this skill for:
@@ -91,7 +91,7 @@ Harnesses rarely hand you a clean path. First identify which harness you are in,
91
91
  Top level: `{ image, provider, result, meta }`. Inside `result`:
92
92
 
93
93
  - `summary`: one-paragraph description of the image
94
- - `ocr.full_text` + `ocr.lines[]`: transcribed text evidence
94
+ - `ocr.full_text` + `ocr.lines[]`: every word in the image, transcribed (the field keeps the familiar `ocr` name, though a vision model does the reading, not an OCR engine)
95
95
  - `layout.regions[]`: typed blocks (`title`, `paragraph`, `table`, `chart`, `code`, ...) in reading order
96
96
  - `semantics`: scene, intent, entities, relations
97
97
  - `visual`: colors and style clues