Настройки Claude Code14 минобновлено

Как подключить DeepSeek к Claude Code

Модели 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.

Два правила, которые стоит держать:

  1. Ключ не кладут в .claude/settings.json внутри проекта. Этот файл попадает в репозиторий, и ключ увидит каждый, кто скачает проект. Для одного проекта есть .claude/settings.local.json; если создаёшь его руками, сначала добавь в .gitignore.
  2. Файл сильнее терминала. Если одна и та же переменная задана и через 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 имеет смысл в трёх случаях:

  1. Нет подписки Claude, а поработать в привычном агенте нужно. Интерфейс, команды и твои настройки те же, платишь только за то, что потратил.
  2. Много механической работы: переименовать, переложить данные из одного формата в другой, прогнать однотипные правки по сотне файлов. Такие задачи не требуют лучшей модели на рынке.
  3. Эксперименты, где важнее посмотреть, как ведёт себя агент, чем получить идеальный результат.

И два случая, где я бы не экономил. Первый - сложная логика, архитектура, отладка странных ошибок: здесь разница между моделями выливается в часы твоего времени. Второй - код и данные, которые нельзя отправлять на серверы 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.

Чек-лист подключения

Коротко: подключение готово, если на все шесть пунктов ответ «да».

  1. claude -v печатает номер версии.
  2. Ключ создан на platform.deepseek.com и сохранён, баланс положительный.
  3. В /status есть Anthropic base URL с адресом DeepSeek и Auth token с ANTHROPIC_AUTH_TOKEN.
  4. ANTHROPIC_MODEL задана явно, имена моделей - deepseek-flash или deepseek-v4-pro.
  5. Ключ не лежит в общем .claude/settings.json проекта.
  6. После пробной задачи расход появился на платформе DeepSeek.

Что дальше после подключения

Коротко: подключение - десять минут, дальше всё решают правила проекта и привычки работы с агентом, а они от модели не зависят.

Смена модели не отменяет остальной работы: агенту по-прежнему нужны файл правил, разрешения и нормально поставленные задачи. На слабой модели это даже важнее, потому что она хуже угадывает недосказанное. Если лимиты подписки Claude кончаются слишком быстро и DeepSeek нужен как запасной вариант, сначала посмотри как устроен расход в Claude Code: иногда хватает пары привычек.

Курс по Claude Code с уроком о выборе модели, готовые настройки агента и база, которую он подключает по MCP, - всё это в ClaudeBase.

Спрашивают

Пять вопросов по теме

Где взять API-ключ DeepSeek для Claude Code?

На платформе разработчика DeepSeek: войти на platform.deepseek.com и открыть раздел API keys. Ключ сразу сохраняют в менеджере паролей. Без положительного баланса ключ есть, но запросы вернут ошибку 402 Insufficient Balance. Для Claude Code DeepSeek советует класть ключ в переменную ANTHROPIC_AUTH_TOKEN вместе с адресом https://api.deepseek.com/anthropic.

Нужна ли подписка Claude, чтобы работать с DeepSeek в Claude Code?

Нет. Когда задана переменная ANTHROPIC_AUTH_TOKEN, Claude Code берёт её вместо входа в аккаунт, и лимиты подписки к этой сессии не относятся. Платишь ты в этом режиме DeepSeek, по токенам с баланса. Если подписка есть и вход сохранён, Claude Code предупредит о двух источниках входа: лишний вход убирают командой /logout.

Можно ли пользоваться DeepSeek в Claude Code бесплатно?

Бесплатного режима для этой связки в документации DeepSeek нет. Каждый запрос списывается с баланса по цене за миллион токенов, а если на аккаунте есть подаренный баланс, сначала тратится он. Сэкономить можно вне пиковых часов: по будням с 04:00 до 07:00 и с 09:00 до 13:00 по Москве цены вдвое выше, в остальное время и в выходные вдвое ниже.

Почему в Claude Code написано Opus или Sonnet, а отвечает DeepSeek?

Claude Code показывает свои названия моделей, а DeepSeek на своей стороне переводит их в свои. Имена, начинающиеся с claude-opus, уходят в deepseek-v4-pro, с claude-sonnet и claude-haiku в deepseek-flash, а любое незнакомое имя тоже в deepseek-flash. Чтобы не гадать, модель задают явно переменной ANTHROPIC_MODEL и проверяют строки в /status.

Можно ли в одной сессии оставить Claude для планирования, а DeepSeek для рутины?

Штатно нет. У сессии Claude Code один адрес ANTHROPIC_BASE_URL, и все запросы, включая субагентов, идут туда. Переменная CLAUDE_CODE_SUBAGENT_MODEL меняет только имя модели, а не сервер. Смешивать провайдеров умеют промежуточные шлюзы, которые сами решают, куда отправить запрос, но это отдельная серверная настройка и отдельная тема.

Источники