Модели Anthropic для Claude Code не единственный вариант. У DeepSeek есть адрес, который понимает тот же формат запросов, и если направить агента туда, интерфейс, команды и файлы проекта останутся прежними, а думать за агента будет DeepSeek. Платишь ты тогда DeepSeek по токенам, подписка Claude не нужна.
Ниже порядок подключения, сверенный с документацией DeepSeek и Anthropic 26 сентября 2026 года на Claude Code 2.1.283. И отдельно - что при такой связке перестаёт работать, потому что об этом в инструкциях DeepSeek почти ничего нет.
Как DeepSeek попадает в Claude Code?
Коротко: DeepSeek принимает запросы в формате Anthropic по адресу
https://api.deepseek.com/anthropic. Агент подставляет этот адрес вместо своего и отправляет туда всё, что раньше шло в Claude.
Claude Code состоит из двух частей. Первая работает у тебя на компьютере: читает файлы, запускает команды, спрашивает разрешения, хранит историю. Вторая - модель на сервере, которая решает, что делать дальше. Между ними ходят запросы в формате, который описала Anthropic.
DeepSeek сделал у себя отдельный вход, который принимает запросы в этом формате. Переменная ANTHROPIC_BASE_URL говорит Claude Code, куда слать запросы, а ANTHROPIC_AUTH_TOKEN - каким ключом подписываться. Поменял две строки, и та же программа разговаривает уже с другой моделью. Твои правила проекта, скиллы и разрешения остаются на месте, потому что они живут в локальной части.
Важная оговорка сразу: в документации Anthropic прямо сказано, что компания не поддерживает работу Claude Code с моделями не от Anthropic ни через какой шлюз. Всё, что ломается на такой связке, чинишь ты сам или ждёшь исправлений от DeepSeek.
Модели - только половина работы: агенту нужны правила проекта, разрешения и понятные задачи, и от смены модели это не меняется. В ClaudeBase есть курс по Claude Code с нуля и готовые настройки агента, которые одинаково работают с любой моделью за ним.
С чего начать подключение DeepSeek
Коротко: найди свой вариант, от него зависит, с какого раздела начинать.
- Агента пока нет. Установи Claude Code по инструкции для начинающих и возвращайся к шагу с ключом.
- Claude Code стоит и работает по подписке. Тебе нужны ключ DeepSeek и переменные, а ещё раздел про возврат на Claude, чтобы переключаться туда и обратно.
- Ты уже подключал DeepSeek по старой статье, и что-то не так. Сверь имена моделей в разделе про выбор модели: быструю модель переименовали.
- Ты выбираешь, стоит ли вообще связываться. Начни с раздела «Когда это оправдано», а к настройке переходи потом.
Что нужно для подключения DeepSeek?
Коротко: установленный Claude Code, аккаунт на платформе DeepSeek с деньгами на балансе и ключ API. Подписка Claude не нужна.
Проверь агента командой в терминале:
claude --version
Номер версии в ответе значит, что всё на месте. Если видишь command not found, агент не установлен или терминал его не видит.
Ключ создаётся на platform.deepseek.com, в разделе API keys. Сразу сохрани его в менеджер паролей. Баланс пополняется там же. Без денег на счету запросы не пройдут, а оплата идёт за каждый миллион токенов, отдельно за входящие и исходящие.
Чем это отличается от работы по подписке, я разбирал в статье про Claude Code API: как только в окружении есть ключ или токен, Claude Code берёт его вместо входа в аккаунт. Для DeepSeek это и нужно, но важно понимать механику, чтобы потом не удивиться, почему подписка «не работает».
Как подключить DeepSeek к Claude Code по шагам
Коротко: открой терминал, задай восемь переменных из официальной инструкции DeepSeek, перейди в папку проекта и запусти
claudeиз того же окна.
На macOS и Linux переменные задаются командой export. Вставь блок в терминал, заменив текст в угловых скобках своим ключом:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<твой ключ DeepSeek>
export ANTHROPIC_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432
На Windows то же самое в PowerShell:
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="<твой ключ DeepSeek>"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
$env:CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
$env:CLAUDE_CODE_EFFORT_LEVEL="max"
$env:CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"
Потом открой папку проекта и стартуй агента из неё:
cd /путь/к/проекту
claude
Что делает каждая строка:
| Переменная | Зачем |
|---|---|
ANTHROPIC_BASE_URL |
куда Claude Code отправляет запросы |
ANTHROPIC_AUTH_TOKEN |
ключ, уходит в заголовке Authorization: Bearer |
ANTHROPIC_MODEL |
основная модель сессии |
ANTHROPIC_DEFAULT_OPUS_MODEL, _SONNET_, _HAIKU_ |
что подставлять, когда агент просит opus, sonnet или haiku; haiku идёт и на фоновые задачи |
CLAUDE_CODE_SUBAGENT_MODEL |
модель для субагентов |
CLAUDE_CODE_EFFORT_LEVEL |
уровень усилия при рассуждении |
CLAUDE_CODE_AUTO_COMPACT_WINDOW |
после скольких токенов разговор сжимается |
Хвост [1m] у имени модели говорит Claude Code считать окно контекста равным миллиону токенов. У обеих моделей DeepSeek окно как раз 1M, суффикс просто сообщает агенту реальный размер.
Переменные, заданные командой export, живут только в этом окне терминала. Закрыл окно - настройка пропала, а новое окно запустит Claude Code как обычно.
Как сделать настройку постоянной?
Коротко: перенеси переменные в блок
envфайла~/.claude/settings.jsonили в.claude/settings.local.jsonодного проекта. Общий.claude/settings.jsonпроекта для ключа не годится.
Файл ~/.claude/settings.json (на Windows %USERPROFILE%\.claude\settings.json) действует на все проекты. Блок выглядит так:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_AUTH_TOKEN": "<твой ключ DeepSeek>",
"ANTHROPIC_MODEL": "deepseek-flash[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-flash",
"CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-flash"
}
}
Если в файле уже есть другие настройки, блок env добавляется рядом с ними, старые строки остаются. Как устроены эти файлы и в каком порядке агент их читает, описано в материале о настройке Claude Code.
Два правила, которые стоит держать:
- Ключ не кладут в
.claude/settings.jsonвнутри проекта. Этот файл попадает в репозиторий, и ключ увидит каждый, кто скачает проект. Для одного проекта есть.claude/settings.local.json; если создаёшь его руками, сначала добавь в.gitignore. - Файл сильнее терминала. Если одна и та же переменная задана и через
export, и в блокеenv, применяется значение из файла. Отсюда частая путаница: человек снимает переменную в терминале, а агент продолжает ходить в DeepSeek.
Я держу DeepSeek только в settings.local.json тех проектов, где он нужен. Тогда остальные проекты работают по подписке, и не приходится помнить, какой режим сейчас включён.
Как проверить, что отвечает DeepSeek?
Коротко: команда
/statusвнутри Claude Code. Там должны быть строки с адресом DeepSeek и с источником ключа.
Запусти агента и введи /status. Откроется вкладка Status, в ней ищи две строки:
Anthropic base URLс адресомhttps://api.deepseek.com/anthropic. Эта строка появляется, только когда адрес изменён.Auth tokenс упоминаниемANTHROPIC_AUTH_TOKEN. Если вместо неё стоитLogin methodс твоим аккаунтом claude.ai, ключ не подхватился и работаешь ты по подписке.
Потом закрой меню, отправь короткую задачу и открой платформу DeepSeek: расход за этот запрос должен появиться там. Это единственная проверка, которая показывает, кто на самом деле платит.
Если хочешь убедиться, что ключ рабочий, ещё до запуска агента, отправь пробный запрос из того же окна терминала:
curl -sS -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "deepseek-flash", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
Ответ, который начинается с {"id":"msg_, значит, что адрес и ключ в порядке. Код 401 в ответе значит, что ключ неверный.
Какую модель DeepSeek выбрать: flash или v4-pro?
Коротко: официальная инструкция DeepSeek ставит везде
deepseek-flash. Старшаяdeepseek-v4-proв три-четыре раза дороже и не понимает картинки. Начинай с flash.
Данные со страницы цен DeepSeek на 26 сентября 2026 года, в долларах за миллион токенов:
| deepseek-flash | deepseek-v4-pro | |
|---|---|---|
| Версия модели | DeepSeek-V4.1-Flash | DeepSeek-V4-Pro-0813 |
| Окно контекста | 1M | 1M |
| Картинки | понимает | не понимает |
| Вход, не из кэша (пик / вне пика) | 0,30 / 0,15 | 1,32 / 0,66 |
| Вход из кэша (пик / вне пика) | 0,006 / 0,003 | 0,044 / 0,022 |
| Выход (пик / вне пика) | 1,20 / 0,60 | 3,96 / 1,98 |
Пиковые часы - с понедельника по пятницу с 01:00 до 04:00 и с 06:00 до 10:00 по UTC, то есть с 04:00 до 07:00 и с 09:00 до 13:00 по Москве. В китайские праздники и в выходные весь день идёт по сниженной цене. Для агента, который гоняет длинные сессии, разница заметная: те же задачи вечером стоят вдвое меньше, чем утром в будни.
Про имена. Старые deepseek-v4-flash и deepseek-v4-flash-vision-exp DeepSeek ещё принимает, но модели за ними сняты, и запросы обслуживает V4.1-Flash по цене flash. Если настраивал по статьям весны, лучше переписать имена.
Ещё DeepSeek сам переводит названия Claude: всё, что начинается с claude-opus, уходит в v4-pro и считается по цене v4-pro, а claude-sonnet и claude-haiku уходят в flash. Любое незнакомое имя тоже превращается в flash. Поэтому если не задать ANTHROPIC_MODEL и выбрать в /model пункт Opus, ты незаметно переедешь на дорогую модель.
Выбор модели - вопрос не только цены. В уроке курса «Какую модель выбрать: Claude, GPT, китайские» я сравниваю Claude, GPT и пять китайских провайдеров и объясняю, почему весь курс дальше идёт на Claude Code и Codex. Урок и курс целиком - в доступе к ClaudeBase.
Что работает, а что нет?
Коротко: файлы, команды, инструменты и рассуждение работают. Документы, кэш-разметка Anthropic, серверные MCP-коннекторы и Remote Control - нет. Часть функций просто молча игнорируется.
По таблице совместимости DeepSeek и справочнику переменных Claude Code:
Работает:
- чтение и правка файлов, запуск команд, вызов инструментов - всё, на чём держится агент;
- режим рассуждения; уровень усилия DeepSeek принимает, но
lowиmediumу него превращаются вlowиhigh, аxhighвhigh; - поиск в интернете: DeepSeek выполняет его на своей стороне, и сводка найденного стоит дополнительных токенов;
- картинки, но только у deepseek-flash.
Не работает или игнорируется:
- блоки документов (
document) не поддерживаются, поэтому PDF, приложенный как документ, модель не получит; - разметка кэша
cache_controlигнорируется: у DeepSeek свой кэш и своя цена за попадание в него; - параметр
mcp_servers, то есть серверные MCP-коннекторы Anthropic, игнорируется; - Remote Control отключается, как только адрес указывает не на
api.anthropic.com; - лимиты подписки Claude к такой сессии не относятся, счёт идёт только с баланса DeepSeek.
Отдельно про MCP. Серверы, которые ты подключил в самом Claude Code, остаются, но поиск по инструментам на чужом адресе по умолчанию выключен. Агент загружает описания всех инструментов в контекст сразу, в начале разговора. Если у тебя подключено много серверов, каждый запрос становится дороже, и лишние лучше отключить на время работы с DeepSeek.
Когда это оправдано?
Коротко: для рутины, экспериментов и длинных дешёвых прогонов - да. Для сложной архитектуры и задач, где ошибка стоит дорого, лучше Claude или Codex.
Связка deepseek claude code имеет смысл в трёх случаях:
- Нет подписки Claude, а поработать в привычном агенте нужно. Интерфейс, команды и твои настройки те же, платишь только за то, что потратил.
- Много механической работы: переименовать, переложить данные из одного формата в другой, прогнать однотипные правки по сотне файлов. Такие задачи не требуют лучшей модели на рынке.
- Эксперименты, где важнее посмотреть, как ведёт себя агент, чем получить идеальный результат.
И два случая, где я бы не экономил. Первый - сложная логика, архитектура, отладка странных ошибок: здесь разница между моделями выливается в часы твоего времени. Второй - код и данные, которые нельзя отправлять на серверы DeepSeek. Весь контекст разговора, включая содержимое прочитанных файлов, уходит туда, и решать, допустимо ли это, нужно ещё до подключения.
Для сравнения других вариантов есть разбор аналогов Claude Code: там и отдельные агенты, и другие способы сэкономить.
Как вернуться на Claude?
Коротко: убрать переменные из терминала и из блока
env, при необходимости войти заново через/login, проверить/status.
В терминале на macOS и Linux:
unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN ANTHROPIC_MODEL ANTHROPIC_DEFAULT_OPUS_MODEL ANTHROPIC_DEFAULT_SONNET_MODEL ANTHROPIC_DEFAULT_HAIKU_MODEL CLAUDE_CODE_SUBAGENT_MODEL
В PowerShell переменную удаляют так: Remove-Item Env:ANTHROPIC_BASE_URL, и так для каждой. Проще закрыть окно и открыть новое.
Если переменные лежат в settings.json, удали оттуда блок или нужные строки, иначе файл перебьёт терминал. Потом запусти claude, при необходимости выполни /login и проверь /status: строки Anthropic base URL быть не должно, а в Login method должен стоять твой аккаунт.
Частые ошибки при подключении DeepSeek
Коротко: почти все сбои сводятся к двум вещам - агент видит сразу и вход, и ключ, или ключ оказался не в той переменной.
«auth may not work as expected»
Предупреждение при запуске, где названы два источника входа. В старых версиях оно звучит как Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set. Значит, активны и ключ DeepSeek, и сохранённый вход в Claude. Запросы уйдут с ключом, но поведение непредсказуемо. Если работаешь с DeepSeek, выполни /logout; если хочешь назад на подписку, сними переменную.
401 Authentication Fails
Ключ неверный, отозван или лежит не в той переменной. Сам DeepSeek в примерах для программ пишет ключ в ANTHROPIC_API_KEY, а для Claude Code - в ANTHROPIC_AUTH_TOKEN. Для агента бери вторую, как в инструкции выше, и проверь, что при копировании не потерялся символ.
402 Insufficient Balance
На балансе DeepSeek кончились деньги. Повтор запроса не поможет: пополни счёт на платформе и отправь задачу заново.
400 с текстом «Extra inputs are not permitted»
Claude Code отправил поле, которое сервер не знает. Документация Claude Code для таких случаев советует CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1: переменная отключает большинство экспериментальных полей в запросах.
Экран входа вместо сессии
Если после запуска claude открывается окно входа в аккаунт, переменные до агента не дошли. Чаще всего их задали в одном окне терминала, а агента запустили из другого или из редактора. Запускай из того же окна или перенеси настройку в settings.json.
Чек-лист подключения
Коротко: подключение готово, если на все шесть пунктов ответ «да».
claude -vпечатает номер версии.- Ключ создан на platform.deepseek.com и сохранён, баланс положительный.
- В
/statusестьAnthropic base URLс адресом DeepSeek иAuth tokenсANTHROPIC_AUTH_TOKEN. ANTHROPIC_MODELзадана явно, имена моделей -deepseek-flashилиdeepseek-v4-pro.- Ключ не лежит в общем
.claude/settings.jsonпроекта. - После пробной задачи расход появился на платформе DeepSeek.
Что дальше после подключения
Коротко: подключение - десять минут, дальше всё решают правила проекта и привычки работы с агентом, а они от модели не зависят.
Смена модели не отменяет остальной работы: агенту по-прежнему нужны файл правил, разрешения и нормально поставленные задачи. На слабой модели это даже важнее, потому что она хуже угадывает недосказанное. Если лимиты подписки Claude кончаются слишком быстро и DeepSeek нужен как запасной вариант, сначала посмотри как устроен расход в Claude Code: иногда хватает пары привычек.
Курс по Claude Code с уроком о выборе модели, готовые настройки агента и база, которую он подключает по MCP, - всё это в ClaudeBase.