Одной фразой: спрашивают, можно ли направить 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.
$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 — помесячная аренда, отдельно от токенов.