LLM CLI + OpenRouter - быстрые команды “спросить Gemini” и “спросить Opus”
Идея простая: у тебя есть один CLI (llm), а через OpenRouter ты можешь дергать разные модели (Google Gemini, Anthropic Claude и т.д.) — и переключаться между ними одной опцией -m.
Ниже — как мы это настроили: алиасы gemini и opus, чтобы команды выглядели человечески.
1) Проверяем, что llm и OpenRouter-плагин на месте
llm --help
llm plugins
llm models list | rg '^OpenRouter:' # покажет OpenRouter-модели, если всё ок
Если команды llm openrouter ... существуют (llm openrouter --help) — значит плагин llm-openrouter установлен.
2) Добавляем OpenRouter API key
llm keys set openrouter
llm keys list
После llm keys set openrouter он попросит вставить ключ (в консоли, без лишнего шума).
Проверка llm keys list должна показать openrouter.
3) Выбираем точные имена моделей
Можно посмотреть список OpenRouter-моделей так:
llm models list | rg '^OpenRouter:'
Нас интересовали конкретно:
openrouter/google/gemini-3-pro-previewopenrouter/anthropic/claude-opus-4.5
Важно: названия моделей меняются со временем — если нужной строки нет, ищи похожую (например, rg 'gemini-3|claude-opus').
4) Делаем человеческие алиасы (gemini / opus)
Чтобы вместо длинных идентификаторов писать коротко:
llm aliases set gemini openrouter/google/gemini-3-pro-preview
llm aliases set opus openrouter/anthropic/claude-opus-4.5
llm aliases list
Шаблон на будущее:
llm aliases set <alias> openrouter/<vendor>/<model>
5) Пользуемся: “спроси Gemini”, “спроси Opus”
Один вопрос:
llm -m gemini "Какая погода сейчас в Сиэтле?"
llm -m opus "Сформулируй коротко, чем хороша такая схема?"
Чат-режим (несколько сообщений подряд в одном контексте):
llm chat -m gemini
llm chat -m opus
Лайфхак: можно пайпить текст из других команд:
rg "TODO" -n . | llm -m opus "Сгруппируй TODO по темам и предложи план"
6) Логи и частая ошибка с SQLite (“unable to open database file”)
llm по умолчанию пишет историю запросов/ответов в SQLite (лог-база).
В некоторых окружениях (контейнер/песочница/другой пользователь) путь к этой базе может оказаться недост
упен для записи — тогда появляется ошибка вида:
sqlite3.OperationalError: unable to open database file
Быстрый и универсальный фикс: указать путь к лог-базе в домашней/рабочей директории:
llm -d ~/llm-logs.db -m gemini "Проверка"
Полезные команды про логи:
llm logs status
llm logs path
7) Зачем это всё: преимущества в двух словах
- Один интерфейс на все модели: не прыгаешь между сайтами/приложениями.
- Мгновенное переключение:
-m geminivs-m opus— и готово. - Скриптуется: можно встроить в
bash, пайпы, Makefile, CI, алиасы shell. - Повторяемость: алиасы фиксируют “какую именно модель” ты имел в виду.
- Удобная “шпаргалка”: команды можно держать рядом (например, в
AGENTS.md), чтобы не вспоминать си
нтаксис.
Бонус: шпаргалка в AGENTS.md + tmux/nvim
Мы добавили краткий блок в /home/nick-senin/AGENTS.md, чтобы под рукой были команды для gemini и opus.
Если живешь в tmux, удобно открыть шпаргалку рядом:
tmux split-window -t main "nvim /home/nick-senin/AGENTS.md"