Vision Proxy for Copilot
A VS Code extension that gives text-only models (like GLM 5.2) the ability to "see" images by proxying them through a vision model first.
Works with Volcengine Ark (火山引擎方舟) and any OpenAI Responses API compatible endpoint.
How It Works
flowchart LR
A[User sends image] --> B[Vision Model<br/>doubao-seed-2.0-pro]
B --> C[Text Description]
C --> D[Text Model<br/>GLM 5.2]
D --> E[Response streamed<br/>to Copilot Chat]
When an image appears in the conversation — whether pasted by the user or returned by a tool (e.g. screenshots) — the extension:
- Extracts all images from user messages and tool results
- Sends them to a vision model (
doubao-seed-2.0-pro) to get a detailed text description
- Appends the image description to the conversation as plain text
- Forwards everything to the text-only model (
glm-5.2) via the OpenAI Responses API
- Streams the response back to Copilot Chat
This way, text-only models can handle image inputs without crashing with Model only support text input errors.
Features
- 🖼️ Vision Proxy — Automatically describes images from user messages and tool results (e.g. screenshots from MCP tools) before passing them to text-only models
- 🧠 Adjustable Reasoning Effort — Switch between
minimal / low / medium / high directly from the Copilot Chat input toolbar (native configurationSchema integration)
- 🔧 Full Tool Calling — Supports Copilot agent mode with function calls and tool outputs, including images returned by tools
- 📡 Responses API — Uses the modern OpenAI Responses API (
/responses endpoint) with reasoning support
- 📊 Context Window Usage — Reports token usage back to Copilot Chat so the context usage indicator works correctly
- 🔐 Secure API Key Storage — API key stored in VS Code SecretStorage, never written to settings files
- 🌊 Streaming — Real-time streaming responses via SSE with proper event handling
Configuration
| Setting |
Default |
Description |
vsionproxy.baseUrl |
https://ark.cn-beijing.volces.com/api/plan/v3 |
API endpoint base URL |
vsionproxy.textModel |
glm-5.2 |
The text-only model for final responses |
vsionproxy.visionModel |
doubao-seed-2.0-pro |
The vision model for image description |
vsionproxy.maxInputTokens |
1048576 |
Maximum input tokens for the text model |
vsionproxy.maxOutputTokens |
128000 |
Maximum output tokens for the text model |
vsionproxy.reasoningEffort |
high |
Default reasoning effort for the text model |
vsionproxy.visionReasoningEffort |
low |
Reasoning effort for the vision model |
vsionproxy.stream |
true |
Whether to stream responses |
vsionproxy.visionPrompt |
(see settings) |
Prompt sent to the vision model when describing images |
Reasoning Effort
The reasoning effort can be adjusted directly in the Copilot Chat input toolbar — no need to open settings. A dropdown button appears next to the model selector showing the current effort level. Click it to switch between:
- Minimal — Fastest, least reasoning
- Low — Light reasoning, faster responses
- Medium — Balanced reasoning depth and speed
- High — Most thorough reasoning, highest quality
API Key
Use the command Vision Proxy: Set API Key (Ctrl+Shift+P) to store your API key securely in SecretStorage. You can also check the status with Vision Proxy: Show Status.
Usage
- Install the extension
- Run Vision Proxy: Set API Key and enter your Volcengine Ark API key
- Open Copilot Chat
- Select GLM 5.2 from the model picker
- Start chatting — paste images and they'll be automatically described
- Use agent mode — tools that return images (e.g. screenshots) are also handled automatically
Supported Models
The extension is designed for Volcengine Ark (火山引擎方舟) models but works with any OpenAI Responses API compatible endpoint:
| Model |
Role |
Vision |
Max Input |
Max Output |
glm-5.2 |
Text model |
❌ |
1M tokens |
128K tokens |
doubao-seed-2.0-pro |
Vision model |
✅ |
256K tokens |
128K tokens |
Commands
| Command |
Description |
Vision Proxy: Set API Key |
Store your API key in SecretStorage |
Vision Proxy: Clear API Key |
Remove the stored API key |
Vision Proxy: Show Status |
Display current configuration and status |
Building
npm install
npm run compile
npx vsce package --no-dependencies --allow-missing-repository
Install the generated .vsix with:
code --install-extension vsion-proxy-copilot-0.0.8.vsix
Requirements
- VS Code 1.116.0 or later
- GitHub Copilot Chat extension
- A Volcengine Ark API key (or compatible OpenAI Responses API endpoint)
License
MIT