An OpenCode plugin that adds vision support to models that lack it. Paste images directly into the chat and ask questions, just like you would with Claude or GPT.
Important
Renamed from opencode-minimax-easy-vision: Existing users only need to replace the old package name in the plugin array with opencode-easy-vision. Existing plugin configuration continues to work; no other migration is required.
- The Problem
- Demo
- Setup
- Usage
- Configuration
- Supported Image Formats
- Troubleshooting
- Uninstallation
- Contributing
- License
- References
Many models, especially open-weight ones, have no vision capability. They are text-only and cannot process image input. For some models, such as MiniMax, an MCP tool can read an image through a vision service and return the analysis as text. The tool needs a local file path rather than a clipboard paste, so you would otherwise need to save each screenshot and provide its path yourself.
This plugin automates the entire workaround. It intercepts pasted images, saves them to disk, and injects the instructions the model needs to call the MCP tool with the correct path. You paste an image and ask a question. The plugin handles the rest.
| Without the plugin | With the plugin |
|---|---|
![]() |
![]() |
| The image is silently ignored by the model. | The model analyzes the attached image correctly before answering. |
Snapzy_Recording_2026-07-18_21-05-38.mov
Snapzy_Recording_2026-07-18_20-58-25.mov
The plugin works with any MCP server that can analyze an image from a local path or URL and return its analysis as text. Add one to your opencode.json.
Default: MiniMax Coding Plan MCP
{
"mcp": {
"MiniMax": {
"type": "local",
"command": ["uvx", "minimax-coding-plan-mcp"],
"environment": {
"MINIMAX_API_KEY": "your-api-key-here",
"MINIMAX_API_HOST": "https://api.minimax.io"
}
}
}
}Alternative: openrouter-image-mcp
Routes image analysis through OpenRouter, giving you access to any vision-capable model including free ones.
{
"mcp": {
"openrouter_image": {
"type": "local",
"command": ["npx", "openrouter-image-mcp"],
"environment": {
"OPENROUTER_API_KEY": "your-api-key-here",
"OPENROUTER_MODEL": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free"
}
}
}
}Tip
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free is a free multimodal model designed for image perception and reasoning. Free model availability changes over time, so check OpenRouter's free models for current alternatives. Free endpoints use shared capacity and may respond more slowly or time out under load. When using this server, set imageAnalysisTool to openrouter_image_analyze_image in the plugin config.
Note
Any MCP server with an image analysis tool will work. The servers above are examples. For a different tool, set imageAnalysisTool; see Configuration.
With the OpenCode CLI (v1.3.4+):
Global (all projects):
opencode plugin opencode-easy-vision --globalProject-level (current directory only):
opencode plugin opencode-easy-visionOr manually, add it to the plugin array in your opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-easy-vision"]
}Paste this into OpenCode and let your agent handle the rest:
Set up opencode-easy-vision by following https://raw.githubusercontent.com/devadathanmb/opencode-easy-vision/main/AGENT_SETUP.md
What the agent will do
The agent follows the instructions in AGENT_SETUP.md. It will:
- Inspect your existing OpenCode and plugin configuration
- Ask whether to set up the plugin for all projects or only the current project
- Ask which MCP image analysis tool and models you want to use
- Update existing files in place instead of replacing them
- Summarize the changes and guide you through verification after a restart
- Select a configured model in OpenCode.
- Paste an image (
Cmd+V/Ctrl+V). - Ask your question, just like you would with Claude or GPT.
Important
By default, this plugin only activates for MiniMax provider models, where MiniMax is the direct provider in OpenCode. These IDs match minimax/*, minimax-cn/*, and related patterns. If you access a MiniMax model through a third-party provider such as OpenRouter, or use another model, add that model's pattern to models. See CONFIGURATION.md.
Each option uses the following priority order:
- Project level:
.opencode/opencode-easy-vision.json(or.jsonc) - User level:
~/.config/opencode/opencode-easy-vision.json(or.jsonc)
On first load, an example config is created at ~/.config/opencode/opencode-easy-vision.jsonc. See CONFIGURATION.md for config precedence, legacy config support, and the full option reference.
PNG, JPEG, and WebP. Exact format support depends on the image analysis tool you configure.
Plugin not updating after a new release?
OpenCode caches plugins under ~/.cache/opencode/packages/. If it's still running an old version after a release, clear the cache entry and restart:
rm -rf ~/.cache/opencode/packages/opencode-easy-vision@latestPlugin not activating?
By default, the plugin only activates for MiniMax provider models, with IDs matching minimax/*, minimax-cn/*, and related patterns. It does not activate for a MiniMax model accessed through OpenRouter or another provider. To use the plugin with a different model or provider, add the model's ID pattern to models in your config. See CONFIGURATION.md.
-
Remove
opencode-easy-visionfrom thepluginarray in theopencode.jsonfile where you installed it. -
Delete the plugin config files you no longer need:
rm -f ~/.config/opencode/opencode-easy-vision.{json,jsonc}
rm -f .opencode/opencode-easy-vision.{json,jsonc}If you migrated from opencode-minimax-easy-vision and no longer use it, you can also delete its legacy config files.
See CONTRIBUTING.md for local development setup.
AGPL-3.0. See LICENSE.

