dshplugin.devDeepSeek Harness Plugins
modlens plugin logo
DeepSeek Harness Plugin

modlens

687
Published by liustack

The first vision plugin for DeepSeek Harness, and the vision bridge for every text-only coding agent. Paste an image, get structured JSON evidence (OCR, layout, semantics).

UI & Designagent-skillsagentic-workflowclaude-codeclaude-skills

Get this plugin

Review the source, then continue to the publisher.

dsh plugin add @liustack/modlens@latest
Get this plugin
Share on X ↗
modlens interface preview

About this plugin

Source snapshot 8/13/2026

ModLens

ModLens

Give a text-only model sight, and just paste the image.

简体中文 · Troubleshooting · Configuration · Output contract · Security · ModSearch (web)

Follow @liustack on X npm Node.js License Not backed by Y Combinator Users unknown

DeepSeek and GLM have no vision capability and cannot read images. ModLens is a plug-in vision engine that gives a text-only model sight. ModLens reads images pasted straight into the chat, no saving to a file and passing a path first.

Talk to us

Issues are welcome any time: open one. And come find me on X: @liustack. What you built with it, which harness you are on, what should come next. New releases land there first, and a proper community space is on the way.

Highlights

🥇 The first plug-in vision plugin for DeepSeek Harness (dsh): one command, npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens, and the text-only DeepSeek model behind dsh reads images through a native read_image tool. For pasted images, pick the "(modlens vision)" model variant the plugin adds to the model selector: pastes are admitted there, converted to evidence before the request, and served by the same DeepSeek route.

Paste an image and it reads it. No saving to a file and passing a path first.

  • Zero-config start. Reuses what Claude Code, Codex, OpenCode, or Pi already have set up: the multimodal models on your machine go straight to work. Nothing at all? Antigravity CLI is a free no-key channel, and a free Gemini key brings a read down to 5-10 seconds.
  • Evidence, not imagination. Full transcription, reading-order layout regions, entity and relation lists. The model quotes specifics.
  • Install once, use everywhere. Verified on real machines in Claude Code, Codex, Pi, and OpenCode.

Installation

Step 1, hand it to your AI. Send it this line:

Install and configure the modlens skill following https://github.com/liustack/modlens/blob/main/INSTALL.md, then run the health check and tell me the result.

The install starts by checking what your machine already has. An existing login in Claude Code, Codex, OpenCode, or Pi can be enough: modlens asks before reusing any of them, and the health check tells you where things stand.

Step 2, only if the health check comes back empty, set up a free engine. The recommended choice is a free Gemini API key (about three minutes at Google AI Studio, no credit card), which also makes every read 5-10 seconds. A free OpenAI-compatible key from another platform works too. To avoid any sign-up, install Antigravity CLI instead, then sign in:

curl -fsSL https://antigravity.google/cli/install.sh | bash
agy                                                           # sign in, then exit

The install also inventories vision reachable through your other local harness CLIs (Codex, OpenCode, Pi) and asks, per harness, whether modlens may reuse it. Granted logins join the engine pool as equals, and every reused read is labeled with whose quota it spent.

Usage

Once installed, just chat. Paste an image or drop a path, ask anything, and the skill triggers on its own: the image goes to a vision engine and the answer comes back grounded in what it read.

See it work

Unedited runs, all driving a text-only DeepSeek-V4-Flash.

A tweet screenshot in the Codex desktop app. It reads the author, the caption, the photo itself (down to what both people are wearing), the timestamp, and every engagement number: 5.4M views, 1.6K replies, 5.7K reposts, 116K likes.

Text-only DeepSeek reading a tweet screenshot in full detail via ModLens

Three images pasted at once. The model reads them one by one, spots that they belong to one visual family, and describes each illustration's content and style.

Three images dropped together, read one by one

The stress test: a scatter plot comparing 128 AI models. It reads both axes, the log scale, the per-provider color coding, the highlighted region, and every DeepSeek model called out with dashed markers. Dense charts are where vision bridges most often fail.

The 128-model scatter plot read in full: axes, log scale, and highlighted region

And the paste path, end to end, in a Claude Code terminal on DeepSeek. The pasted image arrives as a path rather than pixels, the skill triggers on its own, the guard confirms the model truly has no vision, and the slide's full content comes back: titles, layout, background, plus an honestly stated uncertainty about the truncated filename.

The skill triggering on its own in a DeepSeek Claude Code session and reading a pasted slide

Documentation

DocRead it when
Install guideInstalling the skill step by step (written for an agent)
CLI manualThe CLI the skill drives: flags, config, doctor
TroubleshootingA command failed and the message needs decoding
ConfigurationSetting a key, switching providers, fixing config
Output contractParsing the JSON or building on it
Harness setupWiring it into Codex, Claude Code, Pi, or OpenCode
SecurityFile permissions, image content as untrusted input
CHANGELOGFinding what changed in a version

Contributing

ModLens does not accept pull requests. The project is maintained by a single author who reviews every line, which is a deliberate choice for reliability. Two effective ways to contribute:

  • Open an issue. Bugs, suggestions, confusing errors, unclear docs. Issues are read and shape what gets built next.
  • Fork it. Under MIT your copy is fully yours to modify and publish.

Shameless plug

This project runs on LIUSTACK Skills: shaping before you build, coding while you build, dig when it breaks, snapshot when you hand off. Lighter than Superpowers, and stronger.

npx -y skills add liustack/liustack -g

⭐ If it helps, star ModLens and liustack. Stars are how the next developer finds them.

Star History

Star History Chart

Disclaimer

Provided as-is under the MIT License below. The author makes no warranty and gives no endorsement for any particular use, commercial use included. Your use of upstream engines (Antigravity CLI, the Gemini, OpenAI, and Anthropic APIs, and any OpenAI-compatible endpoint) is governed by their own terms and quotas, which you are responsible for.

License

MIT