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

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

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

  1. Скопируйте изображение в буфер обмена (скриншот, изображение браузера и т. д.)
  2. Прикрепите его одним из способов ниже.
  3. Введите свой вопрос и нажмите Enter.
  4. Изображение отображается в виде значка [📎 Изображение #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/Cursor/Windsurf

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

/terminal-setup

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

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

Окружающая среда /вставить Cmd/Ctrl+V /настройка-терминала Заметки
Терминал 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
```<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p> Как проверить, находитесь ли вы на Wayland
```bash
echo $XDG_SESSION_TYPE
# "wayland" = Wayland, "x11" = X11, "tty" = no display server
```</div>
### WSL2

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

Данные буфера обмена передаются в формате PNG в кодировке Base64 через стандартный вывод, поэтому преобразование пути к файлу или временные файлы не требуются.<div class="admonition admonition-info"><p class="admonition-title">ℹ️ Info</p> Примечание WSLg
Если вы используете WSLg (WSL2 с поддержкой графического интерфейса), Hermes сначала пробует путь PowerShell, а затем возвращается к wl-paste. Мост буфера обмена WSLg поддерживает только формат BMP для изображений  Hermes автоматически конвертирует BMP в PNG с помощью Pillow (если он установлен) или команды ImageMagick `convert`.</div>
#### Проверка доступа к буферу обмена WSL2
```bash
# 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» — см. Вспомогательные модели.