You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
unsupportedParts() "Inform the user" instruction overrides system prompt, preventing fallback to vision MCP for non-vision models #40495
When using a non-vision model (e.g. deepseek-v4-pro), pasting an image causes unsupportedParts() in packages/opencode/src/provider/transform.ts to replace the image with:
ERROR: Cannot read clipboard (this model does not support image input). Inform the user.
The trailing "Inform the user." is treated by the LLM as a high-priority instruction. Even when the system prompt (via prompt_append or AGENTS.md) explicitly instructs the model to handle images via a workaround (pngpaste → vision MCP), the model always responds with "I can't see images" instead.
What we tried to override this (all failed):
prompt_append in mode.build
AGENTS.md (project-level instructions)
oh-my-openagent agent prompt
opencode plugin with experimental.chat.messages.transform
Plugins
@zilliz/memsearch-opencode oh-my-openagent@latest
OpenCode version
1.18.12
Steps to reproduce
Configure a vision MCP server (e.g. kimi-vision-mcp)
Add to prompt_append or AGENTS.md: "When you see 'ERROR: Cannot read clipboard', run pngpaste + vision_analyze_image instead of telling the user you can't see it"
Use a non-vision model (e.g. deepseek-v4-pro)
Paste a clipboard image via Cmd+V in opencode
Observe: model ignores system prompt and outputs "I can't view images directly" or similar
This issue might be a duplicate of existing issues. Please check:
Non-vision models blocked from passing images to vision-capable MCP tools #29216: Same root cause — unsupportedParts() in transform.ts replaces images with the ERROR: ... Inform the user. text when using a non-vision model, and the LLM cannot then delegate to a vision-capable MCP tool. That issue also proposes passing image metadata as text so MCP tools remain reachable.
Activity
github-actions commentedon Aug 4, 2026
This issue might be a duplicate of existing issues. Please check:
unsupportedParts()intransform.tsreplaces images with theERROR: ... Inform the user.text when using a non-vision model, and the LLM cannot then delegate to a vision-capable MCP tool. That issue also proposes passing image metadata as text so MCP tools remain reachable.unsupportedParts()replacement behavior so non-vision models can be guided to call plugin-provided vision tools — essentially the same plugin-hook gap you encountered.github-actions commentedon Oct 5, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.