2beadf7ff78a4898f9f53c00a76706ecfd39453b
Opencode Vision Bridge Plugin
Этот плагин позволяет Opencode работать с изображениями, даже если активная модель не поддерживает мультимодальность. Он перехватывает изображения, отправляет их в указанную vision-модель для анализа, а затем заменяет изображение текстовым описанием в контексте диалога.
Требования
- Доступ к API-эндпоинту Ludmila AI (https://ai.totmin.ru/v1).
- Ключ API Ludmila AI.
Установка
1. Добавьте плагин в ~/.config/opencode/opencode.json
В секцию plugin добавьте следующую запись:
{
"plugin": [
// ... другие плагины
"https://git.totmin.ru/en2zmax/vision-bridge.git"
]
}
2. Настройте провайдер Ludmila AI
В секцию provider вашего ~/.config/opencode/opencode.json добавьте или обновите блок ludmila-ai:
{
"provider": {
"ludmila-ai": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ludmila AI",
"options": {
"baseURL": "https://ai.totmin.ru/v1",
"apiKey": "<ЗАМЕНИТЕ_НА_ВАШ_API_КЛЮЧ>"
},
"models": {
"gemini/gemini-2.5-flash": {
"attachment": true,
"limit": {
"context": 1048576,
"output": 65536
}
}
}
}
}
}
ВАЖНО: Замените <ЗАМЕНИТЕ_НА_ВАШ_API_КЛЮЧ> на ваш реальный API-ключ Ludmila AI.
3. Скопируйте файл субагента
Субагенты не загружаются из npm-пакетов, поэтому скопируйте файл vision.md в соответствующий каталог:
cp ~/totmin/opencode/plugins/vision-bridge/agents/vision.md ~/.config/opencode/agents/vision.md
4. Перезапустите Opencode
Изменения в конфигурации применяются только после перезапуска Opencode.
Пример конфигурации (examples/opencode.json)
{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"opencode-browser",
"git+ssh://git@git.totmin.ru:en2zmax/vision-bridge.git"
],
"provider": {
"ludmila-ai": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ludmila AI",
"options": {
"baseURL": "https://ai.totmin.ru/v1",
"apiKey": "<ЗАМЕНИТЕ_НА_ВАШ_API_КЛЮЧ>"
},
"models": {
"gemini/gemini-2.5-flash": {
"attachment": true,
"limit": {
"context": 1048576,
"output": 65536
}
}
}
}
},
"agent": {
"vision": {
"mode": "subagent",
"model": "ludmila-ai/gemini/gemini-2.5-flash",
"description": "Анализ изображений и скриншотов (OCR текста или разбор UI)",
"permission": {
"read": "allow",
"glob": "allow",
"external_directory": "allow",
"edit": "deny",
"bash": "deny"
}
}
}
}
Languages
TypeScript
100%