Latest in AI
AI SDK HarnessAgent Image Inputs: Send Screenshots to Coding Agents
Vercel added a shared image-input format across its harness adapters, making visual tasks easier to move between agent runtimes.
Vercel added image inputs to AI SDK HarnessAgent on October 27. Applications can send text and image file parts together through the standard message interface, giving coding agents visual context such as a screenshot or design reference without a separate input format for each harness.
The useful change is at the integration boundary. A product can keep the same way of supplying an image while changing the agent runtime behind it. That does not make every underlying model equally good at interpreting what it sees.
What HarnessAgent image support adds
The release announcement names support across the current adapters, including Claude Code, Codex, Cursor, GitHub Copilot, Cline, Deep Agents, fx, Grok Build, OpenCode and Pi. The selected runtime's underlying vision model processes the image.
Consider a UI bug report with a screenshot and a short description. The application can pass both pieces of context to the agent rather than requiring a user to translate the layout problem entirely into words. That is particularly helpful when the problem is spatial: an overlapping button, unexpected spacing or a panel rendered in the wrong place.
This does not mean the agent has reproduced the bug. The screenshot is evidence of an appearance at one moment, not a record of the browser state or the steps that produced it.
How to pass an image to HarnessAgent
The HarnessAgent documentation places the image in a file part in the latest user message. Set mediaType to the image's MIME type and provide the image data alongside a text part explaining the task.
The agent object holds configuration, while a session holds live state. Applications create the sandbox session separately and then pass it into the agent session. Bridge-backed runtimes such as Claude Code and Codex require a real network sandbox; some host-runtime harnesses have different requirements.
That separation is worth preserving in application code. Receiving an upload, preparing an agent session and deciding whether to apply its changes are different responsibilities. A convenient message format should not collapse them into one unreviewed action.
A shared interface does not erase runtime differences
The adapter documentation explains the role of adapters: they translate a particular runtime's sessions, events, tools and configuration into the harness contract. The supported runtimes still run in different places, including host processes, sandbox bridges and sandbox connections using ACP.
Image-input compatibility is not a guarantee of equivalent results. A team comparing adapters should send the same screenshot and instructions, then evaluate the resulting change rather than stopping at whether both calls accepted the file.
For the UI example, a useful check would ask whether the agent fixed the overlap without changing unrelated components. It should also verify the rendered result at the relevant screen size. A plausible explanation of the screenshot is a weaker outcome than a correct, narrowly scoped patch.
The announcement does not establish a common image-processing price or a cross-adapter visual benchmark. Those should not be inferred from the shared API.
Where the feature is most useful
This is a practical improvement for products wrapping coding agents, internal design-review tools and workflows that turn visual bug reports into proposed fixes. It reduces one piece of integration work when those products support more than one runtime.
Screenshots can also contain customer data, credentials or internal information. Teams should decide what may be uploaded and which runtime may receive it before making image submission a default part of their workflow.
The next step is a small, representative visual evaluation set. Once passing the image becomes consistent, teams can spend less time comparing upload plumbing and more time checking whether an agent understands the problem and makes the right change.
I'm Paras. I work at the intersection of AI, engineering and distribution.
I help technical founders explain agent tools and product launches through clear writing that developers can understand, evaluate and share.