Dev & Engineering

ModLens — Plug-in Vision for Text-Only Models

Gives text-only coding models sight: paste an image, get structured JSON evidence — OCR, layout, and semantics — via a vision bridge.

67/ 100
Recommended

Generally reliable with disclosed limitations; trial as directed and keep a rollback path.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 4.8k
Last updated
14d ago
License
MIT
ocrvision-bridgeimage-to-deepseek-harness
+3gemini-apiprovider-failovermultimodal

What does this skill do, and when should you use it?

ModLens is an Agent Skill that converts images into structured JSON evidence so text-only models like DeepSeek and GLM flagship chat models can read what they cannot see. It runs the modlens CLI to produce full transcription, reading-order layout regions, entity/relation semantics, and honest uncertainty notes. Ten vision sources feed one automatic failover chain: six built-in providers (Gemini, any OpenAI-compatible endpoint, Anthropic, Antigravity CLI, claude-cli, kimi-cli) plus reusable logins from Codex, OpenCode, Pi, and Grok. On DeepSeek Harness it installs as a single plugin; on Claude Code, Codex, Pi, and OpenCode it is a single skill folder — no hooks, no proxy, no config edits. It is single-maintainer software that does not accept pull requests.

When an image path/URL (.png, .jpg, .jpeg, .webp, .gif, .heic, .heif) or a pasted-image placeholder like [Image #1] appears and the model cannot see the image, the skill triggers a guard check (modlens guard) to confirm the model lacks native vision, then calls modlens to send the image to a configured vision engine. It returns JSON with result.summary, result.ocr.full_text, result.layout.regions, and result.semantics; meta.attempts and meta.warnings record every engine tried and whose quota was spent. It supports -p to pin a provider, --timeout, -o output files, and --prompt focus hints, plus modlens doctor for health checks and modlens config for settings. Runtime resolution order: modlens on PATH (≥3.26.1), then npx, then bunx, with version pinned at 3.26.1.

Good fit
  • A developer using text-only DeepSeek flagships for coding who wants to paste screenshots, mockups, or error dialogs into chat and have the model actually read them.
  • Users with existing paid subscriptions in Claude Code, Codex, Pi, or OpenCode who want to reuse that vision quota at zero extra cost.
  • Users who refuse to sign up for anything: install the free Antigravity CLI as a no-key vision channel.
  • Teams holding OpenAI-compatible endpoints (qwen-vl on DashScope, GLM open platform, SiliconFlow, self-hosted vLLM/Ollama) who want a unified vision pipeline.
  • Anyone needing dense charts read precisely — e.g., a scatter plot with log axes — where the model must quote specifics instead of guessing.

How do you install this skill?

Before you use it
  • This is a static source-only review; no commands were executed, so all runtime behavior (CLI output, guard verdicts, paste recovery) is unverified.
  • recover-paste reads local Claude Code / Pi / OpenCode session storage to extract pasted images; confirm you accept this local data access, and delete recovered files as the docs instruct.
  • Core vision capability depends on overseas services (Gemini, Anthropic, Antigravity) that typically require a proxy from mainland China; configure proxy before enabling gemini-api and similar routes.
  • Gemini free-tier data may be used by Google to improve products; for sensitive images prefer an OpenAI-compatible endpoint with your own key or another route.
  • Docs reference unreleased or unverifiable model versions (DeepSeek-V4, GLM-5.3, etc.); treat those compatibility claims as unproven until observed.
  • The publisher is an unverified individual who accepts no pull requests, so maintenance and security response rest on a single author; pin version 3.26.1 and note the SECURITY.md reporting channel.
Before you start
Your agent needs
  • Shell / CLI
  • Network access
  • Local filesystem
Install first
  • Node.js 22.19+ (or Bun), or a preinstalled modlens binary
  • at least one vision engine (e.g. Gemini API key, OpenAI-compatible endpoint, or Antigravity CLI)

Other harnesses: install via skills.sh with npx -y skills add liustack/modlens --skill modlens --global, restart, then ask your AI to follow the repo's INSTALL.md, configure modlens, and run the health check — or simply paste that instruction to your AI. DeepSeek Harness: npx -y @deepseek-ai/dsh plugin --profile web add @liustack/[email protected]. If the health check comes back empty, set up a free engine: a free Gemini API key (~3 minutes at Google AI Studio, no card) or Antigravity CLI for zero signup (curl -fsSL https://antigravity.google/cli/install.sh | bash, then run agy to sign in).

Generic route: install into Claude Code manually (macOS / Linux)
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/liustack/modlens.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/skills/modlens" ~/.claude/skills/
rm -rf "$tmp"

Generated from the source repository and skill path; it copies only this skill's folder. If the author's install steps above differ, follow those first. To scope it to one project, replace ~/.claude/skills with that project's .claude/skills.

How do you use this skill?

Try saying

Once installed, send your agent any of these to trigger it:

  • read this image with modlens

Once installed, just chat: paste an image or drop a path and ask anything; the skill triggers on its own. You can also explicitly ask the AI to "read this image with modlens" or to install/switch modlens providers. Internally the loop is: modlens guard --model <id> on first read to confirm no native vision, modlens -i <path-or-url> to read the image once, then answer from the JSON summary/ocr/layout/semantics fields, quoting specifics. Later questions about the same image do not need another paste.

What are this skill's strengths and limitations?

Pros
  • Lightest possible footprint: one skill folder on skill harnesses, one plugin on dsh; uninstalling is deleting a folder. No hooks, no local proxy, no harness config changes.
  • Zero-config start: reuses existing Claude Code, Codex, OpenCode, and Pi logins; a free Gemini key brings reads down to 5-10 seconds.
  • Evidence, not imagination: full transcription, reading-order layout, entity/relation lists, explicit uncertainty flags, and a hard rule against fabricating image content.
  • Ten vision sources with automatic failover; meta.attempts makes every fallback traceable and reused quota is labeled in meta.warnings.
Limitations
  • Requires network and an external vision service: with no key and no CLI logins it cannot work at all.
  • The Antigravity CLI and agent-CLI lanes take 15-45 seconds per read, far slower than the API lanes.
  • The only zero-signup option requires installing an extra tool (Antigravity CLI); reusing other harness logins needs explicit per-harness grants.
  • Capability claims in the README come from the author's own unedited demos; there is no independent test suite or third-party benchmark, and the single maintainer does not accept PRs.
  • It is strictly a bridge for text-only models: if the active model has native vision (e.g., GLM-5.3-Flash), the guard blocks this skill by design.

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
ModLens — Plug-in Vision for Text-Only Models this page 67 · Recommended ★ 4.8k 14d ago MIT
Gemini API Enterprise Development Guide ✓ Google · Official 49 · Use with care ★ 22k 7d ago Apache-2.0
Azure AI Vision Image Analysis ✓ Microsoft · Official 55 · Use with care ★ 2.7k 3mo ago MIT
Azure AI Vision Image Analysis for Java ✓ Microsoft · Official 51 · Use with care ★ 2.7k 3mo ago MIT
deAPI AI Media Skill 45 · Not recommended ★ 22 4mo ago MIT

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Recommended
67/ 100 5-point scale 3.4 / 5
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
1Trust19 / 25 · 3.8/5

Evidence shows strong least-privilege design: allowed-tools is only Bash, config written 0600, hidden-prompt key entry avoids shell history and chat, reuse of other harness logins requires per-harness explicit consent, kimi-cli never auto-joins the failover chain to protect subscriptions, every reused read is labeled in meta.warnings, and image content is declared untrusted input. Deductions: recover-paste reads local session storage (~/.claude/projects etc.), sensitive access whose real behavior is unverified; Gemini free-tier data-use caveat is a single sentence; data-flow disclosure partially rests on docs/security.md not fully present in the evidence.

2Reliability12 / 20 · 3.0/5

SKILL.md handles failure paths meticulously: structured exit-78 diagnosis, precise guard exit-code semantics, schema-failure retry strategy, timeout handling, 'never fabricate image content' rule; the launcher script is self-consistent (version resolution, node 22.19 floor, POSIX sh). Deductions: static review executes nothing, so the core CLI (@liustack/[email protected]) behavior is unreproduced; a test suite and 3-OS CI exist but the actual test content covering the skill's key paths is not in this evidence; behavior depends on external services and third-party CLI login states with partly unverified failure modes.

3Adaptability12 / 15 · 4.0/5

Audience and scenarios are very clear: text-only models (DeepSeek, GLM) needing vision; trigger conditions are precise (image-extension paths, [Image #1] placeholders, guard verdicts) with explicit exclusions for native-vision models and web search; a guard prevents false invocation on vision models; Chinese documentation provided. Deductions: core function depends on overseas services (Gemini, Anthropic, Antigravity) whose reachability from mainland China relies on proxy configuration, with no dedicated mainland direct-connect guidance; heavy references to future/unreleased model versions (DeepSeek-V4, GLM-5.3, August 2026) that cannot be verified.

4Convention12 / 15 · 4.0/5

Excellent information architecture: concise SKILL.md, layered references, bilingual docs, clear MIT license, pinned version 3.26.1 with stamp tests preventing drift, CHANGELOG-bound releases via OIDC trusted publishing, explicit single-maintainer update model. Deductions: unverified individual publisher with no institutional backing; 'no pull requests' limits community maintenance paths; referenced docs (docs/security.md, actual CHANGELOG content) not verifiable within this evidence.

5Effectiveness7 / 15 · 2.3/5

The core task (image to structured JSON evidence) is fully designed: explicit OCR/layout/semantics output contract, multi-provider failover, and genuine differentiation in zero-config reuse of local logins and paste recovery. README carries multiple claimed-live demo screenshots. Deductions: static review cannot confirm output is directly usable; demos are author-supplied; marketing superlatives ('全网最强', '🥇 most capable') are uncorroborated; real effectiveness depends heavily on the configured vision model.

6Verifiability5 / 10 · 2.5/5

Considerable auditable primary material: full launcher source, layered docs, pinned version, CI workflows (3-OS matrix plus release guards), npm provenance publishing. Deductions: nothing executed; effectiveness claims (demo screenshots) not independently corroborated; references to future model names unverifiable; no evidence of actual CI runs or test coverage of the skill's key paths in this material.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Sep 18, 2026 Reviewed revision a1923d016c2b Review evidence[1][2][3][4][5][6][7][8][9][10][11][12][13]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

Related skills