Vision and Image Generation
- Attach a clipboard image via /paste or Ctrl+V and locate where images are saved locally
- Explain how Hermes routes images differently to vision-capable vs text-only models
- Work around the SSH clipboard limitation using file transfer, URLs, X11 forwarding, or messaging platforms
- Choose an appropriate image generation model based on speed, cost, and whether text rendering quality matters
- Request images conversationally with orientation control through the unified interface
Part One: Getting Images Into a Conversation
No new credential is needed for this part -- pasting and analyzing images uses whichever model provider you already configured in Hermes Agent Fundamentals.
Hermes supports pasting clipboard images directly into the CLI. The most reliable explicit method is the /paste command -- type it and press Enter, and Hermes detects and attaches whatever image is on your clipboard. The more casual route is Ctrl+V or Cmd+V, which Hermes treats as a layered flow: it tries normal text paste first, then falls back to clipboard image detection if there is no text to paste.
Attached images show up as [???? Image #1] badges in the conversation and are saved to ~/.hermes/images/ as timestamped PNG files -- you have a local record of every image you have shared with the agent.
If you are working from VS Code, Cursor, or Windsurf on macOS, /terminal-setup installs IDE keybinding recommendations that improve multiline input and undo/redo behavior alongside paste support.
How Images Are Sent and Routed
Images are encoded as base64 content blocks and sent to the model in OpenAI vision content format. Hermes routes intelligently based on what the active model can actually handle: vision-capable models receive the raw pixels directly, while text-only models instead receive a description generated by the auxiliary vision_analyze tool. This means switching models mid-conversation does not break image handling -- it just changes how the image gets represented to whichever model is currently active.
The SSH Limitation
If you are connected to Hermes over SSH, remote clipboard access is simply not available -- there is no way around this, it is a fundamental limitation of how clipboards work over a remote connection. Workarounds: transfer the image file directly, reference a URL instead of a local file, use X11 forwarding if your setup supports it, or fall back to a messaging platform integration from Lesson 5, which does not have this restriction.
Part Two: Generating Images
This part does require a new credential. Image generation needs either a Nous Portal subscription or your own FAL.ai API key -- there is no free, keyless path for generation the way there is for browser automation's local default. To set up FAL directly: sign up at fal.ai yourself, generate an API key from the FAL dashboard, then run hermes tools to reach the image generation configuration menu, select your backend, and choose a default model. The choice saves to config.yaml.
Choosing a Model
Eleven models are available, spanning a wide range of speed and cost:
A practical way to choose: if you mostly want fast, cheap, good-enough images, stick with the default flux-2/klein/9b. Reach for flux-2-pro when you specifically need studio-quality photorealism and are willing to wait six seconds and pay 5x more. Reach for ideogram/v3 or gpt-image-2 specifically when the image needs to contain readable text, since most other models render text poorly.
Using It
Generation requests can be entirely conversational:
Generate an image of a serene mountain landscape with cherry blossoms
Create a square portrait of a wise old owl -- use the typography model
Make me a futuristic cityscape, landscape orientation
All models support landscape, square, and portrait orientations through one unified interface -- you do not need to learn each model's native aspect ratio format, Hermes translates your request automatically.
For troubleshooting generation issues, set IMAGE_TOOLS_DEBUG=true for detailed logs.
How Images Are Delivered
Delivery format adapts to where you are: markdown links in the CLI, embedded images directly in Discord messages, photo captions on Telegram, and unfurled URLs on Slack -- each platform gets the presentation that actually works best for it.
With vision and generation covered, the next lesson moves from individual agent capability to coordinating several agents working together: the kanban board.
- Vision-capable models get raw image pixels; text-only models get a description via the vision_analyze auxiliary tool -- image handling does not break when you switch models mid-conversation
- SSH sessions cannot access the remote clipboard at all -- this is a fundamental limitation, not a configuration issue, and the real workarounds are file transfer, URLs, X11 forwarding, or messaging platforms instead
- Only flux-2-pro includes automatic upscaling among the eleven image models -- worth knowing if output resolution matters for your use case
- Most image models render text poorly -- reach for ideogram/v3 or gpt-image-2 specifically when generated text needs to be readable
- All eleven models support landscape/square/portrait through one unified interface -- Hermes translates your orientation request to each model's native format automatically