MiniMax Easy Vision is a plugin for OpenCode that enables vision support for models that lack native image attachment support.
Originally built for MiniMax models, it can be configured to work with any model that requires MCP-based image handling.
It restores the "paste and ask" workflow by automatically saving image assets and routing them through the MiniMax Coding Plan MCP
See how it works:
Screen.Recording.2026-01-18.at.00.39.17.mov
Screen.Recording.2026-01-18.at.00.40.12.mov
When using MiniMax models (like MiniMax M2.1) in OpenCode, native image attachments aren't supported.
These models expect the MiniMax Coding Plan MCP's understand_image tool, which requires an explicit file path. This breaks the normal flow:
- Ignored images: Pasted images are simply ignored by the model.
- Manual steps: You have to save screenshots manually, find the path, and reference it in your prompt.
- Broken flow: The "paste and ask" experience available with Claude or GPT models is lost.
This plugin automates the vision pipeline so you don't have to think about it.
How it works:
- Detects when a configured model is active.
- Intercepts images pasted into the chat.
- Saves them to a temporary local directory.
- Injects the necessary context for the model to invoke the
understand_imagetool with the correct path.
Result: You just paste the image and ask your question. The plugin handles the rest.
By default, the plugin activates for MiniMax models:
- Provider ID containing
minimax - Model ID containing
minimaxorabab
Examples:
minimax/minimax-m2.1minimax/abab6.5s-chat
You can enable this for other models by creating a config file.
- Project level:
.opencode/opencode-minimax-easy-vision.json - User level:
~/.config/opencode/opencode-minimax-easy-vision.json
{
"models": ["minimax/*", "opencode/*", "*/glm-4.7-free"]
}| Pattern | Matches |
|---|---|
* |
Match ALL models |
minimax/* |
All models from the minimax provider |
*/glm-4.7-free |
Specific model from any provider |
opencode/* |
All models from the opencode provider |
*/abab* |
Any model containing abab |
*suffixmatches values ending withsuffixprefix*matches values starting withprefix*matches everything*text*matches values containingtext
If the config is missing or empty, it defaults to MiniMax-only behavior.
Enable for all models:
{
"models": ["*"]
}Specific providers:
{
"models": ["minimax/*", "opencode/*", "google/*"]
}Mix of providers and models:
{
"models": ["minimax/*", "opencode/gpt-5-nano", "*/claude-3-7-sonnet*"]
}- PNG
- JPEG
- WebP
(Limited by the MiniMax Coding Plan MCP understand_image tool.)
Just add the plugin to the plugin array in your opencode.json file:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-minimax-easy-vision"]
}- Clone the repository.
- Build the plugin:
npm install && npm run build - Copy the built
dist/index.jsinto your OpenCode plugin directory.
The MiniMax Coding Plan MCP server must be configured in your opencode.json:
{
"mcp": {
"MiniMax": {
"command": "uvx",
"args": ["minimax-coding-plan-mcp"],
"env": {
"MINIMAX_API_KEY": "your-api-key-here",
"MINIMAX_API_HOST": "https://api.minimax.io"
}
}
}
}- Select a supported model in OpenCode.
- Paste an image (
Cmd+V/Ctrl+V). - Ask a question about it, just like how you do for other models with native vision support.
You: [pasted screenshot] Why is this failing?
Model: I'll check the image using the
understand_imagetool.[Calls mcp_minimax_understand_image path="/tmp/xyz.png"]Model: The error suggests a syntax error on line 12.
npm install
npm run buildThe built plugin will be available at dist/index.js
GPL-3.0. See LICENSE.md