HarnessAgent adds image inputs across every adapter: one message format lets ten coding agents see pictures
Synopsis
The HarnessAgent layer of the AI SDK now accepts image inputs across all harness adapters, letting callers pass images alongside text in the standard AI SDK message format, with a content array mixing text parts and file parts. Images are processed by each harness's underlying vision models and are supported on Claude Code, Cline, Codex, Cursor, Deep Agents, fx, GitHub Copilot, Grok Build, OpenCode and Pi. Previously this layer accepted text input only, and image capability was not part of the unified interface.
Interpretation
The HarnessAgent layer can now receive images, so callers no longer need to wire an image channel separately for each coding agent. Previously HarnessAgent accepted text input only, and image input was not part of this layer's unified interface. Image input is supported across all available adapters, including Claude Code, Cline, Codex, Cursor, Deep Agents, fx, GitHub Copilot, Grok Build, OpenCode and Pi.
Images arrive in the standard AI SDK message format, placed alongside text in the same content array. Callers use a content array that mixes text parts and file parts, with the file part carrying the image media type and image data. The example sends a generate request through the Codex harness whose message content holds one text part and one image read in as image/png, asking for a one-sentence description of the image.
Perspective
The demonstrated scope is image input at the HarnessAgent layer on the Claude Code, Cline, Codex, Cursor, Deep Agents, fx, GitHub Copilot, Grok Build, OpenCode and Pi adapters, with the example using the Codex harness and a Vercel network sandbox session.
Images are processed by each harness's underlying vision models, so recognition quality depends on the chosen harness's model rather than on the HarnessAgent layer itself; the material gives no cross-adapter comparison on image tasks.
