Claude Code и OpenRouter: как индивидуальному разработчику снизить стоимость моделей

 ·  ~13 мин чтения  ·  AI-разработка

Схема каталога: 1 млн вход плюс 1 млн выход, Fable самый высокий, Haiku самый низкий

Одной фразой: спрашивают, можно ли направить Claude Code в OpenRouter, и почти никто заранее не считает, по какому классу модели пойдёт счёт после подключения. Сначала путь запроса и переменные из официальной инструкции, затем четыре класса на одном и том же предполагаемом объёме, затем подписка рядом с оплатой по токенам, и только потом регуляторы, которые отдельный разработчик действительно может повернуть.

Куда уходит запрос после машины

Claude Code говорит с upstream на Anthropic Messages API. OpenRouter даёт совместимый вход, который в документации называется Anthropic skin: блоки рассуждения и вызовы инструментов проходят дальше, а плата ложится на кредиты OpenRouter. Отдельный локальный процесс-прокси не нужен.

Базовый URL — https://openrouter.ai/api, без /v1 на конце. Остаток пути Claude Code дописывает сам. Адрес с /v1 — один из самых частых способов заполнить все переменные и всё равно попасть не на тот хост.

Рамка совместимости узкая. Руководство OpenRouter по Claude Code гарантирует связку только с поставщиком Anthropic первой стороны. В выборе модели могут появиться чужие id. Там же написано, что Claude Code рассчитан на модели Anthropic и с другими поставщиками может работать неверно. Подключить OpenRouter — не то же самое, что молча поставить самый дешёвый id из каталога. Низкая цена в прайсе и цикл инструментов, который доходит до конца, проверяются отдельно.

Покупка кредитов и цена токена — тоже два счёта. В собственном тексте OpenRouter про Claude Code сказано: наценка на инференс не берётся, платите каталожную цену. При покупке кредитов добавляется сбор 5,5 %, минимум $0.80. На фоне смены класса это малая величина. Таблицы ниже ставят соотношение на одну страницу.

Четыре переменные, и пустую строку нельзя убрать

Быстрый старт кладёт ключ в ANTHROPIC_AUTH_TOKEN и задаёт ANTHROPIC_API_KEY как явную пустую строку. Токен уходит в Authorization: Bearer — этого ждёт шлюз. Ключ API уходит в x-api-key, и Claude Code считает его прямым удостоверением Anthropic. Пустая строка не даёт откатиться на прямое подключение. Если старый ключ просто удалить и не записать ="", интерактивная сессия может продолжить сохранённый вход.

export OPENROUTER_API_KEY="<your-openrouter-api-key>"
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_API_KEY=""

Порядок легко промахнуться. ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" раскрывается в момент, когда оболочка читает эту строку. Если ключ определён ниже или его подставляет менеджер секретов уже после профиля, токен станет пустой строкой, и каждый запрос упадёт на аутентификации. В ~/.zshrc сначала задайте OPENROUTER_API_KEY.

Если вы когда-либо входили в Claude Code аккаунтом Anthropic, один раз выполните /logout, выйдите и запустите снова. Документация предупреждает: кэшированный вход рядом с удостоверением шлюза даёт конфликт при старте. Снаружи это часто выглядит как «модель не найдена», в том числе для id, которые есть только у OpenRouter, например openrouter/auto. На macOS этот кэш лежит в связке ключей под именем Claude Code-credentials. Нативная установка не обязательно пишет ~/.claude/.credentials.json.

Проверка — /status внутри сессии. Строка аутентификации должна называть ANTHROPIC_AUTH_TOKEN, строка базового URL — https://openrouter.ai/api. Если там всё ещё ANTHROPIC_API_KEY или способ входа — аккаунт Claude, этот процесс переменные не получил. Тот же запрос должен появиться на странице Activity в OpenRouter.

На уровне проекта переменные можно держать в .claude/settings.local.json. Не кладите их в .env: штатный установщик его не читает. И не коммитьте ключ. Файл в репозитории отдаёт ключ кредитов каждому клону. Для одной машины документация предпочитает профиль оболочки и чтение секрета из системной связки ключей, а не вставку строки sk-or- в точечный файл.

Пустой ключ и выход — разные шаги

/logout стирает только кэшированную OAuth-сессию. Настоящий ANTHROPIC_API_KEY в оболочке от этого не исчезает, и запросы могут по-прежнему тарифицироваться как прямое использование Anthropic.

Процесс, который не стартует, или машина, у которой кончилась память, — другая поломка, не этот путь оплаты. Установка и ошибки запуска — в разборе ошибок развёртывания Claude Code.

Цену задают четыре класса

Claude Code делит работу на Fable, Opus, Sonnet и Haiku, у каждого класса своя переменная. Субагенты смотрят на CLAUDE_CODE_SUBAGENT_MODEL. Пример OpenRouter направляет классы на ~anthropic/claude-…-latest, а пример субагента — на Opus. Это выбор движущегося псевдонима, а не личный бюджет. Псевдонимы следуют каталогу. Сегодня ~anthropic/claude-opus-latest стоит как anthropic/claude-opus-5.5. Завтра это не обязан быть тот же id.

Таблица ниже — публичный каталог OpenRouter на 2026-10-20, доллары США за миллион токенов. Чтение кэша — это цена cache read в каталоге. Она применяется, только когда поставщик действительно попал в кэш префикса, а не как скидка на каждый входной токен.

Класс Id, который фиксирует эта статья Вход Выход Чтение кэша 1 млн вход + 1 млн выход
Fable anthropic/claude-fable-5.1 $10 $50 $0.25 $60
Opus anthropic/claude-opus-5.5 $4 $20 $0.20 $24
Sonnet anthropic/claude-sonnet-5.5 $2 $10 $0.10 $12
Haiku anthropic/claude-haiku-5.5 $0.10 $0.50 $0.01 $0.60

В тот же день anthropic/claude-fable-5 совпадал с 5.1 по входу и выходу, $10 / $50, но чтение кэша было $1, а не $0.25. anthropic/claude-opus-5 — другая строка: $5 вход, $25 выход. У anthropic/claude-sonnet-5 вход и выход как у 5.5, а чтение кэша $0.20, вдвое выше $0.10 у 5.5. Общее имя Opus или Sonnet не означает общий счёт. Если держать бюджет из этой статьи, фиксируйте id и не останавливайтесь на latest.

export ANTHROPIC_DEFAULT_FABLE_MODEL="anthropic/claude-fable-5.1"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-5.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-5.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-5.5"
export CLAUDE_CODE_SUBAGENT_MODEL="anthropic/claude-haiku-5.5"

Последняя строка — выбор бюджета, не официальный пример. Пример ставит субагентов на Opus. Если они в основном ищут файлы, гоняют тесты и пишут сводки, оставлять их на том же Opus значит считать каждую ветку по $4 / $20. Прежде чем опустить их на Haiku, в /model убедитесь, что видны все четыре класса, и сверьте столбец модели в Activity с зафиксированным id.

100×
Fable к Haiku на одних и тех же 1 млн вход + 1 млн выход
5,5%
Сбор при покупке кредитов OpenRouter, минимум $0.80
4
Класса, которые Claude Code тарифицирует раздельно

$60 разделить на $0.60 — это 100. Это отношение каталога, а не замер одной сессии. Как текст становится оплачиваемым токеном, разобрано в сравнении токенов и цен. Объём и ценники других семей на этой неделе — в рейтинге OpenRouter.

Один и тот же предполагаемый объём: насколько расходятся классы

Это не «средний день» из журнала. Вопрос один: токены не трогать, сменить класс — что сделает каталог. Допустим рабочий день из 8 миллионов входных токенов и 0,8 миллиона выходных, примерно 10 к 1. Так обозначается агент, который снова и снова отправляет контекст, а пишет гораздо меньше. В этом разделе чтение кэша равно нулю.

Весь день на этом классе Этот день 22 таких рабочих дня
Fable 5.1 $120 $2,640
Opus 5.5 $48 $1,056
Sonnet 5.5 $24 $528
Haiku 5.5 $1.20 $26.40
Половина Haiku, 40 % Sonnet, 10 % Opus $15 $330

Арифметику можно проверить. День Opus 5.5: 8 × $4 + 0,8 × $20 = $48. Смешанная строка делит те же 8 миллионов / 0,8 миллиона: половина токенов на Haiku — $0.60, 40 % на Sonnet — $9.60, 10 % на Opus — $4.80, сумма $15. Двадцать два — это примерно месяц рабочих дней. Не скидка и не тариф.

Второе допущение, помеченное так же: если половина входа в тот день Opus тарифицируется как чтение кэша, то 4 миллиона × $4 + 4 миллиона × $0.20 + $16 выхода = $32.80, а не $48. Изменившийся вывод инструмента рвёт префикс, и следующий ход снова идёт по полной входной цене. $32.80 — не обещание.

Сбор 5,5 % при покупке кредитов стоит вне таблицы. На $48 это около $2.64, на $330 — около $18. Разрыв в $2 310 между месяцем таких дней целиком на Fable и смешанной строкой он не закрывает. Сначала меняйте класс.

Не сравнивайте эту таблицу с подпиской Pro, чтобы выбрать победителя

$48 уже выше месяца Pro, но Pro — это не безлимитный Opus. Цифры — каталожные цены, умноженные на предполагаемые токены. Если сессия не отправила 8 миллионов входных токенов, таблица описывает не ваш день.

Подписка, консоль и OpenRouter — три счётчика

На 2026-10-20 страница цен Claude по-прежнему показывала эти суммы, без налога, и писала, что планы могут измениться. Pro — $20 в месяц или $17 в месяц при годовой оплате ($200 сразу). Max 5x — $100 в месяц, Max 20x — $200 в месяц. И Pro, и Max включают Claude Code и делят квоту с Claude в вебе, на компьютере и на телефоне. Справка описывает лимит сессии в пять часов плюс недельный лимит. У Max отдельно есть недельный лимит на Fable. Множители 5x и 20x относятся к каждой пятичасовой сессии относительно Pro.

OpenRouter — другой счётчик. Справка пишет: если задан ANTHROPIC_API_KEY, Claude Code тарифицирует API, а не включённый в подписку объём. Путь через OpenRouter ещё требует /logout, пустого API-ключа и ANTHROPIC_AUTH_TOKEN. Когда путь заработал, первый же запрос тратит кредиты OpenRouter. Он не списывает остаток квоты Pro.

Выбирайте по тому, в какую стену вы упираетесь, а не по тому, какой шлюз звучит новее:

  • Объём, который остаётся внутри Pro или Max, — это цена с потолком. После $20 или $100 дополнительные сессии в этом периоде не продолжают копиться по цене Opus, они упираются в лимит. Если лимита хватает, незачем выносить работу на токенный счётчик только ради OpenRouter.
  • Если каждую неделю вы упираетесь в лимит и всё равно купили бы кредиты API, сначала посмотрите, стена ли это Fable или Opus. Перенести субагентов и обычные правки на Haiku и Sonnet часто прямее, чем поднять ступень Max. Более высокая ступень покупает больше подписочного объёма, а не более низкую цену токена.
  • Если нужен жёсткий потолок на одном ключе и столбец модели на каждый запрос, лимит ключа и страница Activity в OpenRouter показывают то, чего нет у полоски использования подписки. За этот вид вы платите каталожные цены плюс 5,5 % при покупке кредитов. Когда прямые цены консоли совпадают с каталогом, эти 5,5 % — собственная разница шлюза в обмен на переключение при сбое и один ключ на все запросы. «Без наценки на инференс» описывает этот слой. Это не значит, что шлюз дешевле Pro.

Один ли продукт Claude Code и помощник в редакторе, разбирается в Claude Code и Cursor. Там сравниваются инструменты. Здесь — счётчики после подключения.

Пять регуляторов в порядке для отдельного разработчика

Первое: не оставлять сессию на Fable или Opus весь день. Четыре переменные — этот регулятор. Длинное рассуждение остаётся на Fable, сложные правки на Opus, обычные изменения на Sonnet, поиск и короткие дополнения на Haiku. Когда id зафиксирован, переоценка псевдонима не подменяет тихо тот класс, который вы уже посчитали.

Второе: субагентов снижать отдельно. Копия официального примера ведёт их на Opus. Родительская сессия, которая порождает трёх субагентов, может потратить на ветках больше, чем видно в ответе основной переписки, если каждая ветка — Opus. На личном бюджете поставьте CLAUDE_CODE_SUBAGENT_MODEL на Haiku и поднимайте только тогда, когда сама подзадача — трудное рассуждение.

Третье: /fast дороже, а не дешевле. Документация описывает до примерно 2,5× скорости вывода по цене выше соответствующего тарифа Opus. Покрыты Opus 4.6, 4.7, 4.8 и Opus 5. Fable не покрыт. Чтобы /fast в Claude Code реально слал speed: "fast" через OpenRouter, нужны Claude Code 2.1.96 или новее, CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1 и переменная Opus на конкретном id, например anthropic/claude-opus-5. На ~anthropic/claude-opus-latest команда /fast может показать, что режим включён, а запрос уйдёт без speed. Важнее подписи ещё одно поведение: если сессия на Fable, /fast не ускоряет Fable. Claude Code переключает сессию на настроенный Opus, и дальнейшие запросы считаются как Opus. Не включайте переключатель, если вы не покупаете скорость.

Четвёртое: ограничьте этот ключ. У ключа OpenRouter может быть свой потолок. Ключ для Claude Code держите отдельно от экспериментальных и поставьте месячный предел на сумму, которую можете позволить себе сжечь. Столбец модели в Activity показывает, не уехал ли день снова на Fable. Скрипт statusline из репозитория примеров OpenRouter копит стоимость и скидку кэша этой сессии. Каждое обновление снова спрашивает запись генерации. Длинная сессия догоняет постепенно. Это не счёт.

Пятое: длинный контекст — это счёт на входе. Хвост [1m] меняет только окно, которое предполагает Claude Code, чтобы не сжимать слишком рано. OpenRouter снимает метку до маршрутизации. Большее предполагаемое окно — это и больший префикс, который можно отправить. Сжатие, отказ читать весь репозиторий и стабильный префикс, которому есть шанс попасть в кэш, экономят вход. Чтение кэша в таблице уже на порядок ниже входа и действует, только пока вывод инструмента не порвал префикс.

Рядом со счётом за модель есть счёт за машину. Сессия, оставленная на ночь, пока сборка и симулятор делят память одного Mac, в OpenRouter не видна. Как мерить память — в руководстве по памяти сервера для Claude Code. Держите два счёта раздельно, иначе перерасход токенов читается как «машина медленная».

Не делайте не-Anthropic моделью переключатель экономии по умолчанию

Выбор появляется после CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1. Документация называет его отобранным списком, а не всем каталогом, и часть пунктов уходит к поставщикам не из Anthropic. Anthropic первой стороны просят ставить на верх приоритета поставщиков, а быстрый режим обслуживается только там.

Неудачный вызов инструмента отправляет ещё один полный круг контекста. Цена в долю от Opus после двух повторов может вернуться в тот же порядок, а правка ещё не закончена. Если DeepSeek или другое семейство нужно в цикле разработки, проверяйте его как отдельный инструмент. Не подставляйте его молча вместо одной из четырёх переменных Claude Code. Разница возможностей и цены вместе — в DeepSeek V4 Flash и Claude Opus.

Порядок для отдельного разработчика

Сначала проверьте, внутри ли вы ещё пула подписки. Если да и лимита хватает, оставайтесь на Pro или Max. Если уже платите за токен, сначала разделите четыре класса и субагентов, потом поставьте месячный потолок на ключ. Другие модели в выборе — после этого.

Вопросы

Какие модели руководство OpenRouter реально гарантирует для Claude Code? Только Anthropic первой стороны. Другие модели могут появиться в выборе. Они вне этого предложения.

Добавляет ли OpenRouter наценку к цене токена? На странице про Claude Code написано, что инференс не наценивается, цена — каталожная. Надбавка при покупке кредитов: 5,5 %, минимум $0.80.

Что дешевле: подписка Pro или оплата за токен? Без объёма ответа нет. Если вы остаётесь внутри Pro ($20 в месяц или $17 в пересчёте на год) или Max ($100 / $200), подписка — это потолок. После подключения к OpenRouter запросы тратят кредиты и больше не списывают включённый объём. $48 и $15 выше — каталожный расчёт на предполагаемых токенах, не ваш счёт.

Экономит ли /fast? Нет. Это более высокая цена за более быстрый вывод, и только на части моделей Opus. Включить его на сессии Fable переводит сессию на тарификацию Opus.

Можно ли писать ключ в ~/.zshrc? Работать будет, и это открытый текст. Точечный файл, попавший в репозиторий или в буфер обмена, утечёт ключом. Надёжнее читать его из системной связки ключей. Если утекло — отзовите на странице ключей OpenRouter. Для проекта используйте settings.local.json и не коммитьте его.

Я сменил базовый URL, а в Activity запросов нет. Почему? Сначала /status. Строка аутентификации должна быть ANTHROPIC_AUTH_TOKEN, базовый URL — https://openrouter.ai/api без /v1. Старый вход аккаунта снимите через /logout. Оставшийся в оболочке ANTHROPIC_API_KEY нужно сделать пустой строкой. Одного выхода недостаточно.

ZavCloud Developer Infrastructure

Когда модель идёт по счётчику, не заставляйте Mac спорить со сборкой

Длинная сессия, Xcode и симулятор делят память одного Mac. Этот счёт не в OpenRouter.

Выделенный узел Mac — помесячная аренда, отдельно от токенов.

Настроить ваш выделенный узел Mac
Новинка Посмотреть планы M4