Oct 10, 2026
Give a Text-Only Model Sight With the ModLens Vision Plugin
Paste an image into a text-only model and ModLens routes it to a vision engine — six built-in providers and four reusable CLIs behind one failover chain.
Per its README, DeepSeek's flagship chat models — and GLM-5.3 itself — are text-only and cannot read images. ModLens is a plug-in vision engine that fixes exactly that: paste an image, and it goes to a vision engine whose read grounds the answer in what the image actually contains.
Why This Skill Matters
ModLens reads images pasted straight into the chat — no saving to a file and passing a path first. Pasting works two ways: on a text-only model the image lands as a private temp file, its path enters the composer, and the modlens_read_image tool takes over; or you pick a (modlens vision) entry in the model selector and the thumbnail stays visible in your message. The plugin auto-discovers provider routes carrying eligible text-only DeepSeek, GLM, or MiMo Pro models and wraps each one; native vision models like GLM-5.3-Flash are excluded automatically, so a model that already has sight keeps its own paste.
Installation
On DeepSeek Harness (dsh), one command:
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.26.6
Everywhere else, install the skill at user level:
npx -y skills add liustack/modlens --skill modlens --global
Restart the harness, then ask your AI to configure modlens and run its health check — or hand it the install line from the repo's INSTALL.md and let it do the whole thing. If the health check comes back empty, set up a free engine: the recommended choice is a free Gemini API key (about three minutes, no credit card), which also brings every read down to 5-10 seconds. To skip sign-up entirely, install Antigravity CLI and sign in with agy.
Real Workflow: Read a Pasted Screenshot on a Text-Only Model
- Install, restart your harness, and run the health check.
- Paste an image or drop a path and ask anything. The skill triggers on its own, and the answer comes back grounded in the read — full transcription, reading-order layout regions, entity and relation lists, so the model quotes specifics.
- Keep asking. Later questions about the same image do not need another paste.
The README's stress test shows the ceiling: a scatter plot comparing 128 AI models, read down to both axes, the log scale, the per-provider color coding, and every DeepSeek model called out with dashed markers.
The engine pool is what makes this sturdy: six built-in providers (gemini-api, openai, anthropic, antigravity-cli, claude-cli, kimi-cli) plus four agent CLIs whose existing logins can be reused (Codex, OpenCode, Pi, Grok), each behind an explicit consent. Without a pinned provider, every configured engine forms one failover chain — the first good result wins, and meta.attempts records every attempt so a fallback is never silent.
Tips
- The
openaiprovider is a universal socket, not just OpenAI: any OpenAI-compatible endpoint with image input plugs in — qwen-vl via Dashscope, GLM's open platform, SiliconFlow, OpenRouter, or a self-hosted vLLM/Ollama. - Comma-separated API keys rotate on auth, rate-limit, or quota failures; network, 5xx, and parse failures skip remaining keys and keep provider failover.
-p <name>pins exactly one engine with no fallback;modlens config set provider <name>states a preference while keeping the chain behind it.- Reused CLI reads are labeled in
meta.warningswith whose quota they spent, per the README — nothing is silently billed. - Installation is deliberately light: one skill folder (one plugin on dsh), no hooks or wrappers, no harness config changed — uninstalling is deleting that folder.
When Not to Use This
Your model already has native vision — ModLens leaves vision models alone by design and adds nothing for them. You need image generation — this reads images, it does not create them. And its verified surface is specific: the README reports verification on real machines in Claude Code, Codex, Pi, and OpenCode, plus the DeepSeek Harness plugin path; other harnesses are unverified territory.
See the leaderboard for more skills.