Hermes Agent 支持 多模态视觉——你可以将剪贴板中的图像直接粘贴到 CLI 中,并要求智能体对其进行分析、描述或处理。图像将作为 Base64 编码的内容块发送给模型,因此任何具备视觉能力的模型都可以对其进行处理。
- 将图像复制到剪贴板(如截图、浏览器图片等)。
- 使用下述方法之一添加附件。
- 输入你的问题并按回车键。
- 输入框上方会显示一个
[📎 Image #1]徽章。 - 提交后,图像将作为视觉内容块(vision content block)发送给模型。
- 你可以在发送前添加多张图像——每张图像都会获得独立的徽章。按
Ctrl+C可清除所有已添加的图像。 - 图像会作为 PNG 文件保存到
~/.hermes/images/目录下,文件名包含时间戳。
如何添加图像取决于你的终端环境。并非所有方法在所有环境下都有效——以下是详细分类:
/paste 命令
Section titled “/paste 命令”最可靠的显式图像添加备份方案。
/paste输入 /paste 并按回车。Hermes 会检查剪贴板中的图像并将其添加。当你的终端重写了 Cmd+V/Ctrl+V 键位,或者你只复制了图像且没有可供检测的括号粘贴(bracketed-paste)文本负载时,这是最安全的选择。
Ctrl+V / Cmd+V
Section titled “Ctrl+V / Cmd+V”Hermes 现在将粘贴视为一个分层流程:
- 优先进行 普通文本粘贴。
- 如果终端未能清晰传递文本,则回退至 原生剪贴板 / OSC52 文本。
- 当剪贴板或粘贴的负载解析为图像或图像路径时,执行图像添加。
这意味着粘贴的 macOS 截图临时路径和 file://... 图像 URI 可以立即作为附件添加,而不会作为原始文本留在输入框中。
/terminal-setup(针对 VS Code / Cursor / Windsurf)
Section titled “/terminal-setup(针对 VS Code / Cursor / Windsurf)”如果你是在 macOS 上的 VS Code 家族集成终端中运行 TUI,Hermes 可以安装推荐的 workbench.action.terminal.sendSequence 绑定,以实现更好的多行输入以及撤销/重做支持:
/terminal-setup当 Cmd+Enter、Cmd+Z 或 Shift+Cmd+Z 被 IDE 拦截时,此功能尤其有用。请仅在本地机器上运行——不要在 SSH 会话中运行。
| 环境 | /paste | Cmd/Ctrl+V | /terminal-setup | 备注 |
|---|---|---|---|---|
| macOS Terminal / iTerm2 | ✅ | ✅ | n/a | 最佳体验 —— 支持原生剪贴板 + 截图路径恢复 |
| Apple Terminal | ✅ | ✅ | n/a | 如果 Cmd+←/→/⌫ 被重写,请使用 Ctrl+A / Ctrl+E / Ctrl+U 备份方案 |
| Linux X11 桌面 | ✅ | ✅ | n/a | 需要 xclip (apt install xclip) |
| Linux Wayland 桌面 | ✅ | ✅ | n/a | 需要 wl-paste (apt install wl-clipboard) |
| WSL2 (Windows Terminal) | ✅ | ✅ | n/a | 使用 powershell.exe —— 无需额外安装 |
| VS Code / Cursor / Windsurf (本地) | ✅ | ✅ | ✅ | 推荐使用以获得更好的 Cmd+Enter / 撤销 / 重做支持 |
| VS Code / Cursor / Windsurf (SSH) | ❌² | ❌² | ❌³ | 应改为在本地机器上运行 /terminal-setup |
| SSH 终端 (任何) | ❌² | ❌² | n/a | 无法访问远程剪贴板 |
- ² 参见下方的 SSH 与远程会话
- ³ 该命令会写入本地 IDE 快捷键绑定,不应在远程主机上运行
特定平台设置
Section titled “特定平台设置”无需设置。Hermes 使用 macOS 内置的 osascript 读取剪贴板。如需更快的性能,可选择安装 pngpaste:
brew install pngpasteLinux (X11)
Section titled “Linux (X11)”安装 xclip:
# Ubuntu/Debiansudo apt install xclip
# Fedorasudo dnf install xclip
# Archsudo pacman -S xclipLinux (Wayland)
Section titled “Linux (Wayland)”现代 Linux 桌面(Ubuntu 22.04+、Fedora 34+)通常默认使用 Wayland。安装 wl-clipboard:
# Ubuntu/Debiansudo apt install wl-clipboard
# Fedorasudo dnf install wl-clipboard
# Archsudo pacman -S wl-clipboard无需额外设置。Hermes 会自动检测 WSL2(通过 /proc/version),并使用 powershell.exe 通过 .NET 的 System.Windows.Forms.Clipboard 访问 Windows 剪贴板。这是 WSL2 Windows 互操作功能的一部分——powershell.exe 默认可用。
剪贴板数据通过 stdout 以 Base64 编码的 PNG 格式传输,因此不需要文件路径转换或临时文件。
验证 WSL2 剪贴板访问
# 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"SSH 与远程会话
Section titled “SSH 与远程会话”剪贴板图像粘贴无法完全在 SSH 上工作。 当你通过 SSH 登录到远程机器时,Hermes CLI 运行在远程主机上。剪贴板工具(xclip、wl-paste、powershell.exe、osascript)读取的是它们运行所在的机器的剪贴板——即远程服务器,而非你的本地机器。因此,远程端无法访问你本地的剪贴板图像。
文本有时仍能通过终端粘贴或 OSC52 进行跨机传递,但图像剪贴板访问和本地截图临时路径仍然受限于运行 Hermes 的机器。
SSH 的变通方案
Section titled “SSH 的变通方案”- 上传图像文件 —— 在本地保存图像,通过
scp、VSCode 文件资源管理器(拖拽)或任何文件传输方法将其上传到远程服务器。然后通过路径引用它。(计划在未来版本中推出/attach <filepath>命令。) - 使用 URL —— 如果图像可以在线访问,只需在消息中粘贴 URL 即可。智能体可以直接使用
vision_analyze查看任何图像 URL。 - X11 转发 —— 使用
ssh -X连接以转发 X11。这允许远程机器上的xclip访问你本地的 X11 剪贴板。需要在本地运行 X 服务器(macOS 上为 XQuartz,Linux X11 桌面已内置)。传输大图时速度较慢。 - 使用即时通讯平台 —— 通过 Telegram、Discord、Slack 或 WhatsApp 将图像发送给 Hermes。这些平台原生支持图像上传,不受剪贴板/终端限制的影响。
为什么终端无法粘贴图像
Section titled “为什么终端无法粘贴图像”这是一个常见的困惑点,以下是技术层面的解释:
终端是基于文本的界面。当你按下 Ctrl+V(或 Cmd+V)时,终端模拟器会执行以下操作:
- 读取剪贴板中的文本内容
- 将其封装在括号粘贴(bracketed paste)转义序列中
- 通过终端的文本流将其发送给应用程序
如果剪贴板中只包含图像(没有文本),终端就没有任何内容可以发送。目前还没有针对二进制图像数据的标准终端转义序列。因此,终端干脆什么都不做。
这就是为什么 Hermes 使用了独立的剪贴板检查机制——它不通过终端粘贴事件接收图像数据,而是直接通过子进程调用操作系统层级的工具(osascript、powershell.exe、xclip、wl-paste)来独立读取剪贴板。
图像粘贴适用于任何具备视觉能力的模型。图像会以 OpenAI 视觉内容格式,作为 Base64 编码的数据 URL 发送:
{ "type": "image_url", "image_url": { "url": "data:image/png;base64,..." }}大多数现代模型都支持这种格式,包括 GPT-4 Vision、Claude(带视觉功能)、Gemini 以及通过 OpenRouter 提供的开源多模态模型。
图像路由(视觉模型 vs 纯文本模型)
Section titled “图像路由(视觉模型 vs 纯文本模型)”当用户添加图像时——无论是通过 CLI 剪贴板、网关(Telegram/Discord 照片)还是任何其他入口点——Hermes 会根据你当前的模型是否支持视觉功能来路由该图像:
| 你的模型 | 图像的处理方式 |
|---|---|
| 具备视觉能力 (GPT-4V, Claude with vision, Gemini, Qwen-VL, MiMo-VL 等) | 作为真实像素,使用上文所述的厂商原生图像内容格式发送。不包含文本摘要层。 |
| 纯文本模型 (DeepSeek V3, 小型开源模型, 旧版仅限聊天的端点) | 通过 vision_analyze 辅助工具进行路由——由辅助视觉模型描述图像,并将文本描述注入对话中。 |
你无需进行配置——Hermes 会在厂商元数据中查询你当前模型的分析能力,并自动选择正确的路径。实际效果是:你可以在会话中途切换视觉模型和非视觉模型,而图像处理会始终保持“正常工作”,无需更改工作流。纯文本模型会获得关于图像的连贯上下文,而不是因无法处理多模态载荷而报错。
由哪款辅助模型来处理文本描述路径,可以在 auxiliary.vision 下进行配置——详见 辅助模型 章节。