ModLens

Скилл, который дает зрение текстовым моделям: изображение по пути или из вставки превращается в структурированный JSON с распознанным текстом, разметкой и смысл

Скилл

Средний риск

Средний уровень ставим, когда инструмент запускает код, ходит в сеть или читает файлы проекта. Перед установкой посмотрите, что именно он делает.

Почему такой уровень

  • Запускает CLI и ходит в сеть к выбранному провайдеру зрения
  • Может переиспользовать залогиненные CLI и тратить их квоту
Все причины и проверки

liustack/modlens

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/modlens

Определит агенты на машине, проверит риск и зафиксирует версию.

Другие способы установки

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a claude-code -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .claude/skills
cp -R "$tmp/skills/modlens" .claude/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a cursor -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .agents/skills
cp -R "$tmp/skills/modlens" .agents/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a github-copilot -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .github/skills
cp -R "$tmp/skills/modlens" .github/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a codex -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .agents/skills
cp -R "$tmp/skills/modlens" .agents/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a gemini-cli -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .agents/skills
cp -R "$tmp/skills/modlens" .agents/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .devin/skills
cp -R "$tmp/skills/modlens" .devin/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Бывший Windsurf.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a cline -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .cline/skills
cp -R "$tmp/skills/modlens" .cline/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a roo -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .roo/skills
cp -R "$tmp/skills/modlens" .roo/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Форк Roo Code, папки .roo те же.

Выполните в терминале в папке проекта

npx skills add liustack/modlens --skill modlens -a opencode -y

Утилита skills ставит текущую версию из репозитория. Чтобы скилл работал во всех проектах, добавьте флаг -g.

Без сторонних утилит, из коммита ffeee3e
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .agents/skills
cp -R "$tmp/skills/modlens" .agents/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .agents/skills
cp -R "$tmp/skills/modlens" .agents/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Выполните в терминале в папке проекта

tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/liustack/modlens.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /skills/modlens/
git -C "$tmp" checkout ffeee3e32de1c05315e334be97c9f087242fe2f3
mkdir -p .agents/skills
cp -R "$tmp/skills/modlens" .agents/skills/modlens

Команды для macOS и Linux, на Windows выполните их в Git Bash.

Понадобится: Node.js

Сверено с репозиторием 24 сент. 2026, коммит ffeee3e.

Текст для агента

Установи скилл командой npx -y skills add liustack/modlens --skill modlens --global, перезапусти агент, затем настрой провайдера зрения и запусти проверку здоровья modlens doctor.

Другие способы из описания автора
npx -y skills add liustack/modlens --skill modlens --global

Установка скилла на уровне пользователя через skills.sh. После перезапуска агента попросите его настроить modlens и запустить проверку здоровья.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

ModLens подключает зрение к агентам, чей основной чат работает на текстовой модели без мультимодальности, например DeepSeek или GLM. Когда в разговоре появляется путь или ссылка на картинку, плейсхолдер вставленного изображения или просьба разобрать скриншот, скилл сам вызывает CLI modlens и возвращает разбор в виде JSON: полная транскрипция, области разметки в порядке чтения, сущности и связи. Источников зрения несколько: ключ Gemini, любой endpoint с протоколом OpenAI chat completions, ключ Anthropic, бесплатный Antigravity CLI, а также переиспользование уже залогиненных Claude Code, Codex, OpenCode, Pi и Kimi. Без закрепленного провайдера все настроенные складываются в одну цепочку с автоматическим переключением при сбое, каждая попытка пишется в метаданные ответа.

Для кого. Для тех, кто работает в текстовых агентах и хочет разбирать скриншоты, схемы и документы без перехода на мультимодальную модель.

Подходит, если

  • Модель в вашем агенте не видит изображения, а разобрать скриншот или схему нужно
  • Хотите вставлять картинку прямо в чат и получать распознанный текст и разметку
  • Нужно строгое описание изображения по фактам, а не догадки модели

Не подходит, если

  • Модель уже мультимодальная и сама видит изображение
  • Нужен веб-поиск или загрузка страниц, а не разбор картинки
  • Нет ни одного доступного провайдера зрения и настроить его негде

Пример запроса к агенту

Разбери этот скриншот интерфейса и перечисли, что на нем написано и где расположено

Ограничения

Скиллу нужен хотя бы один рабочий источник зрения. Часть провайдеров недоступна из России без VPN: Gemini, Anthropic, OpenAI. При этом подходит любой endpoint с протоколом OpenAI chat completions, включая доступные площадки, например DashScope с qwen-vl, платформу GLM или SiliconFlow, поэтому вопрос доступности решается выбором провайдера. Ключи API это ваши расходы и лимиты, а переиспользование чужого залогиненного CLI помечается в предупреждениях ответа, чтобы было видно, чья квота потрачена. Нужен Node 22.19+ или bun и сетевой доступ.

Как отключить. Удалите папку скилла modlens из каталога скиллов агента. На DeepSeek Harness удалите плагин @liustack/modlens командой плагинов dsh. После этого агент возвращается к обычному поведению.

Проверка безопасности

  • Запускает CLI и ходит в сеть к выбранному провайдеру зрения
  • Может переиспользовать залогиненные CLI и тратить их квоту

Коротко о README

README описывает ModLens как мост зрения для текстовых моделей и агентов для кода. Он читает изображение по пути или прямо из вставки в чат и отдает структурированный JSON с транскрипцией, разметкой и сущностями. Ставится одной командой как плагин DeepSeek Harness или как скилл через skills.sh в Claude Code, Codex, OpenCode и Pi, а удаление сводится к удалению одной папки. Зрение берется из шести встроенных провайдеров и четырех переиспользуемых CLI, которые складываются в единую цепочку с переключением при сбое. Лицензия MIT.

SKILL.md

---
name: modlens
description: "Plug-in vision for text-only models. Hard rule: when a file path or URL with an image extension (.png, .jpg, .jpeg, .webp, .gif, .heic, .heif) appears anywhere in the conversation (typed by the user, injected as a `[Image: source: <path>]` line, or inside a tag) and you cannot see that image's content, run this skill on it before any other approach: no self-built OCR, no PIL, no tesseract. Also triggers on pasted-image placeholders such as `[Image #1]` and `[Unsupported Image]`. If you can actually see the image, do not use this skill. When unsure, run `modlens guard` before the first read of a session: a deny verdict means the active model has native vision and must read the image itself. 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)."
compatibility: Requires network access and one of node 22.19+/npx, bun/bunx, or a preinstalled modlens binary on PATH.
allowed-tools: Bash
---

# ModLens — Vision Bridge Skill

Use this skill when an image is in play and you cannot see its content: a path or URL with an image extension (the path alone is the trigger, hand it to modlens, never Read the bytes or build your own OCR), a placeholder like `[Image #1]`, `[Unsupported Image]`, or a `[Image: source: <path>]` line, or the user asking to configure modlens. Do not use it for web search or fetch (that is `modsearch`), or for images you can already see natively.

Частые вопросы

Какой провайдер выбрать в России?

Проще всего endpoint с протоколом OpenAI chat completions на доступной площадке, например DashScope с qwen-vl или платформа GLM. Их ключ и baseUrl задаются через modlens config set.

Обязательно ли платить за ключ?

Нет. Можно взять бесплатный ключ Gemini, поставить бесплатный Antigravity CLI без ключа или переиспользовать уже залогиненный Claude Code либо Kimi.

Выбор редакции

Открытый личный AI-ассистент на своем компьютере: отвечает в Telegram, Slack, Discord и WhatsApp, расширяется скиллами и плагинами

CLIВысокий риск390,7 тыс.Звезды репозитория
Выбор редакции

Самообучающийся агент от Nous Research: терминал, мессенджеры, cron-задачи и скиллы, которые он пишет сам

CLIВысокий риск249,8 тыс.Звезды репозитория
Выбор редакции

Открытый агент для программирования в терминале и на десктопе с режимами разработки и планирования

CLIВысокий риск210,6 тыс.Звезды репозитория
Выбор редакции

Открытая библиотека промптов с плагином Claude Code, MCP-сервером и CLI: поиск, получение и улучшение промптов и скиллов из агента

ПлагинСредний риск171,5 тыс.Звезды репозитория
Foxx AIModLens

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.