title: Vision & Image Paste description: Paste images from your clipboard into the Hermes CLI for multimodal vision analysis. sidebar_label: Vision & Image Paste sidebar_position: 7 lang: ru


Видение и вставка изображений

Агент Hermes поддерживает мультимодальное видение — вы можете вставлять изображения из буфера обмена прямо в интерфейс командной строки и просить агента проанализировать, описать их или поработать с ними. Изображения отправляются в модель в виде блоков контента в кодировке Base64, поэтому их может обрабатывать любая модель с поддержкой машинного зрения.

Как это работает

  1. Скопируйте изображение в буфер обмена (скриншот, изображение браузера и т. д.)
  2. Прикрепите его одним из способов ниже.
  3. Введите свой вопрос и нажмите Enter.
  4. Изображение отображается в виде значка [📎 Image #1] над полем ввода.
  5. При отправке изображение отправляется модели как блок контента видения.

Перед отправкой вы можете прикрепить несколько изображений — каждое получит свой значок. Нажмите Ctrl+C, чтобы удалить все прикрепленные изображения.

Изображения сохраняются в ~/.hermes/images/ как файлы PNG с именами файлов с отметкой времени.

Методы вставки

Способ прикрепления изображения зависит от среды вашего терминала. Не все методы работают везде — вот полная информация:

/paste Команда

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

/paste

Введите /paste и нажмите Enter. Гермес проверяет буфер обмена на наличие изображения и прикрепляет его. Это самый безопасный вариант, когда ваш терминал перезаписывает Cmd+V/Ctrl+V или когда вы скопировали только изображение и нет никакой текстовой полезной нагрузки, вставленной в скобки, которую нужно было бы проверить.

Ctrl+V / Cmd+V

Hermes теперь рассматривает пасту как многослойный поток: - сначала вставьте обычный текст - собственный буфер обмена/резервный текст OSC52, если терминал не доставил текст корректно - прикрепление изображения, когда буфер обмена или вставленная полезная нагрузка преобразуются в изображение или путь к изображению.

Это означает, что вставленные временные пути к скриншотам macOS и URI изображений file://... могут быть прикреплены немедленно, а не храниться в композиторе в виде необработанного текста.

:::предупреждение Если в вашем буфере обмена есть только изображение (без текста), терминалы по-прежнему не смогут напрямую отправлять байты двоичного изображения. Используйте /paste в качестве явного резервного варианта присоединения изображения.

/terminal-setup для VS Code/Курсор/Виндсерфинг

Если вы запустите TUI внутри локального терминала, интегрированного в семейство VS Code, в macOS, Hermes может установить рекомендуемые привязки workbench.action.terminal.sendSequence для лучшей многострочной работы и четности отмены/повтора:

/terminal-setup

Это особенно полезно, когда Cmd+Enter, Cmd+Z или Shift+Cmd+Z перехватываются IDE. Запускайте его только на локальном компьютере, а не внутри сеанса SSH.

Совместимость платформ

Окружающая среда /paste Cmd/Ctrl+V /terminal-setup Заметки
Терминал macOS / iTerm2 н/д Лучший опыт — встроенный буфер обмена + восстановление пути к скриншоту
Терминал Apple н/д Если Cmd+ ←/→/⌫ перезаписывается, используйте резервные клавиши Ctrl+A / Ctrl+E / Ctrl+U
Рабочий стол Linux X11 н/д Требуется xclip (apt install xclip)
Рабочий стол Linux Wayland н/д Требуется wl-paste (apt install wl-clipboard)
WSL2 (Терминал Windows) н/д Использует powershell.exe — дополнительная установка не требуется
VS Code/Курсор/Виндсерфинг (локальный) Рекомендуется для лучшего контроля четности Cmd+Enter/отменить/повторить
VS Code/Курсор/Виндсерфинг (SSH) ❌² ❌² ❌³ Вместо этого запустите /terminal-setup на локальном компьютере
SSH-терминал (любой) ❌² ❌² н/д Удаленный буфер обмена недоступен

² См. SSH и удаленные сеансы ниже. ³ Команда записывает локальные сочетания клавиш IDE, и ее не следует запускать с удаленного хоста.

Настройка для конкретной платформы

macOS

Настройка не требуется. Hermes использует osascript (встроенный в macOS) для чтения буфера обмена. Для повышения производительности дополнительно установите pngpaste:

brew install pngpaste

Линукс (X11)

Установите xclip:

# Ubuntu/Debian
sudo apt install xclip

# Fedora
sudo dnf install xclip

# Arch
sudo pacman -S xclip

Linux (Вэйланд)

Современные настольные компьютеры Linux (Ubuntu 22.04+, Fedora 34+) часто используют Wayland по умолчанию. Установите wl-clipboard:

# Ubuntu/Debian
sudo apt install wl-clipboard

# Fedora
sudo dnf install wl-clipboard

# Arch
sudo pacman -S wl-clipboard

💡 Tip

Как проверить, находитесь ли вы на Wayland
echo $XDG_SESSION_TYPE
# "wayland" = Wayland, "x11" = X11, "tty" = no display server

WSL2

Дополнительная настройка не требуется. Hermes автоматически обнаруживает WSL2 (через /proc/version) и использует powershell.exe для доступа к буферу обмена Windows через System.Windows.Forms.Clipboard .NET. Это встроено во взаимодействие Windows WSL2 — powershell.exe доступно по умолчанию.

Данные буфера обмена передаются в формате PNG в кодировке Base64 через стандартный вывод, поэтому преобразование пути к файлу или временные файлы не требуются.

ℹ️ Info

Примечание WSLg Если вы используете WSLg (WSL2 с поддержкой графического пользовательского интерфейса), Hermes сначала пробует путь PowerShell, а затем возвращается к `wl-paste`. Мост буфера обмена WSLg поддерживает только формат BMP для изображений — Hermes автоматически конвертирует BMP в PNG с помощью Pillow (если он установлен) или команды `convert` ImageMagick.

Проверка доступа к буферу обмена WSL2

# 1. Check WSL detection
grep -i microsoft /proc/version

# 2. Check PowerShell is accessible
which powershell.exe

# 3. Copy an image, then check
powershell.exe -NoProfile -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Clipboard]::ContainsImage()"
# Should print "True"

SSH и удаленные сеансы

Вставка изображения в буфер обмена не полностью работает через SSH. При подключении по SSH к удаленному компьютеру на удаленном хосте запускается интерфейс командной строки Hermes. Инструменты буфера обмена (xclip, wl-paste, powershell.exe, osascript) читают буфер обмена машины, на которой они работают, — то есть удаленного сервера, а не вашего локального компьютера. Таким образом, ваше локальное изображение буфера обмена недоступно с удаленной стороны.

Иногда текст по-прежнему может проходить через вставку терминала или OSC52, но доступ к буферу обмена изображений и временные пути к локальным снимкам экрана остаются привязанными к машине, на которой работает Hermes.

Обходные пути для SSH

  1. Загрузить файл изображения — сохраните изображение локально, загрузите его на удаленный сервер с помощью scp, проводника файлов VSCode (перетаскиванием) или любого другого метода передачи файлов. Затем укажите его по пути. (Команда /attach <filepath> планируется в будущем выпуске.)

  2. Используйте URL-адрес. Если изображение доступно в Интернете, просто вставьте URL-адрес в свое сообщение. Агент может использовать vision_analyze для прямого просмотра любого URL-адреса изображения.

  3. Переадресация X11 — подключитесь к ssh -X для переадресации X11. Это позволит xclip на удаленном компьютере получить доступ к локальному буферу обмена X11. Требуется локально работающий X-сервер (XQuartz в macOS, встроенный в настольные компьютеры Linux X11). Медленно для больших изображений.

  4. Используйте платформу обмена сообщениями. Отправляйте изображения в Hermes через Telegram, Discord, Slack или WhatsApp. Эти платформы изначально обрабатывают загрузку изображений и на них не влияют ограничения буфера обмена/терминала.

Почему терминалы не могут вставлять изображения

Это распространенный источник путаницы, поэтому вот техническое объяснение:

Терминалы представляют собой текстовые интерфейсы. Когда вы нажимаете Ctrl+V (или Cmd+V), эмулятор терминала:

  1. Читает буфер обмена на наличие текстового содержимого.
  2. Обертывает его в escape-последовательности в скобках
  3. Отправляет его приложению через текстовый поток терминала.

Если буфер обмена содержит только изображение (без текста), терминалу нечего отправлять. Для данных двоичного изображения не существует стандартной escape-последовательности терминала. Терминал просто ничего не делает.

Вот почему Hermes использует отдельную проверку буфера обмена — вместо получения данных изображения через событие вставки терминала он вызывает инструменты уровня ОС (osascript, powershell.exe, xclip, wl-paste) напрямую через подпроцесс для независимого чтения буфера обмена.

Поддерживаемые модели

Вставка изображения работает с любой моделью, поддерживающей зрение. Изображение отправляется как URL-адрес данных в кодировке Base64 в формате контента OpenAI Vision:

{
  "type": "image_url",
  "image_url": {
    "url": "data:image/png;base64,..."
  }
}

Большинство современных моделей поддерживают этот формат, включая GPT-4 Vision, Claude (с зрением), Gemini и мультимодальные модели с открытым исходным кодом, обслуживаемые через OpenRouter.

Маршрутизация изображений (модели с поддержкой машинного зрения и только текстовые модели)

Когда пользователь прикрепляет изображение — из буфера обмена CLI, шлюза (фото Telegram/Discord) или любой другой точки входа — Hermes маршрутизирует его в зависимости от того, действительно ли ваша текущая модель поддерживает зрение:

Ваша модель Что происходит с изображением
С возможностью зрения (GPT-4V, Клод со зрением, Близнецы, Qwen-VL, MiMo-VL и т. д.) Отправляется как реальные пиксели с использованием собственного формата изображения поставщика, указанного выше. Нет слоя текстовой сводки.
Только текст (DeepSeek V3, меньшие модели с открытым исходным кодом, старые конечные точки только для чата) Маршрутизируется через вспомогательный инструмент vision_analyze — вспомогательная модель зрения описывает изображение, а текстовое описание внедряется в разговор.

Вы не настраиваете это — Hermes ищет возможности вашей текущей модели в метаданных поставщика и автоматически выбирает правильный путь. Практический эффект: вы можете переключаться между моделями со зрением и без него в середине сеанса, а обработка изображений «просто работает», не меняя рабочий процесс. Текстовые модели получают связный контекст изображения, а не сломанную мультимодальную полезную нагрузку, которую им пришлось бы отвергнуть.

Какая вспомогательная модель обрабатывает путь текстового описания, можно настроить в разделе auxiliary.vision — см. Вспомогательные модели.