Запустите Claude Code на открытых моделях через OpenRouter
Направьте Claude Code на GLM и другие открытые модели через OpenRouter, шаг за шагом, и поймите, когда это того стоит.
По материалам: Гайд OpenRouter по интеграции с Claude Code.
Результат
К концу гайда оболочка Claude Code будет работать на открытой модели через OpenRouter, а карта компромиссов подскажет, какую работу оставить на Claude.
- Установленный Claude Code (терминальный CLI или расширение для VS Code)
- Аккаунт OpenRouter с парой долларов на балансе
- Десять минут и текстовый редактор для одного конфигурационного файла
Claude Code — это оболочка, а не модель. Под капотом он говорит на одном языке — формате Anthropic Messages — и ему почти всё равно, кто отвечает. Направьте его на любой эндпоинт, который говорит на том же языке, и всем будет управлять открытая модель вроде GLM, Kimi или DeepSeek: правками, вызовами инструментов, циклом агента. Смысл затеи — в цене. Открытые модели стоят в разы дешевле, а на рутинной работе разрыв в качестве невелик. Безболезненной эту настройку делает один конфигурационный файл: она следует за вами из обычного терминала в терминал внутри VS Code, и переделывать ничего не нужно. Единственное место, которому нужна дополнительная строка, — чат-сайдбар VS Code, и его мы тоже разберём.
1. Соберите настройки в одном файле
Все настройки живут в одном файле: ~/.claude/settings.json. Claude Code читает его при каждом запуске в терминале, включая терминал внутри VS Code, поэтому настройка делается один раз. Единственная поверхность, которой нужна дополнительная настройка, — чат-сайдбар VS Code, и им занимается шаг 5. Ниже — каркас, который вы будете заполнять: блок env с адресом, ключом и моделью. Каждый следующий шаг меняет только значения внутри него. Никогда не открывали этот файл? В разборе ниже — точные команды, а можно не печатать вовсе: скопируйте промпт в начале гайда, и Claude сделает всё за вас.
~/.claude/settings.json. Один файл, который читается на каждой поверхности. Следующие шаги заполняют значения. { "env": { "ANTHROPIC_BASE_URL": "...", "ANTHROPIC_AUTH_TOKEN": "...", "ANTHROPIC_API_KEY": "" } }Никогда не открывали этот файл? Создайте и откройте его, шаг за шагом
Файл лежит в скрытой папке .claude в вашей домашней директории. Выполните эти команды в терминале, чтобы создать его, затем откройте в редакторе. На Windows используйте PowerShell.
macOS или Linux: создайте папку и пустой файл mkdir -p ~/.claude touch ~/.claude/settings.jsonЗатем откройте его в редакторе code ~/.claude/settings.json # открывает файл в VS Code # Команда "code" не найдена? В VS Code нажмите Cmd+Shift+P и выполните # "Shell Command: Install 'code' command in PATH", затем попробуйте снова. # Нет VS Code? Откройте файл в TextEdit: open -e ~/.claude/settings.jsonWindows (PowerShell): создайте файл, затем откройте его в Notepad mkdir "$HOME\.claude" -Force notepad "$HOME\.claude\settings.json"Вставьте блок env, показанный выше, в файл, затем сохраните и закройте. Если в файле уже что-то было, сохраните это и добавьте блок env внутри внешних фигурных скобок. Дальше каждый шаг меняет только значения внутри этого блока.
2. Быстрый путь: OpenRouter, один ключ для любой модели
OpenRouter — это один аккаунт и один ключ, через которые доступны почти все открытые модели, и он нативно говорит на языке Claude Code, так что запускать прокси не нужно. Вся настройка — блок ниже, вставленный в ваш файл настроек. Он задаёт адрес (ANTHROPIC_BASE_URL), ваш ключ (ANTHROPIC_AUTH_TOKEN), пустой ANTHROPIC_API_KEY, чтобы старый ключ Anthropic не перехватил управление, модель во всех трёх слотах (GLM 5.2 — сильный кодер примерно за десятую часть цены) и две страховочные строки для запуска не-Claude модели. CLAUDE_CODE_DISABLE_1M_CONTEXT не даёт Claude Code добавлять к модели тег [1m] для режима 1M-контекста, который OpenRouter отклоняет с ошибкой "issue with the selected model". CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING отключает режим размышлений, на котором сайдбар VS Code может споткнуться с ошибкой "redacted_thinking". Вставьте блок, подставьте свой ключ — и готово.
Вставьте это в блок env из шага 1, затем замените ключ на свой. { "env": { "ANTHROPIC_BASE_URL": "https://openrouter.ai/api", "ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key", "ANTHROPIC_API_KEY": "", "ANTHROPIC_DEFAULT_OPUS_MODEL": "z-ai/glm-5.2", "ANTHROPIC_DEFAULT_SONNET_MODEL": "z-ai/glm-5.2", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "z-ai/glm-5.2", "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1" } }Проведите меня по шагам, клик за кликом
- Откройте openrouter.ai и создайте аккаунт (чип «Зарегистрироваться в OpenRouter» выше).
- Пополните баланс на пару долларов в разделе Settings, затем Credits. На открытых моделях этого хватает надолго.
- Откройте страницу ключей (чип «Создать API-ключ»), нажмите Create Key и скопируйте ключ. Он показывается только один раз.
- Откройте файл так, как показал шаг 1 (выполните code ~/.claude/settings.json или open -e на Mac без VS Code). Не вводите голый путь сам по себе.
- Вставьте блок выше внутрь файла, заменив пустой блок env, если вы его создавали.
- Замените sk-or-your-openrouter-key на скопированный ключ. Кавычки вокруг него оставьте.
- Оставьте ANTHROPIC_API_KEY пустыми кавычками. Именно эта пустота не даёт старому ключу Anthropic перекрыть OpenRouter.
- Сохраните файл и закройте его.
- Запустите Claude Code заново, чтобы он прочитал новый файл: закройте и откройте его снова или выполните claude в терминале ещё раз.
Про три строки с моделями: OPUS, SONNET и HAIKU — это слоты, между которыми Claude Code переключается для тяжёлой, рутинной и быстрой работы. Если во всех трёх стоит z-ai/glm-5.2, каждый режим использует GLM. Позже на строку HAIKU можно поставить модель поменьше и подешевле, чтобы фоновые задачи стоили ещё меньше.
3. Запустите другую модель или смешайте несколько
GLM 5.2 — только пример. Три строки с моделями и есть ручка настройки: какой id OpenRouter вы туда впишете, тот и работает, а в OpenRouter больше 400 моделей, так что Kimi, DeepSeek, Qwen или что угодно ещё подставляется сменой id. Каждый id — это слаг вида vendor/model, например z-ai/glm-5.2; точную строку вы копируете со страницы модели на OpenRouter, гадать не нужно. Три строки заодно отражают, насколько тяжело работает Claude Code: строка OPUS покрывает тяжёлую и основную работу, SONNET — рутину, HAIKU — мелкие фоновые вызовы. Поставьте во все три одно и то же — и всё делает одна модель; это самый простой старт. Поставьте разные — и получите дешёвое разделение вручную: способная модель на строке OPUS, дешёвая на HAIKU, и постоянные мелкие вызовы почти ничего не стоят. В обоих случаях изменение одно и то же: отредактируйте id и полностью перезапустите Claude Code. Меню /model внутри приложения не всегда дотягивается до полного списка OpenRouter, поэтому файл — надёжный способ выбора.
Смешиваем модели: способная — для настоящей работы, дешёвая — для фоновых вызовов. Те же три строки, другие id. { "env": { "ANTHROPIC_BASE_URL": "https://openrouter.ai/api", "ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key", "ANTHROPIC_API_KEY": "", "ANTHROPIC_DEFAULT_OPUS_MODEL": "z-ai/glm-5.2", "ANTHROPIC_DEFAULT_SONNET_MODEL": "z-ai/glm-5.2", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "openai/gpt-oss-120b:free", "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1" } }4. Проверьте, что всё сработало
Первая попытка обычно пропускает этот шаг, и потом кажется, что ничего не изменилось. Важны две вещи. Claude Code читает файл настроек один раз, при запуске, поэтому просто сохранить недостаточно: полностью закройте и заново откройте его. Затем выполните /status. Он должен показать эндпоинт openrouter.ai и модель z-ai/glm-5.2, без [1m] после неё. Для железного доказательства отправьте одно сообщение, затем откройте страницу активности в OpenRouter и посмотрите, как туда прилетает запрос.
Если что-то не так
После полного перезапуска выполните /status. Эндпоинт и модель должны показывать открытую связку, не Anthropic. Claude Code❯ /status
Endpoint openrouter.ai/api
Model z-ai/glm-5.2
# Без [1m] после имени модели, и эндпоинт — openrouter.ai. За рулём открытая модель.
5. Используйте в VS Code: терминал и сайдбар
В VS Code есть два способа запустить Claude Code, и настройки они читают по-разному. Встроенный терминал — это просто терминал: откройте его, введите claude, и вы на открытой модели точно так же, как в обычном терминале, потому что запускается та же команда, которая читает ваш файл. Подвох — в сайдбаре, то есть чат-панели. Она проверяет вход в аккаунт до того, как вообще прочитает ~/.claude/settings.json, поэтому на кастомном эндпоинте она не видит ваш ключ и отправляет вас на экран входа Anthropic (или падает с ошибкой "Unsupported content type: redacted_thinking" — это известный баг расширения). Решение — дать расширению собственную копию значений: откройте настройки самого VS Code через Cmd+Shift+P и "Preferences: Open User Settings (JSON)" (пользовательские настройки в JSON), добавьте значения в claudeCode.environmentVariables, как показано ниже, затем перезагрузите окно через Cmd+Shift+P и "Developer: Reload Window" (перезагрузка окна). Если сайдбар вам не нужен, проще держать работу с открытой моделью во встроенном терминале — он просто работает.
Чтобы перевести на открытую модель и сайдбар VS Code, добавьте это в настройки самого VS Code (не в файл выше), затем перезагрузите окно. // settings.json самого VS Code, не ~/.claude/settings.json { "claudeCode.environmentVariables": [ { "name": "ANTHROPIC_BASE_URL", "value": "https://openrouter.ai/api" }, { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-or-your-openrouter-key" }, { "name": "ANTHROPIC_API_KEY", "value": "" } ] }Внутри VS Code: откройте встроенный терминал и запустите Claude Code там. Claude Code# VS Code: откройте встроенный терминал сочетанием Ctrl+`
❯ claude
Claude Code · model z-ai/glm-5.2 (via openrouter.ai)
# Та же модель, что и в обычном терминале. Сайдбару может понадобиться настройка env, прежде чем он подтянется.
6. Хотите автоматически? Маршрутизируйте по задачам
Одна модель на всё — грубый инструмент. Более тонкая настройка отправляет дешёвую массовую работу открытой модели, а сложное мышление оставляет Claude — автоматически, решая для каждого запроса, что есть что. Для этого нужен небольшой локальный роутер, который работает постоянно, поэтому это отдельный гайд, а не быстрая правка env. Беритесь за него, когда одна модель начнёт казаться либо слишком дорогой для простой работы, либо слишком слабой для сложной.
7. Знайте, какую работу оставить на Claude
Открытые модели сейчас по-настоящему хороши, но оболочка настраивалась под Claude, и кое-что теряется. Кеширование промптов может не переживать переезд, поэтому длинная сессия на дешёвой модели способна незаметно стоить больше, чем вы ждёте. Вызовы инструментов и долгие агентные запуски — то место, где слабые модели плутают: переделывают работу или теряют нить. И ваш код теперь покидает стены Anthropic, поэтому для всего чувствительного проверяйте, где хостится модель. Честное разделение: рутинные правки, черновики и массовую черновую работу — открытой модели, глубокие изменения на много файлов и работу в режиме плана — Claude. Ещё один рычаг: определившись с одной моделью, можно обойтись без комиссии OpenRouter и направить Claude Code напрямую на провайдера — выйдет дешевле.
8. Вернитесь на Claude в любой момент
Всё это полностью обратимо — потому и безопасно пробовать. Чтобы вернуться к обычному Claude, откройте тот же файл, удалите добавленный блок env (или удалите весь файл, если в нём больше ничего нет), сохраните и перезапустите Claude Code. Выполните /status — и снова увидите свой аккаунт Anthropic. Ваша настройка Claude не пострадала; вы лишь одолжили файл, чтобы направить его в другое место.
Назад к Claude: опустошите файл до этого (или удалите его), затем перезапустите. {}
Главное
Claude Code — оболочка, которая говорит на одном протоколе. Направьте её на любой эндпоинт, который отвечает на нём, и её поведёт открытая модель. Рутинный объём — дешёвой модели, тяжёлую агентную работу — Claude.
Предпочитаете учиться на практике?
Интерактивная версия этого плейбука живет в melwyn Class: с анимированными демо терминала, разборами Claude Code и библиотекой, которая сохраняет ваши выводы. Class — на английском.