Vision
На этой странице Hermes Agent поддерживает мультимодальное зрение — вы можете вставлять изображения из буфера обмена прямо в CLI и просить агента проанализировать, описать или работать с ними. Изображения отправляются модели в виде блоков контента, закодированных в base64, поэтому любая модель, поддерживающая зрение, может их обработать.
Как это работает¶
- Скопируйте изображение в буфер обмена (скриншот, изображение в браузере и т. д.)
- Прикрепите его одним из способов ниже
- Наберите свой вопрос и нажмите Enter
- Изображение появится в виде значка
[📎 Изображение #1]над строкой ввода - После отправки изображение передаётся модели как блок контента для зрения
Вы можете прикрепить несколько изображений перед отправкой — каждое получит свой значок. Нажмите Ctrl+C, чтобы очистить все прикреплённые изображения.
Изображения сохраняются в ~/.hermes/images/ как PNG-файлы с именами, содержащими временные метки.
Способы вставки¶
Способ прикрепления изображения зависит от вашего терминального окружения. Не все методы работают везде — вот полная информация:
Команда /paste¶
Самый надёжный явный способ вставки изображения. [code] /paste
[/code]
Введите /paste и нажмите Enter. Hermes проверяет буфер обмена на наличие изображения и прикрепляет его. Это самый безопасный вариант, когда ваш терминал перехватывает Cmd+V/Ctrl+V или когда вы скопировали только изображение, и нет текстовых данных вставки для анализа.
Ctrl+V / Cmd+V¶
Hermes обрабатывает вставку как многоуровневый процесс: * сначала обычная вставка текста * затем резервный вариант — родной буфер обмена / OSC52, если терминал не передал текст корректно * затем прикрепление изображения, если буфер обмена или данные вставки содержат изображение или путь к нему
Это означает, что вставленные временные пути скриншотов macOS и URI изображений file://... могут прикрепляться сразу, вместо того чтобы оставаться в редакторе как обычный текст.
warning
Если в вашем буфере обмена только изображение (нет текста), терминалы всё равно не могут напрямую передавать бинарные данные изображения. Используйте /paste как явный резервный способ вставки изображения.
/terminal-setup для VS Code / Cursor / Windsurf¶
Если вы запускаете TUI во встроенном терминале семейства VS Code на macOS, Hermes может установить рекомендуемые привязки workbench.action.terminal.sendSequence для улучшенной поддержки многострочного ввода, отмены и повтора действий:
[code]
/terminal-setup
[/code]
Это особенно полезно, когда Cmd+Enter, Cmd+Z или Shift+Cmd+Z перехватываются IDE. Запускайте эту команду только на локальной машине, а не внутри SSH-сессии.
Совместимость с платформами¶
Окружение| /paste| Cmd/Ctrl+V| /terminal-setup| Примечания
|---|---|---|---|---
macOS Terminal / iTerm2| ✅| ✅| Н/П| Лучший опыт — родной буфер обмена + восстановление путей скриншотов
Apple Terminal| ✅| ✅| Н/П| Если Cmd+←/→/⌫ перехватывается, используйте Ctrl+A / Ctrl+E / Ctrl+U
Linux X11 desktop| ✅| ✅| Н/П| Требуется xclip (apt install xclip)
Linux Wayland desktop| ✅| ✅| Н/П| Требуется wl-paste (apt install wl-clipboard)
WSL2 (Windows Terminal)| ✅| ✅| Н/П| Использует powershell.exe — дополнительная установка не требуется
VS Code / Cursor / Windsurf (локально)| ✅| ✅| ✅| Рекомендуется для лучшей поддержки Cmd+Enter / отмены / повтора
VS Code / Cursor / Windsurf (SSH)| ❌²| ❌²| ❌³| Запустите /terminal-setup на локальной машине
SSH-терминал (любой)| ❌²| ❌²| Н/П| Удалённый буфер обмена недоступен
² См. «SSH и удалённые сессии» ниже ³ Команда изменяет локальные привязки IDE и не должна запускаться с удалённого хоста
Настройка под конкретную платформу¶
macOS¶
Настройка не требуется. Hermes использует osascript (встроенная утилита macOS) для чтения буфера обмена. Для более быстрой работы можно дополнительно установить pngpaste:
[code]
brew install pngpaste
[/code]
Linux (X11)¶
Установите xclip:
[code]
# Ubuntu/Debian
sudo apt install xclip
# Fedora
sudo dnf install xclip
# Arch
sudo pacman -S xclip
[/code]
Linux (Wayland)¶
Современные Linux-десктопы (Ubuntu 22.04+, Fedora 34+) часто используют Wayland по умолчанию. Установите wl-clipboard:
[code]
# Ubuntu/Debian
sudo apt install wl-clipboard
# Fedora
sudo dnf install wl-clipboard
# Arch
sudo pacman -S wl-clipboard
[/code]
Как проверить, используете ли вы Wayland
[code]
echo $XDG_SESSION_TYPE
# "wayland" = Wayland, "x11" = X11, "tty" = нет сервера отображения
[/code]
WSL2¶
Дополнительная настройка не требуется. Hermes автоматически определяет WSL2 (через /proc/version) и использует powershell.exe для доступа к буферу обмена Windows через .NET System.Windows.Forms.Clipboard. Это встроенная функция взаимодействия WSL2 с Windows — powershell.exe доступен по умолчанию.
Данные буфера обмена передаются в виде PNG, закодированного в base64, через stdout, поэтому преобразование путей к файлам или временные файлы не требуются.
Примечание о WSLg
Если вы используете WSLg (WSL2 с поддержкой GUI), Hermes сначала пытается использовать PowerShell, а затем переключается на wl-paste. Мост буфера обмена WSLg поддерживает только формат BMP для изображений — Hermes автоматически конвертирует BMP в PNG с помощью Pillow (если установлен) или команды ImageMagick convert.
Проверка доступа к буферу обмена WSL2¶
[code]
# 1. Проверка определения WSL
grep -i microsoft /proc/version
# 2. Проверка доступности PowerShell
which powershell.exe
# 3. Скопируйте изображение, затем проверьте
powershell.exe -NoProfile -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Clipboard]::ContainsImage()"
# Должно вывести "True"
[/code]
SSH и удалённые сессии¶
Вставка изображений из буфера обмена через SSH работает не полностью. Когда вы подключаетесь по SSH к удалённой машине, CLI Hermes запускается на удалённом хосте. Инструменты для работы с буфером обмена (xclip, wl-paste, powershell.exe, osascript) читают буфер обмена той машины, на которой они запущены, — то есть удалённого сервера, а не вашего локального компьютера. Таким образом, ваше локальное изображение из буфера обмена недоступно на удалённой стороне.
Текст иногда может быть передан через терминальную вставку или OSC52, но доступ к изображениям в буфере обмена и локальные временные пути скриншотов остаются привязанными к машине, на которой запущен Hermes.
Обходные пути для SSH¶
- Загрузите файл изображения — Сохраните изображение локально, загрузите его на удалённый сервер через
scp, проводник VSCode (перетаскивание) или любой другой способ передачи файлов. Затем укажите путь к нему. (Команда/attach <путь_к_файлу>запланирована в одном из будущих релизов.) - Используйте URL — Если изображение доступно онлайн, просто вставьте URL в своё сообщение. Агент может использовать
vision_analyzeдля просмотра любого URL изображения напрямую. - X11-форвардинг — Подключайтесь с помощью
ssh -Xдля проброса X11. Это позволитxclipна удалённой машине получить доступ к вашему локальному X11-буферу обмена. Требует запущенного X-сервера локально (XQuartz на macOS, встроенный на Linux X11-десктопах). Медленно для больших изображений. - Используйте платформу обмена сообщениями — Отправляйте изображения Hermes через Telegram, Discord, Slack или WhatsApp. Эти платформы обрабатывают загрузку изображений нативно и не зависят от ограничений буфера обмена и терминала.
Почему терминалы не могут вставлять изображения¶
Это частая причина путаницы, поэтому вот техническое объяснение: Терминалы — это текстовые интерфейсы. Когда вы нажимаете Ctrl+V (или Cmd+V), эмулятор терминала: 1. Читает из буфера обмена текстовое содержимое 2. Оборачивает его в escape-последовательности bracketed paste 3. Отправляет приложению через текстовый поток терминала
Если буфер обмена содержит только изображение (без текста), терминалу нечего отправлять. Не существует стандартной терминальной escape-последовательности для бинарных данных изображения. Терминал просто ничего не делает.
Именно поэтому Hermes использует отдельную проверку буфера обмена — вместо получения данных изображения через событие вставки в терминале, он напрямую вызывает инструменты уровня ОС (osascript, powershell.exe, xclip, wl-paste) через подпроцесс для независимого чтения буфера обмена.
Поддерживаемые модели¶
Вставка изображений работает с любой моделью, поддерживающей зрение. Изображение отправляется в виде data URL, закодированного в base64, в формате контента OpenAI для зрения:
[code]
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,..."
}
}
[/code] Большинство современных моделей поддерживают этот формат, включая GPT-4 Vision, Claude (с поддержкой зрения), Gemini и opensource мультимодальные модели, доступные через OpenRouter.
Маршрутизация изображений (модели со зрением vs текстовые модели)¶
Когда пользователь прикрепляет изображение — из буфера обмена CLI, шлюза (Telegram/Discord фото) или любой другой точки входа — Hermes маршрутизирует его в зависимости от того, поддерживает ли ваша текущая модель зрение:
Ваша модель| Что происходит с изображением
|---|---
С поддержкой зрения (GPT-4V, Claude with vision, Gemini, Qwen-VL, MiMo-VL и др.)| Отправляется как реальные пиксели, используя родной формат контента провайдера, указанный выше. Без слоя текстового описания.
Только текст (DeepSeek V3, небольшие opensource модели, старые чат-модели)| Маршрутизируется через вспомогательный инструмент vision_analyze — вспомогательная модель зрения описывает изображение, и текстовое описание вставляется в разговор.
Вам не нужно это настраивать — Hermes проверяет возможности вашей текущей модели в метаданных провайдера и автоматически выбирает правильный путь. Практический эффект: вы можете переключаться между моделями со зрением и без зрения в середине сессии, и обработка изображений «просто работает» без изменения вашего рабочего процесса. Текстовые модели получают связный контекст об изображении, а не повреждённый мультимодальный payload, который они были бы вынуждены отклонить.
Какая вспомогательная модель обрабатывает путь текстового описания, настраивается в разделе auxiliary.vision — см. Вспомогательные модели.
* Как это работает
* Способы вставки
* Команда /paste
* Ctrl+V / Cmd+V
* /terminal-setup для VS Code / Cursor / Windsurf
* Совместимость с платформами
* Настройка под конкретную платформу
* macOS
* Linux (X11)
* Linux (Wayland)
* WSL2
* SSH и удалённые сессии
* Обходные пути для SSH
* Почему терминалы не могут вставлять изображения
* Поддерживаемые модели
* Маршрутизация изображений (модели со зрением vs текстовые модели)