opencode-mimikkai-connect
v1.0.3
Published
MimikkAi auth plugin for OpenCode — device authorization + LiteLLM gateway
Maintainers
Readme
opencode-mimikkai-connect
MimikkAi auth plugin for OpenCode — device authorization + LiteLLM gateway.
Как это работает
opencode start
│
├─ plugin load (config hook)
│ └─ регистрирует провайдер mimikkai-connect (@ai-sdk/openai-compatible)
│ baseURL: https://litellm.mimikkai.ru/v1
│ модели: с listLitellm /model/info (limits + capabilities парсятся из ответа)
│
└─ auth.loader
└─ проверяет sanctum token (GraphQL userViewer)
→ возвращает litellm key как apiKey
Установка opencode plugin add @mimikkai/opencode-mimikkai-connect
│
└─ opencode устанавливает пакет в кэш
(~/.cache/opencode/packages/@mimikkai/...)
и добавляет запись "plugin" в конфиг
Авторизация opencode auth login → MimikkAi → Device Authorization
│
├─ device authorize → URL подтверждения (panel.mimikkai.ru)
├─ polling /api/auth/device/token
├─ sanctum token сохраняется в ~/.local/share/opencode/auth.json
└─ LiteLLM virtual key хранится в ~/.config/opencode/mimikkai.jsonУстановка
Через npm (если пакет опубликован и доступен):
opencode plugin add @mimikkai/opencode-mimikkai-connectИли из локального tarball:
bun run build # bun build ./src/index.ts --outdir ./dist --target node
bun pm pack # создаст opencode-mimikkai-connect-<version>.tgz
opencode plugin add ./opencode-mimikkai-connect-<version>.tgzЗамечание:
opencode plugin addс путём (./...tgz) работает как file-плагин —dist/index.jsимпортируется напрямую, npm-зависимости не требуются (всёbundled вdist/index.js, включаяproper-lockfile).
Конфигурация
После установки в opencode.json появится:
{
"plugin": ["@mimikkai/opencode-mimikkai-connect"]
}Провайдер mimikkai-connect и модели регистрируются plugin'ом автоматически в
хук config. Хранилище ключей: ~/.config/opencode/mimikkai.json.
Аутентификация
opencode auth login
# выберите MimikkAi → Device Authorization
# подтвердите код в браузереЛоги / отладка
Плагин пишет [mimikkai:*] логи в stdout через console.debug/info/warn/error.
Уровень управляется LOG_LEVEL (default warn):
LOG_LEVEL=debug opencode run "say hi"Server-side логи opencode:
~/.local/share/opencode/log/opencode.log (проверять failed to load plugin,
Plugin config error).
Разработка
bun install # зависимости
bun run build # сборка в dist/
bun test # bun test (src/test)
bun pm pack # tarball для opencode plugin addСтруктура:
src/index.ts— Plugin entry (auth + config + dispose hooks)src/mimikkai.ts— устройство-flow (authorize/poll), GraphQL, LiteLLM APIsrc/storage.ts— mimikkai.json хранилище (file lock через proper-lockfile)src/logger.ts— LOG_LEVEL логгерsrc/constants.ts— URL-ы и имя провайдера
Troubleshooting
- Provider not found: mimikkai-connect — плагин не загрузился. Проверьте
~/.local/share/opencode/log/opencode.log; убедитесь что запись вpluginотвечает существующему файлу/пакету. - Invalid proxy server token (sk-...XknA) — LiteLLM virtual key ротирован.
Плагин сам обновляет ключ в
confighook; если не помогает — зановоopencode auth login. - Device code expired — истекло окно авторизации, запустите login заново.
- Masked key (
sk-...) — backend скрыл ключ, требуется re-connect.
License
MIT
